github hiero-ledger/hiero-block-node v0.27.0

8 hours ago

Hiero Block Node v0.27.0 upgrades the runtime to Java 25 LTS, bringing significant performance improvements, lower memory footprint, and better virtual thread support — making it the recommended JDK for Helidon-based services. This is a major infrastructure milestone for the Block Node and sets the foundation for future releases.

This release also delivers a comprehensive overhaul of the Files Historic Plugin, introducing atomic zip writes via temp files, immutable zip enforcement after creation, improved zip filename conventions, configurable zip overwrite behavior, and robust handling of missing blocks. The Stream Publisher plugin now sends disconnect notifications to other plugins and gracefully handles scenarios with no connected publishers. The Block Node Tools suite received multiple rounds of HAPI upgrades, genesis state amendments, validation fixes, hasher corrections, and new signature statistics in catch-up mode.

On the infrastructure side, Protobuf has been upgraded to v0.70.0, and over 20 dependency updates improve security and compatibility across the stack. Notable bug fixes address HTTP/2 connection failures in container environments for the backfill plugin, block streaming chunking for large blocks, and several flaky test stabilizations.

Important Notes

Java 25 LTS Upgrade

Block Node now requires Java 25 (previously Java 21). Java 25 is the latest LTS release and is the recommended runtime for Helidon 4.x. It delivers faster startup, reduced memory usage, improved virtual thread scheduling, and better overall throughput. All container images ship with Java 25. Operators should ensure their deployment environments are updated accordingly.

Temporary Configuration: files.historic.overwriteExistingArchives

This release introduces the configuration property files.historic.overwriteExistingArchives (env: FILES_HISTORIC_OVERWRITE_EXISTING_ARCHIVES), which defaults to true. This configuration is temporary and will be removed in the next release (v0.28.0). In v0.28.0, zip overwrite will always be enabled (the current default behavior) and the configuration option will no longer exist. Operators who have explicitly set this property should plan to remove it from their configuration.

Breaking Changes

Compatibility Matrix

Block Node Version Consensus Node Version
0.24.2 up to 0.68.4
0.26.0 0.70.x+
0.27.0 0.70.x+

What's Changed

🚀 Enhancements

🐛 Bug Fixes

  • fix: 1736 add blockchain cli tools by @jasperpotts in #1769
  • fix: updated both Hasher implementations to return EMPTY_TREE_HASH (which … by @jasperpotts in #2065
  • fix: Fixes verification mount volume parse exception and ParsedException due to unnecessary Parsing of the Block by @AlfredoG87 in #2072
  • fix(subscriber): Fix issue with streaming large blocks by chunking by @AlfredoG87 in #2107
  • fix(backfill): Fix Backfill HTTP/2 Connection Fails on Virtual Threads in Container Environments by @AlfredoG87 in #2104

🔨 Tests

  • fix: Fix flaky test by removing order in directories by @ivannov in #2054

📝 Documentation

🔧 Improvements

  • feat: Files Historic Plugin Initially Writes Temp Zip Files And Moves After Successful Zip by @ivannov in #2027
  • feat: Files Historic Plugin Handles Missing Blocks Cases by @ivannov in #2052
  • feat: Send notifications from stream-publisher plugin to inform other plugins when a publisher disconnects by @ata-nas in #2053
  • feat: Files Historic Plugin Ensure Immutable Zips After Creation by @ivannov in #2059
  • build: Upgrade from Java 21 to Java 25 LTS by @AlfredoG87 in #2094
  • feat: Files Historic Plugin Zip Filename Style by @ivannov in #2090
  • chore: Address PR review feedback: utility class standards, records, and f… by @rockysingh in #2112
  • feat: Files Historic Plugin Can Overwrite Existing Zips If Configured by @ivannov in #2069
  • chore: Enable zip overwrite by default by @ivannov in #2137
  • build: Update protobuf to v0.70.0 by @AlfredoG87 in #2133
  • feat: Handle "no publishers" scenarios in block node by @ata-nas in #2058

⬆️ Dependency Upgrades

  • build(deps): bump actions/setup-java from 5.1.0 to 5.2.0 by @dependabot[bot] in #2033
  • build(deps): bump actions/setup-python from 6.1.0 to 6.2.0 by @dependabot[bot] in #2034
  • build(deps): change peter-evans/create-pull-request 8.0.0 to step-security/create-pull-request 0.8.0 by @dependabot[bot] in #2032
  • build(deps): bump org.assertj:assertj-core from 3.27.6 to 3.27.7 in /hiero-dependency-versions by @dependabot[bot] in #2051
  • build(deps): bump daggerVersion from 2.58 to 2.59 in /hiero-dependency-versions by @dependabot[bot] in #2050
  • build(deps): bump com.google.cloud:libraries-bom from 26.73.0 to 26.74.0 in /hiero-dependency-versions by @dependabot[bot] in #2049
  • build(deps): bump step-security/harden-runner from 2.14.0 to 2.14.1 by @dependabot[bot] in #2046
  • build(deps): bump org.hiero.gradle.build from 0.6.4 to 0.7.0 by @dependabot[bot] in #2048
  • build(deps): bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in #2037
  • build(deps): bump gradle-wrapper from 9.1.0 to 9.3.0 by @dependabot[bot] in #2047
  • build(deps): bump gradle/actions from 5.0.0 to 5.0.1 by @dependabot[bot] in #2076
  • build(deps): bump docker/login-action from 3.6.0 to 3.7.0 by @dependabot[bot] in #2077
  • build(deps): bump helidonVersion from 4.3.3 to 4.3.4 in /hiero-dependency-versions by @dependabot[bot] in #2109
  • build(deps): bump protobufVersion from 4.33.4 to 4.33.5 in /hiero-dependency-versions by @dependabot[bot] in #2111
  • build(deps): bump com.google.cloud:libraries-bom from 26.74.0 to 26.75.0 in /hiero-dependency-versions by @dependabot[bot] in #2110
  • build(deps): bump gradle-wrapper from 9.3.0 to 9.3.1 by @dependabot[bot] in #2108

Full Changelog: v0.26.2...v0.27.0

Don't miss a new hiero-block-node release

NewReleases is sending notifications on new releases.