Skip to content

1.28.0

Choose a tag to compare

@Gandalf-the-Grey Gandalf-the-Grey released this 28 Oct 15:48

Hive Blockchain Detailed Change Log: v1.27.0 to v1.28.0

This detailed log outlines the key features, bug fixes, and preparatory changes introduced in incremental releases leading up to the v1.28.0 release, which includes Hardfork 28 (HF28).


⚠️ Important Upgrade Notice

Upgrading to 1.28.0 will typically require a full node replay due to changes in the internal hived state format and data structures.

New options impacting behavior:

  • block-log-split - defaults to 9999 to support splitting the block_log file into multiple "part" files (each part file stores 1 million blocks). If you wish to preserve the previous monolithic block_log file behavior, set this option to -1.

    Splitting the block_log file into multiple part files allows you to relocate part files on different filesystems and symlink them in the blockchain directory. This means that multiple hived nodes can use a single set of part files to share most of the block log history (once a part file is filled with 1M blocks, it is never written to again).

    If the default block-log-split value is lowered, nodes will operate in a "pruned" mode, only keeping the latest N 1M block parts. In the extreme case of setting block-log-split to 0, the node will not keep the raw contents of any blocks.

    Operating in pruned mode saves disk space, but also reduces the node's ability to support block_api usage (API for fetching historical blocks) and provide old blocks to other nodes that are syncing from scratch.

    Note for updating an older version of hived: the hived tool will automatically perform a block_log split of an existing monolithic block_log file when the block-log-split option is changed from monolithic (-1) to any other value, including the new default value of 9999. This will temporarily require double the normal storage during the time the file is being split into part files. If you wish to avoid this, you must explicitly set block-log-split to -1 before starting the upgraded node.

  • comments-rocksdb-path - option to specify location of the external storage database directory for comments (this is state data that was previously stored directly in the shared memory file). Defaults to comments-rocksdb-storage subdirectory in the shared memory directory. You can specify an absolute path to place it in a separate directory from the one used to store the shared memory file (and thus reduce the ramdisk size required to most efficiently perform replay or sync operations).

  • changes related to options useful for testing like stop-replay-at-block (renamed to stop-at-block also allowing to stop processing at block received from sync), exit-at-block allowing to stop hived process after receiving given block


🚀 I. Hardfork 28 (HF28) - Protocol Consensus Changes

These changes were implemented in the 1.27.x branch and are scheduled to be activated upon reaching the HF28 block.

Feature Area Change / Details MR/Issue Reference
Block Size Limit Witness-configurable block size is capped at 2MB. Merge Request 1357
Transaction Expiration Increased the transaction expiration time for better network resilience. Merge Request 1383
HBD Treasury Inflation HBD held in the Treasury is removed from inflation calculations. Merge Request 1467
Authority Checks Stricter authority matching is enforced (e.g., an active authority can no longer satisfy a posting level requirement). Merge Request 1408, Issue 716
Signature Flexibility Redundant (ineffective) signatures are allowed. Owner/active/posting authorities required by mixed operation types can be combined in a single transaction. Merge Request 1420
Vote Limits Vote edit limits are eliminated on posts. Issue 458
Recurrent Transfers Multiple recurrent transfers are allowed for the same sender/receiver pair. Issue 382
Proposal Voting Votes for invalid proposals will cause the transaction to fail. Merge Request 1460

II. Incremental Release Changes (v1.27.0 to v1.27.12)

Version 1.27.1 (Hotfix)

  • Fixes: Hotfix specific to the condenser_api::get_ops_in_block call.

Version 1.27.2

  • New Tools & Performance: Added block_log_util tool (Merge Request 694). Upgraded secp256k1-zkp library for signature processing performance improvements (Merge Request 689).
  • API & RC: Added support to automatically generate RC statistics (get_rc_stats, get_rc_operation_stats) (Merge Request 670). Improved transaction status API calls to include the optional RC cost consumed by a given transaction (Merge Request 771).
  • Fixes: Improved block statistics logging (Merge Request 650). Fixed slow shutdown if node was syncing (Merge Request 741).
  • New Operation: Added virtual operation: proxy_cleared_operation (Merge Request 681).

