Waivio

Recommended Posts

10th update of 2024: API node software release in Dec, hardfork tentatively set for Q1 2025

19 comments

blocktrades184.3 K19 days agoHive.Blog7 min read

https://images.hive.blog/DQmSihw8Kz4U7TuCQa98DDdCzqbqPFRumuVWAbareiYZW1Z/blocktrades%20update.png

Here’s a quick update on what the BlockTrades team has been working on since my last report.

My plan is to stick with the previously announced time of mid-December for upgrading all the Hive API nodes, but I decided it was best we delay hardfork 28 to first quarter of 2025. This means only API node operators will need to upgrade in December, and exchanges can upgrade later.

I think separating this into two releases should reduce the pressure on everyone, since there’s more likely to be issues with the API node and non-hardfork hived changes (just because there are so many changes and the changes need to be tested against all the Hive apps out there), compared to the actual hardfork changes (relatively few at the moment).

This should also reduce the chance for potential issues when exchanges finally upgrade, since most of the hived changes will have been tested in production for a while by then.

Hived: blockchain node software

As part of the release of the HAF API node software suite, we’ll be releasing a new version of hived (which will be followed by a later release with the final “feature set” for hardfork 28). As a tentative date, we’ll be setting the hardfork date to February 8, 2025, but that may be overly optimistic.

Recent improvements

  • We optimized the time to split a monolithic block_log into 1M block size files from 38 minutes down to 13 minutes: https://gitlab.syncad.com/hive/hive/-/merge_requests/1406
  • Fixed value in database_api::api_account_object::post_voting_power to correctly show voting manabar values at client side.

In progress

  • Continuing analysis of hived under transaction flooding conditions with large blocks (e.g 1-2MB blocks).
  • Beginning rewrite of transaction signing algorithms (e.g. to allow more signatures, etc). This work will also affect how we manage 2nd layer lite accounts.

HAF: framework for creating new Hive APIs and apps

Recent improvements

In progress

  • Adding API methods to allow a HAF app to request and wait on the creation of indexes on HAF’s own tables in a way that optimizes index creation time and avoids deadlocks.

Hivemind: social media API

We completed the switch to postgREST, including final optimizations I promised in my last post to fix the few performance regressions that we found. Every hivemind API call is much faster than before now. Here’s the latest API benchmarks:

Reference python times:

EndpointMax [ms]Min [ms]Average [ms]Median [ms]
condenser_api.get_discussions_by_blog670316623052396
bridge.get_account_posts334426864825
bridge.get_discussion2271331935215
bridge.get_ranked_posts3409205971955
condenser_api.get_discussions_by_comments26764587574
condenser_api.get_followers136203831
condenser_api.get_discussions_by_created289985638308
bridge.get_profile611328417395
condenser_api.get_discussions_by_feed3146127217481694
condenser_api.get_blog4617119832563496
condenser_api.get_following349177270267

PostgREST:

EndpointMax [ms]Min [ms]Average [ms]Median [ms]
condenser_api.get_discussions_by_blog238346603643
bridge.get_account_posts40999218188
bridge.get_discussion3266132744
bridge.get_ranked_posts44958228226
condenser_api.get_discussions_by_comments268194107
condenser_api.get_followers86101514
condenser_api.get_discussions_by_created74532201130
bridge.get_profile485320388379
condenser_api.get_discussions_by_feed594402495497
condenser_api.get_blog1533312861897
condenser_api.get_following219189204204

In progress

  • Various optimizations
  • Switch to pure SQL resulted in some changes when an error occurs for an API call, so we’re analyzing if we can make them fully compatible with old error messages.

HAfAH: account history API

Fixed bug in account_history_api::get_transaction returning broken JSON when transaction has no signatures: https://gitlab.syncad.com/hive/HAfAH/-/merge_requests/165

Balance tracker API: tracks token balance histories for accounts

Reputation tracker: API for fetching account reputation

HAF Block Explorer

Recent improvements

WAX API library for Hive apps

Recent improvements

In progress

  • Creating a generic UI component for the health-checker.
  • Creating an object-oriented interface for the Python version of Wax.
  • Porting the code for preventing accidental leakage of private keys to Wax’s transaction construction code.
  • Create documentation.

HAF API Node

Recent improvements

In progress

  • Testing replaying HAF API servers

What's next?

I left notes on most of the remaining code changes that are planned in each application’s section, but other than those changes, our main focus in the next weeks will be testing all the apps together, especially under real world loading conditions (e.g. mirroring traffic from our production API server).

Then, finally, we’ll need all the apps devs to begin verifying their code against the new API server code. Limited forms of this testing can be done now by testing against api.syncad.com, which is where we deploy release candidates for the API server code.

Hashtags 5
HiveDevs - A community of developers working on Hive related projects. Visit our Discord at https://discord.gg/cvnByhu

Comments

Sort byBest
AI
Waivio AI Assistant
How can I help you today?