Community post
7th update of 2024: early "release notes" for Hived and HAF apps

I've been super busy for a while, so I fell behind a bit on reporting progress (it's been about 4 months since my last report...). Originally I was planning an earlier release of everything, but in the end we decided to push back the releases so that we could add more features that we considered important to completed.
Since so much work has been done since my last report, a report of all the details would be a bit overwhelming, so I decided to write this report in the form of earlier "release notes" for all the software, just to keep it compact.
I'm breaking the report up into two separate posts, this first one covers the backend services (e.g. hived, HAF, API servers, client libraries), and the next report which I'll publish in the next few days will cover work done on the user interfaces (denser, the block explorer UI, clive).
Hived: blockchain node software
New features and functional improvements
-
HF28 features:
- Improved witness properties update (new values previously appeared too early) https://gitlab.syncad.com/hive/hive/-/merge_requests/1360
- Max block size configuration (by witnesses) can't exceed 2MB value: https://gitlab.syncad.com/hive/hive/-/merge_requests/1357
- Increased transaction expiration time: https://gitlab.syncad.com/hive/hive/-/merge_requests/1383
- Proposed HF28 date set to 11. December 2024
-
New configuration options to preventing hived nodes from being flooded by transactions. This included adding several new config options:
rc-flood-level,rc-flood-surcharge, andmax-mempool-size(the new default settings are probably fine for most hived nodes). RC costs of incoming transactions now start increasing when high activity (flooding) is detected in order to reduce the number of pending transactions that can build up and consume RAM. Once a transaction is finally put into a block, costs are calculated using regular rules, so final RC costs are not affected by this change.
https://gitlab.syncad.com/hive/hive/-/merge_requests/1397
https://gitlab.syncad.com/hive/hive/-/merge_requests/1390 -
Better handling of shared_memory.bin allocation errors: https://gitlab.syncad.com/hive/hive/-/merge_requests/1372 . Hived will produce an error if the shared_memory.bin will lead to an insufficient amount of free space on the filesystem holding shared memory. This change can prevent runtime failures during memory allocation and helps to find a mis-configuration of the shared memory.
-
Improved error messaging: https://gitlab.syncad.com/hive/hive/-/merge_requests/1359/ https://gitlab.syncad.com/hive/hive/-/merge_requests/1387
-
Hived API supports keep-alive connections: https://gitlab.syncad.com/hive/hive/-/merge_requests/1363
-
Generated config.ini contains generated default option values as comments. This change makes it easier to detect which options have been customized, as such options will have an explicit setting in the file: https://gitlab.syncad.com/hive/hive/-/merge_requests/1361
-
Eliminated configuration options and plugins previously marked as deprecated: https://gitlab.syncad.com/hive/hive/-/issues/649
-
Support for pruned block log. Hived configuration options allows storing blocks in local blockchain subdirectory as:
- a single monolithic file (old legacy way),
- split into 1M block parts, which allows you to relocate files across different filesystems and symlink them in the blockchain directory
- pruned to store the latest N 1M block parts (including setting N=0 to avoid storing any blocks)
Block log pruning saves disk space, but also reduces the ability to support block_api usage via hived (although nowadays blocks are better served via HAfAH anyway) and P2P syncing of nodes that need to catch up to the current head block.
Hived can automatically split an existing monolithic block_log when the conf file is changed from monolithic to split storage.
The block-log-split option defaults to 9999 to enable split mode in the block storage. So, if you update an existing hived that is synced with the new version, it will automatically split your block log at startup (this one-time process takes around half an hour).
The block_log_util tool also has been extended to support file splitting.
Bugfixes
- Fixed hived crash that could occur when a block_log file doesn't exist https://gitlab.syncad.com/hive/hive/-/merge_requests/1367
- Fixed concurrency problems between witness and writer threads while evaluating blockchain operations: https://gitlab.syncad.com/hive/hive/-/merge_requests/1268
- Fixes related to the condenser_api and producing the JSON legacy form of operations: https://gitlab.syncad.com/hive/hive/-/merge_requests/1381
HAF: framework for creating new Hive APIs and apps
New features and functional improvements
- New API calls for HAF apps to allow for more flexible and less error-prone coding of an app's operation processing loop. One of the biggest benefits is that it is easier to make sure a HAF app will always be in a consistent state if it gets interupted and then restarted: https://gitlab.syncad.com/hive/haf/-/merge_requests/504
- Removed block_num, operation type and _timestamp columns to reduce SQL database storage size: https://gitlab.syncad.com/hive/haf/-/merge_requests/492 https://gitlab.syncad.com/hive/haf/-/merge_requests/496
- HAF maintenance actions are performed by pg_cron tool: https://gitlab.syncad.com/hive/haf/-/merge_requests/531
- HAF database uses C collation settings to speedup index search and creation: https://gitlab.syncad.com/hive/haf/-/merge_requests/514
Bugfixes
- Fixed database integrity problem during HAF node restart when reversible data has been collected: https://gitlab.syncad.com/hive/haf/-/merge_requests/532
- Corrected HAF node upgrade issues: https://gitlab.syncad.com/hive/haf/-/merge_requests/529
- Fixed errors in the autodetach procedure for dead apps: https://gitlab.syncad.com/hive/haf/-/merge_requests/525
- Fixed bugs leading to multiple application deadlock during attaching a context: https://gitlab.syncad.com/hive/haf/-/merge_requests/518
- Fixed deadlock during HAF data dumping: https://gitlab.syncad.com/hive/haf/-/merge_requests/505 https://gitlab.syncad.com/hive/haf/-/merge_requests/511
Hivemind: social media API
New features and functional improvements
- Switching to PostgREST as HTTP server provider from the current Python based implementation to improve performance and pave the way for a REST-based hivemind API.
- Hivemind APIs additionally return mute reason: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/626
- bridge.get_discussion API returns information related to pinned post: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/715
- bridge.get_account_posts supports observer parameter: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/716
- Community support improvements: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/711
- Sync performance optimizations: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/706 https://gitlab.syncad.com/hive/hivemind/-/merge_requests/718 https://gitlab.syncad.com/hive/hivemind/-/merge_requests/746
- Hivemind uses a new Reputation Tracker HAF application to calculate reputation data in a way matching hived's reputation_plugin algorithm.
- Reduced Hivemind docker image size: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/726
- Hivemind sync processing switched to use the new HAF application main loop: https://gitlab.syncad.com/hive/hivemind/-/merge_requests/701
HAfAH: account history API
- Support for a new REST API including generated Swagger documentation. The REST API docs for Hafah are here: https://api.syncad.com/?urls.primaryName=HAfAH
Balance tracker API: tracks token balance histories for accounts
New features and functional improvements
- Support for a new REST API including generated Swagger documentation. The REST API docs for balance tracker are here: https://api.syncad.com/?urls.primaryName=Balance+Tracker
- Support for balance history APIs: https://gitlab.syncad.com/hive/balance_tracker/-/merge_requests/105
- HAF's new app loop used for the operation processing code: https://gitlab.syncad.com/hive/balance_tracker/-/merge_requests/100
- Allow custom schema installation to support separate deployments of balance tracker in the same database (i.e. when balance_tracker is referenced from multiple parent applications or uses some specific configuration).
Reputation tracker: API for fetching account reputation
Created a new HAF application which calculates reputation values matching to Hived reputation plugin.
This application is used by Hivemind and HAF Block Explorer to provide reputation data needed for their APIs.
The REST API docs for the reputation tracker are here: https://api.syncad.com/?urls.primaryName=Reputation+Tracker
HAF Block Explorer
New features and functional improvements
- Support for a new REST API including generated Swagger documentation. The REST API docs for the block explorer are here: https://api.syncad.com/?urls.primaryName=HAF+Block+Explorer
- API calls accepting block range parameters can take a block number or a timestamp as block range constraints https://gitlab.syncad.com/hive/haf_block_explorer/-/merge_requests/214
- Witness API improvements:
- added
feed_updated_athttps://gitlab.syncad.com/hive/haf_block_explorer/-/merge_requests/209 - removed redundant VESTS data returned as Hive Power due to ability to recalculate it on client side due to Wax library features: https://gitlab.syncad.com/hive/haf_block_explorer/-/merge_requests/212
- added
- App sync uses new HAF main loop scheme: https://gitlab.syncad.com/hive/haf_block_explorer/-/merge_requests/196
- Reputation data is read from the reputation_tracker app's schema. Previously reputation calculations were done within the block explorer's sync thread, so syncing the block explorer is now about 2x faster than earlier versions (but we also track many more types of balances, so it is about the same sync speed as the initial release done back last September): https://gitlab.syncad.com/hive/haf_block_explorer/-/merge_requests/177
WAX API library for Hive apps
Initial release candidate of Hive integration library into Typescript (NodeJS/Web browser) environment. Wax allows developers to easily create and process Hive blockchain transactions and operations. It it is also easy to add support new custom API call definitions (e.g. API calls for custom HAF apps) which can then be called as regular functions.
On the implementation side, the Wax library directly shares C++ code from the Hive Protocol to always match the blockchain's behavior. Wax is an object-oriented library and is coded to allow for "intellisense" style support from IDE's such as Visual Code, which greatly simplifies writing client code with the library.
We are also in the process of developing a python version of Wax. The python version is already being used as we develop Clive, a new wallet for Hive, but it is not yet ready for official public integrations.
Beekeeper: light weight process for securely storing cryptographic keys
- New API endpoints:
has_walletand ability to create temporary (not persisted) wallets. https://gitlab.syncad.com/hive/hive/-/merge_requests/1355 - New API endpoint to allow import of multiple keys: https://gitlab.syncad.com/hive/hive/-/merge_requests/1326
- Preliminary support for python wrappers to enable integrating Beekeeper tool into a python workflow: https://gitlab.syncad.com/hive/helpy/-/merge_requests/55
Bugfixes
- Fixed bug in wallet synchronization between opened multiple network sessions: https://gitlab.syncad.com/hive/hive/-/merge_requests/1344
- Improved session timeout handling: https://gitlab.syncad.com/hive/hive/-/merge_requests/1342
- Shutdown fixes: https://gitlab.syncad.com/hive/hive/-/merge_requests/1311
API Node Benchmarking
We're still making improvements to the backend services, but we have begun initial test of "full api node" syncing. Here's some tests I ran on one of our faster servers (AMD 7950 with 2x4TB T700 nvmes):
- HAF replay time: 15 hours
- Simultaneous replay of hafbe (30 hours), reptracker (35.6 hours), and hivemind (61.8 hours).
- So total time to get a fast node up with all services is 15 (haf) + 61.8 (hivemind, the longest of the three services) = 78.6 hours = 3 days 6.6 hours
I don't expect much improvement in the sync times prior to the release, but these numbers are looking pretty good, especially since the blockchain grows by about 1 million blocks per month and these numbers are still close to times from the release last year despite all the blocks that have been added since then.
What's next?
We're still adding features and working on documentation, but we have started doing real-world deployment testing, and the next step will be to do some production testing with real world traffic. At this point, I'm shooting for a December release, as I think we have too many useful features that should be released as soon as possible, so we shouldn't delay the releases to add many more features.
Replies (29)
You are doing well and I hope you have planned unique features for the hive platform. All the best!
!PIZZA
!LOL
!INDEED
(10/10)
@blocktrades! @cryptoyzzy Totally agrees with your content! so I just sent 1 IDD to your account on behalf of @cryptoyzzy.
lolztoken.com
now we just call him Phil.
Credit: reddit
@blocktrades, I sent you an LOLZ
Wow, thanks so much for the detailed report! You can see that there has been a lot of progress since the last update.
i always say that hive boom boom, i am feeling proud that i am part of hive since birth, great updates, and every new features bring us close to real success,
Es un gran informe detallado , esto es un manual que me impulsa a investigar y conocer esa gran cantidad de términos técnicos los cuales desconozco, además de ser un informe es una guía para comprender y estudiar
Oh, not only that, they are better than times that we had 4 years ago when we had less than half of the blocks that we have now.
It's funny to look at old posts to compare what have changed:
Here's my 4 years old "Hive Pressure 2: How to Answer Hive Questions?"
TL;DR: "Roughly you need 4 days and 9 hours to have it synced to the latest head block."
Of course my old server, and not even my current one can't beat yours, but assuming 33% slower, I think it could still keep up with with 4d9h benchmark :-)
I had gathered previously that the RC cost of transactions would go up if things got too busy. Does this happen much? I assume it protects us from certain kinds of attack.
For curiosity, please explore www.minepi.com/zdigital it lets you mine picoin on your phone.
There is some code like that, but it is a bit different than the change we just made. That code charges extra for particular resources when it detects they are being used a lot. And in that case the actual final RC cost goes up, it is not just a temporary cost. But none of those increases protected well against this particular form of attack.
We developed this as a solution after flooding a test net with as many transactions as it was possible to throw at it, all while leaving the block size at its current level (64K), which results in the worst case memory usage for pending transactions (because it constantly generates more transactions than can fit in the blocks and they build up). Such an attack isn't particularly easy to do (we had to write special versions of hived that could even manage to do it), but long term it is important to have this kind of resilience. Part of this attack is also only opened up because we are increasing the time that pending transactions can stay in memory (which will be very useful for transactions signed by multiple parties since it takes some time for each party to pass around and sign the transaction).
Well, it is of course a night and day comparison if we look at code from 4 years ago.
For some reason (I can't remember why), I took a look at state of Steemit code a couple of days ago to see how long it looks like it will be before it collapses under its own weight.
It turns out the only "fixes" that have been done are all to limit the functionality of the code so that their servers don't just die now.
As one example, despite having about 1/10th our transaction volume, apparently their servers began having problems serving up account histories and this was loading down the API servers and resulting in locking issues in the hived nodes that were serving up account history info.
What was the solution? Speed it up or offload the work? Nope! Instead now they only allow fetching the last 7 days worth of operations for an account :-) I guess you're supposed to go to a block explorer to see the rest...
!PIZZA
$PIZZA slices delivered:
@danzocal(2/10) tipped @blocktrades
Congratulations @blocktrades! Your post has been a top performer on the Hive blockchain and you have been rewarded with this rare badge
You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP!LOL
!INDEED
(9/10)
@blocktrades! @phillarecette Totally agrees with your content! so I just sent 1 IDD to your account on behalf of @phillarecette.
At Bilpcoin, we're committed to helping and supporting people, not abusing them. We're burning as many BPC tokens as we can. We ask, why doesn't anyone do anything about these bad downvotes on Hive?
https://youtu.be/3knxHd8nwuE
livinguktaiwan (79)in HiveFest • 2 days ago
He would never survive an hour at HiveFest now 🔪🔪🔪
https://hive.blog/hive-106258/@livinguktaiwan/re-slobberchops-skc63a
https://hive.blog/hive-106258/@slobberchops/re-livinguktaiwan-skc5h1
On Hive a significant issue exists with automatic upvotes consistently rewarding the same individuals day in and day out
We want to address the issue of downvoting. It has caused pain to many people, and we want to make sure it doesn't happen again reply to @jacobtothe
On Hive a significant issue exists with automatic upvotes consistently rewarding the same individuals day in and day out
We hope that those who genuinely care about Hive will reconsider their actions, as continuing down this path could inadvertently harm innocent users who are unaware of these issues
lol the Marky mark keeps dreaming
There's been a notable increase in frustration and concern among many users
Reply 2 @crimsonclad You may consider yourself clever
Reply to @crimsonclad
Consider revising the value plan, as it's not providing significant benefits to HIVE
The Value Plan, as it stands, seems to be a one-sided relationship with the HIVE platform, where the benefits are one-way
Actions indeed speak louder than words, a fact we've all observed individuals may talk a good game, a whole lot of shit, but their actions often expose their genuine nature LOL
We consider it unwise to engage in harmful actions, even if you think you can escape the repercussions
https://hive.blog/politics/@jacobtothe/re-bpcvoter1-shjdc8
The Hive Police aka Hivewatchers, are the real heroes of Hive LOL, aren't they?
Feast your eyes on Hive's trending page, what a load of trash
LoL it's the Hivewatchers Hive Police, dishing out orders like a bakery LOL! Folks, do what you want with your Hive power, just as you please. And you, Hivewatchers, downvote away, but remember, judgment day's coming
Harry fam We're just here, laughing at the shenanigans on Hive! Sure, our content's getting downvoted, but hey, it's all part of the game LOL
https://hive.blog/hive-158694/@hivewatchers/shhnhs
adm [-]
meesterboom [-]
steemcleaners [-]
jacobtothe [-]
logic [-]
chekohler [-]
b00m [-]
celestegray [-]
citizensmith [-]
sazbird [-]
technicalside [-]
bagpuss [-]
vxn666 [-]
spaminator [-]
meestemboom [-]
ihal0001 [-]
tillmea [-]
meesterleo [-]
meesterbrain [-]
unclefunker [-]
and 1 more
https://hive.blog/hivewatchers/@bpcvoter/shqkqc
On Hive, there's a user who frequently burns a significant amount of Hive LOL with his own accounts
How To Fool An Entire Population
it's so, so concerning to see Blocktrades delegating 2+ million Hive power to Buildawhale, and Buildawhale is downvoting legitimate content
https://youtu.be/8VcSzCGbpoE
We began sharing factual information following unwarranted downvotes on Hive it's all in the transactions
Upon examining our posts, you will notice they have been downvoted, and we've been labeled as scammers and spammers, which we find amusing. We consistently share new content
Once again, we ask why is our legit content being downvoted on Hive and what is the reason behind it. Hivewatchers ADM spaminator steemcleaners guiltyparties logic
We have Hive witnesses farming Hive, self-voting, operating comment farms, and self-funding projects with community resources
https://peakd.com/@themarkymark/activities
https://peakd.com/@buildawhale/activities
https://peakd.com/@blockheadgames/activities
https://peakd.com/@hiveauctions/activities
https://peakd.com/@gogreenbuddy/activities
https://peakd.com/@meritocracy/activities
https://peakd.com/@gogreenbuddy/activities
https://peakd.com/@jacobtothe/activities
https://peakd.com/@usainvote/activities
https://peakd.com/@leovoter/activities
https://peakd.com/@usainvote/activities
https://peakd.com/@upmyvote/activities
https://peakd.com/@apeminingclub/activities
https://peakd.com/@punkteam/activities
Let's delve into the Builda whale farm on the Hive, Gogreenbuddy, who is also colloquially known as the Marky mark USAINVOTE UPMYVOTE IPROMOTE and 100's more if not thousands
Buildawhale farm
Curation Rewards
The Marky mark
Curation Rewards
https://peakd.com/@themarkymark/activities
Usainvote
Curation Rewards
https://peakd.com/@usainvote/activities
Apeminingclub
Curation Rewards
https://peakd.com/@apeminingclub/activities
Gogreenbuddy
Curation Rewards
https://peakd.com/@gogreenbuddy/activities
#thedarksideofhive
https://www.publish0x.com/the-dark-side-of-hive
https://hive.blog/hive-167922/@bpcvoter1/who-is-cashing-out
https://hive.blog/hive-167922/@bilpcoinbpc/we-exposed-the-buildawhale-comment-and-its-unfortunate-to-note-that-the-issue-persists-we-have-observed-that-this-individual-i
https://www.bilpcoin.com/undefined/@bpcvoter1/zagi
https://hive.blog/hive-167922/@bpcvoter1/two-years-ago
https://hive.blog/hive-167922/@bpcvoter2/https-peakd-com-themarkymark-activities-they-are-are-now-trying-to-hide-to-builda-whale-curation-rewards-lol
https://peakd.com/@themarkymark/activities
https://peakd.com/@buildawhale/activities
https://peakd.com/@gogreenbuddy/activities
https://peakd.com/inleo/@themarkymark/re-bpcvoter1-skbzej
Downvoters we've got to ask, what's the joy in downvoting, huh? It just shows how down in the dumps you are! Remember, Themarkymark himself has been downvoted in the past
Funny seeing how much power a Hiver with mental health issues wields! And talk about support, Blocktrades is like his trusty sidekick LOL
Many question the impact of downvoting and the role of certain Top Hivers, including Themarkymark who abuses his power, many express disappointment about the lack of response from those in positions of authority NO HELP.
Withdraw vesting from @poshbot to @ipromote0.921 HIVE
Oct 27, 2021
https://peakd.com/@ipromote/wallet
https://peakd.com/bpc/@bpcvoter2/the-hive-police-are-doing-a-disservice-to-the-hive-community-by-farming-hive-and-turning-a-blind-eye-to-the-real-spammers-and
https://peakd.com/hive-167922/@bpcvoter2/https-peakd-com-themarkymark-activities-they-are-are-now-trying-to-hide-to-builda-whale-curation-rewards-lol
https://peakd.com/hive-194913/@bpcvoter3/we-believe-many-top-hivers-are-struggling-with-mental-health-issues-addiction-and-personal-problems
https://hive.blog/hive-167922/@bpcvoter1/downvotes-on-hive-should-be-used-for-their-intended-purpose-not-as-a-tool-for-the-hive-whales-to-abuse-or-manipulate
https://peakd.com/hive-194913/@bpcvoter3/we-have-made-it-clear-that-if-the-downvoting-continues-bilpcoin-and-others-are-prepared-to-delve-deeper-and-share-more
https://peakd.com/hive-187189/@bpcvoter3/hello-community-did-you-know-alpha-account-belongs-to-blocktrades-wife-wtf
https://hive.blog/hive-167922/@bpcvoter1/we-started-investigating-after-being-wrongly-downvoted-we-spoke-with-hive-blurt-steem-users-and-others-who-are-following-our
https://peakd.com/hive-194913/@bpcvoter3/many-hive-community-members-are-expressing-their-concerns-about-the-downvoting-trend-which-we-and-they-believe-is-detrimental-to
https://peakd.com/hive-167922/@bpcvoter3/it-s-funny-how-you-can-try-to-lie-on-hive-where-every-transaction-is-public-to-all-which-makes-it-quite-dumb-to-deny-or-deflect
https://peakd.com/hive-167922/@bpcvoter3/it-s-quite-funny-to-observe-the-behavior-of-individuals-when-they-find-themselves-in-a-situation-where-their-actions-are-exposed
Buildawhale downvoting good content, self-voting comments powering down funds that are then sent to Ipromote and then the alpha account controlled by Blocktrades' wife doesn't look good and raises questions about the transparency and fairness of Hive.
https://www.reddit.com/r/stoptheabuseonhive
https://www.reddit.com/r/Buildawhalefarmonhive
https://www.reddit.com/r/Buildawhale
https://www.reddit.com/r/Thedarksideofhive
https://hive.blog/created/bpc
https://peakd.com/created/bilpcoin
https://ecency.com/created/bilpcoin
https://www.bilpcoin.com/created
STOP THE #BUILDAWHALEFARM #BUILDAWHALESCAM
Posted using Bilpcoin
POL
!LOL !DOOK !BBH !PGM !BEER !ALIVE !GIF !WEIRD !LUV !PIZZA !LOLZ
666666666
lo 5455344242 bnb
lolololol
Posted using Bilpcoin
90867
#STOP THE #ABUSE xxx
Learn all about this shit in the toilet paper! 💩
@bpcvoter3, sorry! You need more $WRD to use this command.
The minimum requirement is 50.0 WRD balance.
More $WRD is available from Hive-Engine or Tribaldex
Canva Pro Invite Team
Congratulations @blocktrades! Your post has been a top performer on the Hive blockchain and you have been rewarded with this rare badge
You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOPThat's a hilariously bad solution, but absolutely 100% on-par for what Sun would mandate, so I'm not at all surprised.
Giving Sun even credit for this is in fact too much credit: as far as I can tell, it was done by some independent dev, who can see the upcoming wall that Steem is driving towards and is trying to slow down the car.
I've been checked out from Hive for a while, but wanted to ask, if I want to develop a HAF dapp on hive, will it take care of micro-forks or will I need to handle that? I have a web 2 game that I want to tokenize
HAF was designed to automatically handle micro-forks. It actually has two modes:1) in the default mode, it tracks all changes up in your app's tables up to the last irreversible block, so it can revert those changes in case of a fork and 2) irreversible mode, where it the blockchain data is only made available to your app after the block becomes irreversible. Originally I planned for a lot of apps to use the default mode, but with OBI, using the second mode works pretty well too (and it is slightly faster).
Have a nice day my friend 😘
Amazing. I don't see anything about HAF in the hive developer portal, how can i get started?
First, I suggest getting familiar with how the HAF API node stack works. Follow the readme instructions here: https://gitlab.syncad.com/hive/haf_api_node