Hiero Block Node v0.31.0 continues building out the TSS foundation established in v0.29.0–v0.30.0, with a major focus on the Block Tools CLI maturity, plugin API expansion, and block verification reliability. This is the first release to introduce the TssBootstrapPlugin skeleton and expose TssData via the serverStatusDetails gRPC call, laying the groundwork for full TSS bootstrapping support in upcoming releases. Protobuf sources are upgraded to Consensus Node 0.73.0-rc.1, including TSS Wraps fixtures for V2, V5, and V6 Wrapped Resequenced Blocks (WRBs), and the verification path gains two important fixes: an NPE in allBlocksHasher when reading historical block data and an off-by-one error in clearObsoleteQueueItems.
The Block Tools CLI receives the most changes of any area this release. Dynamic Address Book (DAB) transactions are now supported in AddressBookRegistry, address books are auto-updated in wrap and validate commands, block number is now set correctly in RecordFileItem for v2/v5 WRBs (fixing minor and major v2 issues), mirror node block gaps now cause a hard failure rather than silently continuing, testnet genesis state and address book support is added, and multiple testnet amendment corrections are included for SCHEDULESIGN imbalances at block 7,557,270 and genesis supply flag handling. The validation checkpoint is also preserved correctly on both successful completion and failure.
On the plugin and infrastructure front, the BlockNodePlugin interface gains an onContextUpdate lifecycle method for dynamic reconfiguration, BlockActions returned by the manager are revised for correctness, and the archived-cloud-plugin skeleton is bootstrapped. The Block Node Dockerfile now supports building multiple image variants in a single pass, and the dev Docker image is renamed solo-dev for clarity. Metrics are reorganized under a corrected category name (blocknode instead of hiero_block_node), dashboards are updated to reflect new API categories, and the release CI pipeline is fixed. Helidon is upgraded to 4.4.0, PBJ to 0.14.5, and gRPC to 1.80.0. Eighteen dependency upgrades round out the release.
Compatibility Matrix
| Component | Minimum Version |
|---|---|
| Block Node | 0.31.0 |
| Consensus Node | 0.73.0 |
| Mirror Node | 0.152.0 |
What's Changed
⭐ New Features
- feat: Add an onContextUpdate method to the BlockNodePlugin Interface by @berryware in #2442
- feat: Create the TssBootstrapPlugin skeleton by @berryware in #2387
- feat: End Current Block and Start New One When New Header Received by @ata-nas in #2389
- feat: support Dynamic Address Book (DAB) transactions in AddressBookRegistry by @rockysingh in #2467
- feat: Add TssData to the serverStatusDetails gRPC call by @berryware in #2468
🚀 Enhancements
- chore(verification): Upgrade protobuf sources to CN 0.73.0-rc.1 with TSS Wraps fixtures by @AlfredoG87 in #2489
🐛 Bug Fixes
- fix: release pipeline by @AlfredoG87 in #2395
- fix: 2372 Better validation checkpoint saving and hash validation by @jasperpotts in #2384
- fix: detect and fail on mirror node block gaps by @rockysingh in #2393
- fix: Remove testnet genesis amendments and add --skip-supply flag by @rockysingh in #2402
- fix: Add address book auto-update to wrap and validate commands by @rockysingh in #2412
- fix: Add corrective amendment for unbalanced SCHEDULESIGN at testnet block 7,557,270 by @rockysingh in #2425
- fix: Preserve validate checkpoint on successful completion by @rockysingh in #2431
- fix: Verification all blocks hasher NPE reading historical block data. by @jsync-swirlds in #2441
- fix: update verification state after live-tail backfill by @AlfredoG87 in #2471
- fix: set correct block_number in RecordFileItem for v2/v5 WRBs and fix minor and major v2 issue. by @rockysingh in #2483
- fix: Fix resource leak in all blocks hasher by @jsync-swirlds in #2459
- fix: use dedicated fetcher for autonomous scan peer queries (#2479) by @AlfredoG87 in #2488
- fix: Fix the publish-app job in the release-push-image.yml workflow by @berryware in #2497
- fix: off-by-one in clearObsoleteQueueItems (#2519) by @AlfredoG87 in #2521
- fix: rename metrics category from hiero_block_node to blocknode (#2522) by @AlfredoG87 in #2524
- fix: add in gh workflow steps to copy plugins to the solo-dev docker image. (#2526) by @AlfredoG87 in #2532
🔨 Tests
- feat(solo-e2e): upgrade Solo to 0.63.0 and other improvements by @AlfredoG87 in #2397
- feat: add in new k6 tests by @berryware in #2319
- feat: generate V2, V5, V6 WRB test fixtures by @rockysingh in #2440
- fix: use picocli output capture in StateToJsonCommandTest to fix flaky test by @rockysingh in #2476
- fix: Improve Publisher Tests by @ata-nas in #2495
- fix: Issue 2480 use @hiero-ledger npm aliases by @a-saksena in #2499
- chore: Cleanup of Test-Only Logic & Utilize Config Converter Overrides for Testing by @ivannov in #2493
📝 Documentation
- docs: Updated and expand BN hardware specs by @Nana-EC in #2382
- docs: Add basic design documents for cloud storage plugins by @jsync-swirlds in #2380
- chore: Updated Hardware Specifications - Recalculation by @jsync-swirlds in #2423
- docs: Implemented feedback received from Limechain on solo-weaver by @deshmukhpranali in #2233
🔧 Improvements
- feat: Add testnet genesis state & address book by @rockysingh in #2350
- chore: Revisit and Update
BlockActions Returned by Manager by @ata-nas in #2419 - chore: Bootstrap archived-cloud-plugin development by @ivannov in #2403
- feat: Update the BlockNode DockerFile to be able to create multiple images by @berryware in #2447
- refactor: remove swirlds.common from test fixtures (and any where else it's used) separately by @ivannov in #2351
- refactor: Change block node dashboards to reflect new API categories by @ivannov in #2477
- chore: rename dev docker image to solo-dev by @berryware in #2490
⬆️ Dependency Upgrades
- build(deps): bump com.google.cloud:libraries-bom from 26.77.0 to 26.78.0 in /hiero-dependency-versions by @dependabot[bot] in #2365
- build(deps): bump org.eclipse.collections:eclipse-collections from 12.0.0 to 13.0.0 in /hiero-dependency-versions by @dependabot[bot] in #2407
- build(deps): bump grpcIoVersion from 1.79.0 to 1.80.0 in /hiero-dependency-versions by @dependabot[bot] in #2406
- build(deps): bump gradle-wrapper from 9.4.0 to 9.4.1 by @dependabot[bot] in #2405
- build(deps): bump codecov/codecov-action from 5.5.2 to 5.5.3 by @dependabot[bot] in #2398
- build(deps): bump Azure/setup-helm from 4.3.1 to 5.0.0 by @dependabot[bot] in #2417
- build(deps): bump gradle/actions from 5.0.2 to 6.0.0 by @dependabot[bot] in #2418
- chore(helidon-pbj): upgrade Helidon to 4.4.0 by @AlfredoG87 in #2422
- build(deps): bump gradle/actions from 6.0.0 to 6.0.1 by @dependabot[bot] in #2426
- chore: [StepSecurity] Apply security best practices by @stepsecurity-app[bot] in #2434
- build(deps): bump Azure/setup-helm from 4.3.1 to 5.0.0 by @dependabot[bot] in #2436
- build(deps): bump codecov/codecov-action from 5.5.3 to 6.0.0 by @dependabot[bot] in #2445
- build(deps): bump protobufVersion from 4.34.0 to 4.34.1 in /hiero-dependency-versions by @dependabot[bot] in #2462
- build(deps): bump com.google.cloud:libraries-bom from 26.78.0 to 26.79.0 in /hiero-dependency-versions by @dependabot[bot] in #2465
- build(deps): bump com.github.docker-java:docker-java-api from 3.7.0 to 3.7.1 in /hiero-dependency-versions by @dependabot[bot] in #2463
- build(deps): bump io.netty:netty-bom from 4.2.10.Final to 4.2.12.Final in /hiero-dependency-versions by @dependabot[bot] in #2466
- build(deps): Upgrade PBJ to
0.14.5. by @jsync-swirlds in #2485 - build(deps): bump step-security/harden-runner from 2.16.0 to 2.16.1 by @dependabot[bot] in #2494
Full Changelog: v0.30.2...v0.31.0