Version 1.27.3

  • RC Features: Implemented minimum RC delegation feature (Merge Request 775). Improved RC cost calculation for recurrent_transfer operations (Merge Request 803).
  • Fixes: Improved chain-state verification to prevent issues when a new index is added to an already filled state file (Issue 423). Fixed filtering in database_api::list_proposal_votes (Merge Request 773).

Version 1.27.4

  • Features: New virtual operations added (Merge Request 332). Prerequisites coded for strict matching of data structures to shared_memory.bin and snapshot contents (Merge Request 784).
  • Fixes: Fixed hived shutdown problems when executing broadcast_transaction_synchronuous and when using --exit-before-sync. RC mana can no longer go under zero (Merge Request 863).

Version 1.27.5

  • API Changes: All condenser_api methods now return result sets using the legacy JSON form (Merge Request 964).
  • Infrastructure: Introduced the Beekeeper tool for secure key management and signing. RC code moved closer to the chain code for future consensus preparation (Merge Request 917). New dependency on uring library to speed up file I/O (Merge Request 968).

Version 1.27.6

Version 1.27.7

  • Disk & Data Management: Introduced Pruned Block Log support via the new block-log-split configuration option.
  • Security & Stability: Added new options (rc-flood-level, rc-flood-surcharge, max-mempool-size) to prevent potential transaction flooding (Merge Request 1397).
  • Configuration Cleanup (Deprecation):
    • Removed deprecated plugins: follows and tags.
    • Renamed options: seed-nodep2p-seed-node; rpc-endpoint removed in favor of explicit webserver-http-endpoint / webserver-ws-endpoint.
  • Functional: Hived internal default option values are now set regardless of config.ini presence.

Version 1.27.8

  • Fixes: Relaxed chain state comparison rules to facilitate seamless node upgrades (Issue 734). Fixed issues where a broken peers.json file could block P2P communication.

Version 1.27.9

  • HBD treasury removed from inflation calculation (to be activated at HF28)
  • vote operations pointing to nonexisting proposals will fail (to be activated at HF28)
  • bugfixes in beekeeper implementation related to wallet locking
  • size optimizations of Typescript version of beekeeper

Version 1.27.10

  • Fixes: Fixed bugs in Account History RocksDB plugin specific to full pruned node configurations (Issue 748). Fixed bugs specific to chain state comparison after snapshot loading (Issue 749).
  • Functional: Improved snapshot loading verification (Merge Request 1505). Updated the RocksDB library version to gain stability bugfixes.

Version 1.27.11

  • Upgrade from Ubuntu 22.04 to Ubuntu 24.04 as base build environment
  • optimization: eliminate undo sessions for blocks older than last checkpoint: https://gitlab.syncad.com/hive/hive/-/merge_requests/1498
  • improvements in testing environment stability
  • synced changes in fc codebase taken from bitshares repo (mostly related to thread and task support)
  • improvements in hived shutdown stability
  • implemented and exposed authority trace functionality from Hive Protocol to the wax library

Version 1.27.12

  • introduced pool allocators to reduce shared memory allocation
  • introduced comment archive to significantly reduce shared memory allocation (near to 5GB on consensus node)
  • JSONRPC APIs have own swagger definitions to improve documentation and allow interactive API execution
  • introduced Python and Typescript package generators based on API swagger definitions, to automate API class definition process
  • reduced log spamming related to chainlock warnings
  • Typescript and Python packages are published to official repositotries (NPM and PyPI)
  • Defined procedure to support ARM cross - build

III. Version 1.28.0

  • Final Hardfork Activation: This version includes the final consensus activation logic for Hardfork 28 (HF28), encompassing all the protocol changes listed in Section I. Initial date for HF28 activation is: Wed Nov 19 2025 13:00:00 GMT+0000
  • Codebase: Inherits all stability and feature improvements from the 1.27.x maintenance releases.