Release v0.68
Build 0.68.0
What's Changed
What's Changed
- ci: Update SDPT and SDLT workflow to only tag when build ID is present by @andrewb1269hg in #20984
- fix: Add scheduling.maxExpirySecsToCheckPerUserTxn by @tinker-michaelj in #20987
- chore: Update incident_types by @rbarker-dev in #21055
- chore: replace input.ref with github.ref in single day controllers by @andrewb1269hg in #20988
- chore: Minor Version Roll to 0.67.0-SNAPSHOT by @andrewb1269hg in #21072
- feat: 17002: A concept of default MerkleDb instance seems redundant by @artemananiev in #19700
- chore: state validator rehash is too slow by @OlegMazurov in #21013
- chore(20698): Invert PlatformWiring and PlatformCoordinator relationship by @mxtartaglia-sl in #20758
- ci: Automatically generate the GH release by @rbarker-dev in #20970
- chore: Rework block node communication metrics by @timfn-hg in #20885
Release v0.67
Release Highlights
Release v0.67 enhances the stability and performance of the Hiero Consensus Node and updates. Continued progress was made on HIP-1081 Block Nodes, adding features to improve connectivity and metrics.What's new in Release v0.67?
What's new in Release v0.67?
- Improved Block Streaming Metrics: Metrics for communication between consensus and block nodes have been reworked for clarity and utility. Metric names no longer include the self-node ID, as this is now automatically added as a label
- Block Streaming Service Lifecycle: The startup and shutdown procedures for the
BlockBufferServiceandBlockNodeConnectionManagerhave been improved to ensure more reliable initialization and termination. - Enhanced Testing and CI: A large effort was invested in improving the test infrastructure, including adding test container support for block nodes, increasing test coverage for block node communication, and parallelizing test suite runs to accelerate the development cycle.
- Besu Upgrade: Upgraded Besu EVM to 25.2.2. The update introduces Besu Native Libraries Verification, which ensures that required native libraries are available on the host operating system. When these libraries are missing, Besu falls back to non-native implementations, which can reduce performance. This verification helps maintain optimal execution efficiency and consistency across nodes.
Build 0.67.2
What's Changed
What's Changed
- feat: Block Node communication cherry-picks by @derektriley in #21742
- fix(bug): (cherry-pick) Fix typo in GitHub release step (#21563) by @andrewb1269hg in #21760
- fix: Disable RPC sync by @abies in #21841
- fix: Re-enable gas throttle; disable ops duration throttle by @lukasz-hashgraph in #21845
Build 0.67.1
What's Changed
What's Changed
- chore: (0.67) Revert
HookDispatchauth by @tinker-michaelj in #21424 - chore: cherry-pick: improve BN communication logging (#20584) by @derektriley in #21486
- fix: 21374: Backport the fix for 19574 to release 0.67 by @artemananiev in #21393
- chore: cherry-pick return the old debug log message receiving acknowledgements (#21383) by @derektriley in #21526
- chore: cherry-pick Fix BN Comms tests in release candidate (#21537) by @derektriley in #21547
- fix: 21677: (0.67) Virtual pipeline should ignore detached copies by @artemananiev in #21678
- fix: 21696: (0.67) Temporary snapshots are not removed from data/saved/swirlds-tmp/ by @artemananiev in #21697
Build 0.67.0
What's Changed
What's Changed
- ci: Update SDPT and SDLT workflow to only tag when build ID is present by @andrewb1269hg in #20984
- fix: Add
scheduling.maxExpirySecsToCheckPerUserTxnby @tinker-michaelj in #20987 - chore: Update incident_types by @rbarker-dev in #21055
- chore: replace input.ref with github.ref in single day controllers by @andrewb1269hg in #20988
- chore: Minor Version Roll to 0.67.0-SNAPSHOT by @andrewb1269hg in #21072
- feat: 17002: A concept of default MerkleDb instance seems redundant by @artemananiev in #19700
- chore: state validator rehash is too slow by @OlegMazurov in #21013
- chore(20698): Invert PlatformWiring and PlatformCoordinator relationship by @mxtartaglia-sl in #20758
- chore: Fix
BalanceValidationflake by @Neeharika-Sompalli in #21306 - feat: CryptoTransfer changes for HookExecution by @Neeharika-Sompalli in #21279
Release v0.66
Release Highlights
With the introduction of batch transactions, Release v0.66 marks a key milestone in enhancing flexibility and certainty when executing complex use cases.What's new in Release v0.66?
What's new in Release v0.66?
Batch Transaction Processing (HIP-551)
Historically, Hiero developers have been limited to submitting and processing transactions individually. To create complex flows developers relied on smart contracts to execute the series of transactions and mirror node queries to monitor the status of submitted transactions, leading to increased latency, added code complexity, and greater risk of partial failures or errors.Release v0.66 introduces HIP-551 - Batch Transactions, allowing multiple transactions to be bundled and submitted as a single unit that guarantees ACID properties (atomicity, consistency, isolation, and durability). The network handles the batch atomically, ensuring consistent execution while providing granular receipts for each inner transaction. This new feature unlocks capabilities like streamlined dApp interactions, atomic multi-step operations, and consolidation of multiple transactions into one HAPI call.Key benefits:- Efficiency Gains: Increases efficiency by processing multiple transactions in one submission, ideal for high-volume applications like DeFi or NFTs.
- Developer Flexibility: Enables new use cases, such as batch token minting or multi-account updates, without requiring smart contracts.
- User Experience Improvements: Simplifies interactions for end-users, e.g., executing a series of approvals and transfers in a single step.
| SDK | Version |
|---|---|
| Java | v2.55.0+ |
| JavaScript | v2.64.0+ |
| Go | v2.61.0+ |
| Rust | v0.39.0+ |
| C++ | v0.40.0+ |
Advancements in Block Node Communication
The development of Block Nodes (HIP-1081) continues with this release, with the following development being done:State Export Tools: New commands and improvements for exporting states (Issue: #20622). This is a part of enabling block nodes to improve state snapshotting.Block Node Communication: Enhancements to the communication protocol between consensus nodes and block nodes. Provides better recovery and shutdown procedures to minimize downtime during events like freezes. (Issues: #20858, #20874)\Build 0.66.0
What's Changed
What's Changed
- chore(ci): Update Promote Build Candidate to include SDLT trigger by @rbarker-dev in #20552
- feat: 20383 Added
exportcommand by @imalygin in #20528 - chore: fixed the script name for sdct workflow by @tomzhenghedera in #20562
- test: Implement end to end cross-service test cases for Token Service and Crypto Service by @Evdokia-Georgieva in #19853
- chore: Add methods to suppress multiple node results in Otter by @poulok in #20525
- chore: Make
NetworkandNodeinterface getter methods consistent by @poulok in #20538 - test: Verify schedule execution independent of batch failure by @mhess-swl in #20496
- feat: 20383
exportcommand improvement by @imalygin in #20573 - test: Implement end to end test cases for auto account creation in batch transaction by @Evdokia-Georgieva in #20462
- chore: fix version setter name by @poulok in #20572
- fix: Include gRPC cert hash in synthetic
Node{Create,Update}by @tinker-michaelj in #20539 - chore: fix bug in SDLT workflow to report test pass fail correctly by @andrewb1269hg in #20575
- feat: add new coin field to event by @lpetrovic05 in #20501
- test: Implement end to end cross-service test cases for Token Service and Consensus Service by @Evdokia-Georgieva in #20529
- chore: Change BlockBufferService backpressure logic based on BlockStreamConfig StreamMode by @derektriley in #20516
- feat: Added health-check command for pcli by @abies in #20581
- feat: Create GenerateStateTool for Otter by @timo0 in #20591
- chore: Reenable
TraceabilitySuite.assertSidecars()by @tinker-michaelj in #20605 - chore: Separate Otter container gRPC APIs by @poulok in #20600
- chore: update test report titles in Slack reporting by @andrewb1269hg in #20550
- feat: move pre handle after consensus by @lpetrovic05 in #20598
- feat:
STALEStatus Code in Transaction Receipts by @derektriley in #20595 - chore: Update
PrivilegesVerifierfor0.0.<alias>account ids by @tinker-michaelj in #20592 - feat: HIP-1215 Define the java function selectors needed in schedule contract translator by @gkozyryatskyy in #20437
- chore: upgrade to teleport version 18.1.4 by @andrewb1269hg in #20621
- refactor: Refactor Otter container file system structure by @timo0 in #20617
- fix: Flaky keyRotationDoesNotChangeEvmAddress HAPI test by @JivkoKelchev in #20614
- refactor: Logging in container should use
WORKING_DIRby @timo0 in #20623 - refactor: small improvements related to the VMM by @thenswan in #20618
- test: crypto service mono parity tests by @joshmarinacci in #20197
- feat: 20609 Implemented export for all the states by @imalygin in #20622
- chore: Run the node in a separate container in Otter by @poulok in #20626
- test: to run LNG in Debug mode #20514 by @alex-kuzmin-hg in #20568
- test: #20579 To migrate CronClean to CN, under small-schedule runner to increase Uploaders’s resources for Cheetah by @alex-kuzmin-hg in #20580
- ci: add fail tags to single day test workflows by @andrewb1269hg in #20641
- feat: move transaction pool to execution by @lpetrovic05 in #20341
- refactor: move EntityIdFactory to app-spi by @thenswan in #20653
- chore: Cleanup legacy sys accounts by @tinker-michaelj in #20608
- refactor: 19307 Moved
MerkleStateRootand related classes to testFixtures by @imalygin in #20513 - fix: Fix the Otter Reconnect Test by @poulok in #20639
- chore: Replace tag-sdlt-passing tag-sdlpt-passing with appropriate tag-*-result by @rbarker-dev in #20669
- fix: Get batch state changes only when block stream is enabled by @JivkoKelchev in #20624
- test: Edge cases - Smart Contracts Service Tests Part 6 by @vtronkov in #20082
- docs: Clarify use of the term “far future” event by @poulok in #20661
- fix: pass sender and relayer for eth calls by @stoyanov-st in #20625
- refactor: move swirlds-state-api info package to the app-spi module by @thenswan in #20658
- chore: 20629: Default max VM size should be decreased to 1B by @artemananiev in #20630
- refactor: 19307 Moved
MerkleStateRootand related classes to testFixtures - revert by @imalygin in #20684 - chore: Revert feat:
STALEStatus Code in Transaction Receipts by @derektriley in #20656 - chore: UnzipUtility constraints not needed by @derektriley in #20690
- chore: update hederaCryptography package to 2.0.1 by @andrewb1269hg in #20685
- fix: Flaky keyRotationDoesNotChangeEvmAddress HAPI test by @JivkoKelchev in #20646
- fix: State Validator: reHash validation is trivial by @thenswan in #20613
- feat: ensure consensus engine event contract by @lpetrovic05 in #20672
- fix: 20691 Introduced
initialCapacitytoMerkleDbConfigby @imalygin in #20692 - fix: 20609 Fixed JSON output of
exportcommand by @imalygin in #20700 - fix: Remove
UnsupportedOperationExceptionfromRecordStreamBuilderby @tinker-michaelj in #20697 - feat: Re-enable batch transaction processing (HIP-551) by @mhess-swl in #20678
- fix: Turtle logging is too verbose by @timo0 in #20649
- ci: Remove milestone check from PR Formatting workflow by @rbarker-dev in #20716
- chore: Adapt Otter Consensus Assertion by @poulok in #20686
- docs(20242): Proposal refactoring the platform’s state synchronization by @mxtartaglia-sl in #20616
- fix: Shutdown channel at end of container tests by @poulok in #20727
- fix: Update verbage in SDLT to add clarity by @rbarker-dev in #20726
- ci: Update XTS and Build Promotion cron schedules by @rbarker-dev in #20734
- chore: Update Otter Container docs by @poulok in #20657
- feat: provide all stale events by @lpetrovic05 in #20721
- chore: 20706: Upgrade PBJ version in CN to 0.11.15 by @artemananiev in #20707
- chore: Isolate and partition nodes in Turtle by @netopyr in #20675
- feat: update multipliers to reflect worst case by @lukelee-sl in #20702
- fix: Fix DocExamplesTest.testDeterministicBehavior by @netopyr in #20761
- fix: Input param checks, add first unit tests by @mhess-swl in #20387
- build(deps): bump io.netty:netty-bom from 4.2.2.Final to 4.2.4.Final in /hiero-dependency-versions by @dependabot[bot] in #20176
- chore: Simplify ParallelExecutor API by @abies in #20647
- ci: require TCK test pass for XTS pass tag by @andrewb1269hg in #20747
- fix: HIP-632 isAuthorizedRaw to use proper signature verification by @bubo in #19728
- ci: Revert “ci: require TCK test pass for XTS pass tag (#20747)” by @andrewb1269hg in #20768
- ci: Add HAPI Testing (Misc Records) to PR checks and MATS by @rbarker-dev in #20394
- chore: Isolate container nodes by @netopyr in #20757
- ci: Integrate rootly incident action with XTS workflows by @rbarker-dev in #20602
- build: update hederaCryptography package to 2.0.2 by @anthony-swirldslabs in #20796
- fix: validator runs out of memory on large states by @OlegMazurov in #20793
- test: Switched NLG to version 0.6.2 by @alex-kuzmin-hg in #20765
- ci: Update rootly integration to use both rootly-alert-action and rootly-incident-action by @rbarker-dev in #20805
- fix: Fix flaky partition Otter tests by @poulok in #20785
- ci: Integrate rootly with deploy production release by @rbarker-dev in #20807
- ci: Integrate rootly with Prepare XTS by @rbarker-dev in #20815
- test: JMH score for CryptoBenchMerkleDb is unreliable by @OlegMazurov in #20814
- ci: Add rootly integration to zxcron-promote-build-candidate by @rbarker-dev in #20822
- ci: Integrate Rootly with MATS tests by @rbarker-dev in #20827
- feat: 20823 Added progress output to
exportcommand by @imalygin in #20825 - fix: StateAnalyzer throws IndexOutOfBoundsException by @OlegMazurov in #20832
- chore: Implement
HasScheduleCapacityCallby @tinker-michaelj in #20689 - fix(ci): result check missing from promote build failure report by @rbarker-dev in #20840
- chore: Add first yahcli-integrated @hapitest (v2) by @mhess-swl in #20826
- ci: Add mirror-node-regression workflow and add it to the XTS test suite by @rbarker-dev in #20749
- feat: Update
EndOfStreamhandling for acknowledgements by @derektriley in #20732 - test: Add more batch tests by @JivkoKelchev in #20799
- ci: Integrate rootly alerting within SDPT by @rbarker-dev in #20844
- fix: state validator rehash hangs on large states by @OlegMazurov in #20845
- chore: reduce logging levels to DEBUG for BN communication by @AlexKehayov in #20839
- feat: Utilize PbjGrpcClient stubs by @petreze in #20842
- ci: Add rootly integration to SDLT by @rbarker-dev in #20849
- ci: Build docker determinism with Jammie & Noble by @rbarker-dev in #20853
- ci: Add rootly integration to SDCT by @rbarker-dev in #20850
- ci: require TCK test pass for XTS pass tag by @andrewb1269hg in #20770
- chore: Implement
yahcli ivy vs --cryptoby @tinker-michaelj in #20846 - fix(ci): Invalid syntax wheen assigning rootly title to bash variable by @rbarker-dev in #20869
- test: #20553 added alerts/comparison to min thresholds in benchmarks by @alex-kuzmin-hg in #20837
- feat: BlockNodeConnection
CLOSEDstate by @derektriley in #20858 - chore: update teleport to new token by @andrewb1269hg in #20860
- feat: Block buffer resiliency by @timfn-hg in #20141
- feat: add block node communication XTS check by @MiroslavGatsanoga in #19244
- fix: Update BlockNodeConnectionManager starting stream block by @derektriley in #20874
- feat: Update ops duration throttle handling by @lukasz-hashgraph in #20583
- ci: add workflow to generate release notes by @andrewb1269hg in #18149
- test: Regression cases for
accountscommand examples by @mhess-swl in #20881 - chore: Remove incident creation from MATS by @rbarker-dev in #20899
- fix: Change gas refund percentage by @stoyanov-st in #18530
- feat: turn on ops per sec throttles by @lukelee-sl in #20703
- ci: Turn off incident creation on deploy release artifact for now. by @rbarker-dev in #20905
- ci: Enable AdHocSD runners for Single Day Performance and Longevity Tests by @rbarker-dev in #20912
- ci: Add json-rpc-relay-regression workflow and add it to the XTS test suite by @rbarker-dev in #20752
- chore: Update DEV
application.propertiesby @derektriley in #20743 - fix: Attempted fix of flaky Otter reconnect test by @poulok in #20910
- chore: Replace all still-used
ValidationScenarioswithyahcli ivy scenariosby @tinker-michaelj in #20903 - ci: add missing secret to mirror node regression workflow call by @andrewb1269hg in #20931
- chore: Introduce MATS tag to subset of misc hapi tests by @mhess-swl in #20870
- test: Verify batch inner txn time range by @mhess-swl in #20937
- chore: state validator keeps all read entities in memory, exhausts the Java heap by @OlegMazurov in #20914
- ci(bug): Use correct ref in build-application when finding commit info by @rbarker-dev in #20939
- feat: 20877 Validator needs additional parameter to configure
swirlds-tmplocation by @imalygin in #20880 - test: Yahcli node tests by @ibankov in #20886
- chore: Update README for
yahcli ivy, small fixes by @tinker-michaelj in #20943 - feat: Reduce amount of stale events generated by @abies in #20763
- fix: set
maxAutomaticTokenAssociationsto -1 for contract hollow account creation by @lukelee-sl in #20950 - chore: Various minor fixes in Otter framework by @netopyr in #20819
- ci(fix): Fix bug - SDPT/SDLT fail to create rootly incidents/alerts by @rbarker-dev in #20955
- chore: [Hip 1215] add a possibility to run smart contract tests wo mocks against local node by @gkozyryatskyy in #20723
- ci: Add block-node-regression workflow and add it to the XTS test suite by @andrewb1269hg in #20754
- docs(20960): update wiring diagram by @mxtartaglia-sl in #20961
- ci(fix): Add missing slack webhook to XTS workflow by @andrewb1269hg in #20966
- test: Yahcli keys tests by @ibankov in #20887
- chore: Use FakeTime in TurtleNode Logs by @poulok in #20940
- ci: Dynamically assign k8s-cluster value in SDPT/SDLT by @rbarker-dev in #20964
- ci(fix): Add missing secrets to XTS Dry Run workflow by @andrewb1269hg in #20976
- chore: add back health check to transaction pool by @lpetrovic05 in #20896
- fix: revert hip 1249 by @lukelee-sl in #20977
- chore: use custom solo-cheetah image with fixed resource limits for CITR tests by @nathanklick in #20794
- test: NLG 0.6.3 by @alex-kuzmin-hg in #21009
- ci(bug): Fix rootly incident creation in SDPT and SDLT by @rbarker-dev in #21041
Performance Results

Release v0.65
Release Highlights
Release v0.65 highlights include Virtual Mega Map, enforcement ofmax_custom_fees for HIP-991 scheduled transactions, and Block Stream improvements including forward-compatibility and unified transaction records. Together, these changes introduce powerful new state management capabilities, scheduled transaction fee controls, and continued advancements toward production-ready Block Streams.
What's new in Release 0.65?
What's new in Release 0.65?
Virtual Mega Map
The Virtual Mega Map enhances Hedera’s internal state data structure by consolidating all entities—including singletons, queues, and maps—into a single virtual map. This ensures the entire state rolls up to one root hash.Key benefit:- Enhanced Verifiability: A unified root hash simplifies state and block item proofs, used for block streams.
HIP-991 Enhancements: max_custom_fees for Scheduled Transactions
Release v0.65 adds support for max_custom_fees in scheduled transactions with HIP-991 topics.Key benefits:- Predictable Fees: Ensures maximum custom fee limits are enforced.
- Alignment with HTS: Extends scheduled transaction functionality to better match Hedera Token Service features.
- Developer Guardrails: Protects applications and users from unexpected fee outcomes.
Advancements in HIP-1056 & HIP-1127: Block Streams
Building on the Block Stream work from v0.64, this release delivers major steps toward a unified, verifiable stream layer.New developments:HIP-1127: Unified Transaction Record in Block Stream: Addresses historical duplication in how transactions are represented and creates a single, unified standard for the block stream. It achieves this while ensuring complete backward compatibility for existing applications, requiring no code changes for developers submitting transactions.Key benefits:- Performance & Scalability: Improves throughput and reduces latency when handling accounts, tokens, and other stateful data.
- Future-Proofing: Provides a foundation for ongoing state service optimization.
- Reduces State: Reduces the size and cost of the data stream
Build 0.65.1
What's Changed
What's Changed
- fix: Fall back to
parseAndCheck()ifparseSignedAndCheck()isINVALID_TXby @tinker-michaelj in #20859 - chore: state validator fixes (0.65) by @OlegMazurov in #20792
- feat: 20823 Added progress output to
exportcommand (#20825) by @imalygin in #20835
Build 0.65.0
What's Changed
What's Changed
- test: Edge cases - Smart Contracts Service Tests Part 3 by @vtronkov in #19987
- test: Edge cases - Smart Contracts Service Tests Part 4 by @vtronkov in #20014
- chore: update test URL for JTR by @lpetrovic05 in #20067
- build(deps): bump testContainers from 1.21.0 to 1.21.1 in /hiero-dependency-versions by @dependabot[bot] in #19445
- chore: update hiero gradle conventions to v0.4.9 by @andrewb1269hg in #20062
- chore: Move EthereumSuite to long running tests bucket by @stoyanov-st in #20066
- fix: 19107: Corrected
classIdofBenchmarkMerkleInternalto preventclassIdconflict by @imalygin in #19122 - chore: Update CODEOWNERS for SC contributions (#20027) by @gkozyryatskyy in #20084
- chore: Add ability to debug docker nodes by @timo0 in #20051
- chore: Rename commonly used Turtle components to Otter by @timo0 in #20100
Performance Results

Release v0.64
Release Highlights
Release v0.64 significantly improves the developer experience for frontend applications by introducing dynamic gRPC-Web endpoint discovery. This simplifies development workflows, enhances scalability, and sets the stage for a more decentralized and robust Hedera network. Additionally, this release includes important important block stream feature development, bug fixes, optimizations, and dependency updates that contribute to the overall stability and performance of the Hiero Consensus Node.What's new in Release 0.64?
What's new in Release 0.64?
HIP-1046: gRPC-Web Proxy Endpoint Support To the Address Book
Historically, connecting frontend applications to Hedera using the JavaScript SDK has been challenging due to browser security restrictions. gRPC-Web was used as a workaround, but the necessary endpoints were hardcoded into the SDK. This approach required manual updates and coordination, which could become problematic as Hedera grows and more independent nodes operate.To address this issue, release v0.64.0 introduces dynamic endpoint discovery for gRPC-Web, as described in HIP-1046. The Hedera address book now includes gRPC-Web endpoint information, which the JavaScript SDK uses dynamically. This eliminates the need for hardcoded endpoints and simplifies connecting frontend applications to the Hedera network, even as endpoints change.Key benefits:- Simplified Development: Eliminates the need for manual SDK updates to reflect endpoint changes.
- Enhanced Scalability: Supports the growing number of nodes on the Hedera network.
- Improved User Experience: Provides a more seamless and robust connection experience for frontend applications.
- Update to the latest Hedera JavaScript SDK to leverage this feature. The SDK will now automatically retrieve gRPC-Web endpoints from the address book.
- Applications or tools that manually maintained lists of gRPC-Web endpoints should now query the mirror node for the latest list.
Advancements in HIP-1056: Block Streams
Version 0.64 introduces substantial progress on HIP-1056, which aims to create Block Streams—a unified, verifiable data stream that combines Hedera’s existing event, record, and sidecar streams into a single efficient output. These enhancements focus on making Block Streams production-ready by prioritizing efficiency, cost-effectiveness, and security.Key developments in this release include:- Stream Size Optimization: The block stream has been refined to minimize its size, reducing storage and transmission costs while maintaining high performance and scalability. This release represents a partial update, with more enhancements to follow.
- Batch Transaction Support: Added functionality to include batch transactions into the block stream.
- Consensus Node-to-Block Node Communication: Established secure and reliable communication channels between consensus nodes and block nodes including features like acknowledgments and resend mechanisms. This release represents a partial update, with more enhancements to follow.
Other updates:
In addition to the aforementioned features, release 0.64 introduces other updates:- Added TCK tests to the continuous integration pipeline ( #18727 ) to improve testing coverage and software quality.
- Disallowed setting duplicate rosters ( #19072 ) to optimize storage and CPU usage.
- Several dependency updates ( #18714, #18841, #19074 ) to leverage the latest improvements and security patches.
Build 0.64.2
What's Changed
What's Changed
- fix: Remove
UnsupportedOperationExceptions that fail whenstreamMode=RECORDSby @tinker-michaelj in #20391 - fix: (0.64) Fix else if -> else bytecode sidecar construct by @tinker-michaelj in #20478
- chore: Disable bytecode sidecar check for r64 by @tinker-michaelj in #20505
Build 0.64.1
What's Changed
What's Changed
- fix: (0.64) Query new account balance in throttling tests by @tinker-michaelj in #20130
- build: (0.64) add ‘hedera-protobuf-java-api’ to published artifacts by @andrewb1269hg in #20154
- chore: (0.64) update CITR SDPT workflow for Kubernetes by @andrewb1269hg in #20226
- chore: cherry pick final change for release/0.64 infra changes by @rbarker-dev in #20290
- fix: Revert Autorenew error code translation by @ibankov in #20292
- chore: Update UBUNTU_TAG to use debian bookworm-20250630-slim (#20296) by @rbarker-dev in #20312
Build 0.64.0
What's Changed
What's Changed
- Make worker loop sleep duration configurable (#20007)
- Add transaction support for the container environment (#19941)
- end the stream if block node is too far behind (#19434)
- replace hashmap with an array to improve performace for ops duration lookups (#19836)
- Apply EIP-3529 refund limits (#19769) (#19821)
Bug Fixes
- remove workflow dispatch inputs when calling integration workflow (#20046)
- 18458 Pces file writer rollback (#20038)
- false positive tests used ‘numeric contract complex’ from numeric validation test (#19954) (#20037)
- resolve issues with the integration trigger workflow (#20026)
- Restore missing deps, META-INF files (#20031)
Performance Results

Release v0.63
Release Highlights
Release v0.63 introduces three focused improvements: birth-round based ancient event handling, low overhead SDK usage metrics, and full support for non-zero realm IDs.What's new in Release 0.63?
What's new in Release 0.63?
gRPC_usage metrics every 15m. This will give node and network operators granular visibility with minimal overhead.Non-Zero Realm SupportShard and realm default values on Hiero have previously assumed 0 values, sometimes with hardcoded logic limiting our ability to test future multi value shard and realm network implementations. All APIs and services now accept arbitrary shard and realm IDs. Moving forward we can consistently test future network upgrades in a way that validates non zero realm and shard network configurations.Summary
Release 0.63 aligns ancient event handling with consensus time, adds actionable higher resolution SDK telemetry, and removes limitations to implementing non zero realm and shard value tests. This improves Hiero network operational robustness, and expands test configurations.Build 0.63.9
What's Changed
What's Changed
- fix(18458): Pces file writer rollback by @mxtartaglia-sl in #20019
- fix: Fix SteadyStateThrottlingTest by @tinker-michaelj in #20040
- chore: (0.63) move scripts from paa to hcn by @andrewb1269hg in #20042
Build 0.63.7
What's Changed
What's Changed
- ci: fix typo in secret by @andrewb1269hg in #19893
Build 0.63.6
What's Changed
What's Changed
- ci: remove windows-2019 runner option (#19491) by @tinker-michaelj in #19608
- fix: (0.63) Log active config after initializing props and permissions facilities by @tinker-michaelj in #19619
- chore: Remove
AtomicBatchfrom prod throttles (#19213) by @tinker-michaelj in #19555 - chore: (0.63) Reclaim ingest throttle capacity after other failures by @tinker-michaelj in #19502
- chore: Cherry pick changes that update publishing mech to use central publishing portal (#19567) by @rbarker-dev in #19869
- chore: (0.63) Assess fractional fees relative to non-exempt credits and debits by @tinker-michaelj in #19883
- chore: (0.63) Restore 0.62 token auto-renew period validations by @tinker-michaelj in #19882
- chore: (0.63) Adds
application-override.propertiesby @Neeharika-Sompalli in #19889
Build 0.63.0
What's Changed
What's Changed
Features
- remove shard/realm negative check in asTokenId (#19355)
- 8841: Need a way to change the number of object key buckets in MerkleDb (#18910)
- Support nonzero shard/realm in yahcli sys commands (#19297)
- remove genesis freeze time (#19298)
- Bump PBJ version and use Block Stream Publish Service (#19290)
- overwrite default config converters (#18617)
- Support nonzero shard/realm in fee and schedule commands (#19279)
- add throttle for ops duration (#19053)
- UnitTest of BirthRound Ancient Mode (#11560) (#19252)
- Support accepting/declining rewards in yahcli DAB transactions (#19255)
- Add ops duration (#18921)
- limit birth round when freezing (#19193)
- Enable Birth Rounds as Ancient Threshold (#19208)
- Implement nonzero shard/realm for yahcli DAB transactions (#19166)
- Migrate logging validation to
assertThatfor OtterTests (#19159) - 18458 Guarantee events are written on pces before handling that round (#18811)
- stop consensus on freeze (#18937)
- Yahcli nonzero shard/realm implementations for crypto transfers and sys file updates (#19063)
- Implement feature flag for gRPC web proxy endpoint (#19051)
- Implement staking activation with nonzero shard/realm (#19010)
- Implement fee changes for HIP-991 (#18991)
- add proper handling for unknown function calls in system contracts (#18733)
- Capture GRPC/SDK usage metrics (#18469)
- enable the jumbo transaction feature flag (#18969)
- enhance logging validation for otter tests (#18897)
- local deterministic generation (#18930)
- add debug logs on key places (#18890)
- Limit the callData field instead of ethereumData (#18647)
Bug Fixes
- Keep node weights in
HintsConstruction(#19344) - Improve error handling when setting auto renew period (#19303)
- 19319: Improve MerkleDb reconnect / compaction synchronization (#19321)
- 19301 Updated
StateIdentifierenum (#19302) - 19259 Fix race condition when setting freeze round value (#19299)
- Fix batch transaction fees (#19101)
- Correct HapiCryptoCreate staked account ID parsing (#19283)
- ConcurrentModificationException in InMemoryAppender (#19266)
- Fix the transactionFee in the record for ConsensusSubmitMessage with custom fees (#19201)
- Move jumbo transaction size check only at ingest (#19118)
- Remove default shard and realm constants (#19123)
- Only use inner results for
BATCH_INNERdispatches (#19157) - Use
CompositeFilterfor console logging (#19171) - 19162 Open clause for JMS runtime for junit-extensions (#19163)
- Decouple shard/realm from hapiTestMisc (#19083)
- Inner transaction node setting in test-clients (#19150)
- asTokenId can generate TokenId with negative shard and realm (#18997)
- Fix error in
TipsetEventCreatorTests(#19120) - Decouple hapiTestSmartContracts shard and realm (#19077)
- Update to respect 0.2.3-SNAPSHOT max CRS parties (#19106)
- 19054: Need a way to check if a MerkleDb compaction tasks are running (#19069)
- Change default
decline_rewardto true for nodes created during genesis (#19086) - NoArgsConstructor has duplicated get() method (#19089)
- Decouple hapiTestToken (#18985)
- Update Roster Schema isUpgrade check (#19006)
- add required module to Otter tests test fixtures module info (#19024)
- Flaky Jumbo transactions tests (#19015)
- Improve exception handling when payer account is not meeting the specifications (#18995)
- migrate judge hashes on birth rounds (#19000)
- Assign nGen for GUI generated events (#18986)
Performance Results

Release v0.62
Release Highlights
Release 0.62 delivers substantial improvements in Ethereum compatibility, continuing Hedera’s commitment to providing a seamless and cost-effective experience for developers and ecosystem participants building with Ethereum tools and infrastructure. In addition, this release updates the HIP-991 SubmitMessage fees and lays the groundwork for block streams. What’s new in Release 0.62?Jumbo Ethereum Transaction Support (HIP-1086)
Historically, the Hedera API (HAPI) transaction size has been limited to 6 KB. Many Ethereum smart contracts and certain Ethereum contract calls exceed this limit. To work around this, developers previously had to utilize Hedera’s file service to upload larger contracts or call data in multiple 6 KB chunks — a process that added complexity, cost, and latency. Release 0.62 eliminates this friction by supporting a significantly larger transaction size of almost 128 KB for smart contract transactions, thereby simplifying EVM developer workflows and improving performance. Key benefits:- Simplified development: Eliminates the need to write and maintain custom code to handle 6 KB chunking.
- Reduced cost and latency: Streamlines common operations such as ContractCreate, ContractCall, and
EthereumTransaction. - Improved cost efficiency for JSON-RPC relays: Lowers operational costs for relay providers.
- Enhanced Ethereum compatibility: Brings the experience of creating and calling smart contracts on Hedera closer to native Ethereum workflows.
Zero-Cost EthereumTransaction on Success (HIP-1084)
A frequently reported pain point from JSON-RPC relay operators has been the cost of submitting wrapper EthereumTransactions. While gas costs for contract execution are typically borne by the calling entity (EOA or contract), relay operators have been required to fund the HBAR-based transaction fee — resulting in reduced adoption and ecosystem participation. Release 0.62 addresses this by eliminating the cover charge for EthereumTransactions where the inner call completes and pays for the gas consumed.Key benefits:
- Simplified relay operation: Removes the need for relay operators or embedded relays in dApps to maintain funded HBAR accounts for successful calls.
- Enhanced Ethereum compatibility: Further enhances Hedera’s Ethereum compatibility by charging all costs in gas alone.
- Better ecosystem support: Encourages greater participation by third-party relay operators and dApp developers.
Other updates:
In addition to the aforementioned features that improve Ethereum compatibility, Release 0.62 introduces two other updates:- SubmitMessage API calls for an HCS topic with Custom Fees (HIP-991) have been updated to $0.05 for the Hedera network.
- Foundational improvements in block stream management and handling workflows that will enable future features in block streaming capabilities and performance in upcoming releases.
Summary:
Release 0.62 represents an important milestone toward making Hedera a highly competitive platform for Ethereum-compatible applications, completes the implementation of HIP-991, and sets up the foundation for streaming the network blocks and state information.Build 0.62.6
What's Changed
What's Changed
- chore: Add overrides for
nodes.nodeRewardsEnabled=falseby @Neeharika-Sompalli in #19422 - fix: (0.62) Reclaim ingest throttle capacity after failure by @tinker-michaelj in #19525
Build 0.62.5
What's Changed
What's Changed
- chore: Remove the migration code for setting
declineReward=truefor all nodes on upgrade (#19338)
Build 0.62.4
What's Changed
What's Changed
- chore: Remove the migration code for setting
declineReward=truefor all nodes on upgrade by @Neeharika-Sompalli in #19338
Build 0.62.3
What's Changed
What's Changed
- fix: Fix the transactionFee in the record for ConsensusSubmitMessage with custom fees by @Neeharika-Sompalli in #19198
- chore: Remove
AtomicBatchfrom prod throttles by @tinker-michaelj in #19216 - feat: Bump PBJ version and use Block Stream Publish Service by @derektriley in #19256
- chore: (0.62) Use app fee charging mechanisms for gas by @tinker-michaelj in #19254
Build 0.62.2
What's Changed
What's Changed
- fix: (cherry-pick) Change default
decline_rewardto true for nodes created during genesis by @Neeharika-Sompalli in #19087 - chore: Disable Batch Transactions by @Neeharika-Sompalli in #19115
- chore: Config changes for batch transactions by @Neeharika-Sompalli in #19130
- fix: (cherry-pick) Flaky Jumbo transactions tests by @derektriley in #19140
- chore: increase transactionMaxBytes by @lpetrovic05 in #19104
- fix: 19107 Corrected classId of
BenchmarkMerkleInternalto preventclassIdconflict. by @imalygin in #19108 - chore: Fix the ConsensusSubmitMessage fee scaling for topic with customFees by @Neeharika-Sompalli in #19144
Build 0.62.1
What's Changed
What's Changed
- feat: Limit the callData field instead of ethereumData (cherry-pick) by @vtronkov in #18968
- chore: (cherry-pick) Write marker files for sidecars (#18916) by @Neeharika-Sompalli in #18992
- feat: enable the jumbo transaction feature flag (cherry-pick) by @vtronkov in #19012
- fix: (cherry-pick) Update Roster Schema isUpgrade check (#19006) by @derektriley in #19057
- feat: Implement fee changes for HIP-991 (#18991) by @Neeharika-Sompalli in #19050
- feat: Cherry-pick: Implement feature flag for gRPC web proxy endpoint (#19051) by @mhess-swl in #19073
Build 0.62.0
What's Changed
What's Changed
- remove code deposit gas charge waiver (#18797)
- decouple backend throttle config from front end and add support for burst (#18743)
- Update consensus to use nGen for determining when to recalculate metadata (#18882)
- add cGen (#18867)
- HIP-1046 Extend node address book with gRPC web proxy endpoint (#18766)
- EventCreator uses nGen instead of generation (#18737)
- Otter test logging improvements (#18850)
- Add new v0.62 module and HederaEVM class (#18535)
- Modifications to
EventHeaderfor Block Stream (#18548) - Add otter test module (#18646)
- handle
ResendBlockblock node responses (#18747) - Handle
BlockAcknowledgementsreceived from Block Nodes (#18536) - 18593: Need a mechanism to repair key to path mapping from data files at startup (#18625)
- Jumbo bytes throttle (#18389)
- Use existing key to create an account (#18611)
- Remove use of generation from sync (#18590)
- move parent event descriptors (#18524)
- Long Term Schedule Transaction Support For DAB transactions (#18539)
- Implement Non-deterministic Generation (#18506)
- Stream to Block Node’s immediately without waiting
BlockProofs (#18450) - Enhance yahcli rekey with ECDSA support (#18515)
- Implement daily node rewards (#18441)
- add HAPI verb to override the hederaFunctionality (#18481)
- Increase the buffer size of ethereumCall gRPC endpoint (#18321)
- Add ingest workflow jumbo checks (#18312)
- try using non-zero realm/shard (#18092)
- 18903: Tighten HDHM repair checks (#18906)
- detach FCQueue copy when serializing (#18863)
- Fix failing test in crypto-base (#18888)
- fix copy paste error in TipsetEventCreatorTests (#18876)
- disable GasCalculationIntegrityTest test suite (#18868)
- 18844: HDHM repair mechanism should not be enabled for snapshots (#18859)
- 18856: ReconnectHashLeafFlusher uses a wrong config (#18857)
- NPE in HalfDiskHashMap (#18854)
- Remove unused injections and fix tests (#18651)
- Fix
transactionFeein batch transactions (#18835) - Correctly populate sysfiles with node info (#18834)
- Revalidate collector token association on transfer (#18674)
- Fix the NPE in DefaultIssDetector.handleCatastrophic (#18830)
- flaky
completedHollowAccountOperationsFuzzingtest (#18816) - Fix flakiness in HIP-1064 tests (#18822)
- 18813: VirtualMapLargeReconnectTest.multipleAbortedReconnectsCanSucceed is unstable (#18814)
- Use getIfUsable() in ApproveAllowanceValidator (#18580)
- add auto-renew check for negative values (#18765)
- 18795: HDHM repair mechanism can be improved to clean stale buckets (#18796)
- Only allow creation of accounts that match the configured shard/realm (#18806)
- Move sort before
filterLikelyDuplicates(#18802) - adding validation for deleted token on unpause (#18671)
- Update flow-pull-request-formatting.yaml (#18790)
- 18658: ReconnectNodeRemover.setPathInformation() may cause OOM (#18708)
- Remove mono logic returning the wrong response code (#18698)
- 1280 hip 1056 block item with failed contract create result contains a contract (#18728)
- Improved error handling for airdrops with multiple senders (#18604)
- Use getIfUsable() when validate custom fees (#18576)
- Fix TokenCreateTransaction TCK issues (#18577)
- Add guard around LATEST_XTS_PASS_TAG (#18687)
- Also archive config.txt as part of network archiving process (#18427)
- Add back sorting of sync events (#18657)
- memory leak in HalfDiskHashMap.endWriting() (#18659)
- Call
endRoundafter dispatch (#18620) - Only “go back” in cons time for post-restart system work (#18654)
- 18561 Threads outlive the SequentialTaskScheduler created during test (#18391)
- airdrop TCK issues fixes (#18582)
- 18571: Current path range should be respected when path to hash and path to KV indices are restored (#18592)
- contract get bytecode query to return the redirect code for hts token addresses (#18464) (#18563)
- Fix flaky PcesFile tests (#18474)
- Utilize more than one thread for SSL accept handling (#18557)
- Ensure
BlockStreamManager#endRound()is called after dispatching system txns (#18554) - 17180 EventCreator ignores HealthMonitor update when squelching enabled (#18387)
- Import sentinel key from hapi utils (#18512)
- compile fix (#18510)
- Should reject a FILE_UPDATE to 0.0.123 with an invalid throttle definition (#18417)
- 18410: Bucket integrity check in HDHM.ReadUpdateBucketTask can be improved (#18411)
- HIP-1028 cleanup and versioning for GetTokenKey (#18304)
- update reference to
unhexmethod (#18470)
Performance Results

Release v0.61
Release Highlights
This release focuses on enhancing network incentivization and improving overall system robustness and developer experience.Hiero Improvement Proposals (HIPs)
- Daily rewards for active nodes HIP-1064: Full implementation of a daily reward mechanism for active consensus nodes, including an option for node operators to decline these rewards. This enhances network health by incentivizing consistent node uptime and participation, while providing operators flexibility in managing their rewards and improving network decentralization. Please note this feature will be disabled until a July 1, 2025 launch date.
-
HIP-551 (Atomic Batch Transactions): HIP-551 This release includes the implementation of Atomic Batch Transactions; however, due to technical challenges identified in testing, this feature has been temporarily disabled.
As a result, users attempting to submit Atomic Batch Transactions will receive a status code of
BUSYfrom the network. We are actively working to resolve these issues and plan to enable this feature in a future update.
New Features
- Node Reward Opt-Out (HIP-1064): Node operators can now decline daily node rewards using a new decline_reward boolean flag in NodeCreateTransactionBody and NodeUpdateTransactionBody. This offers greater control and flexibility for node operators based on their specific requirements. The default value for this flag will be set to true to decline rewards by default.
-
Notable Bug Fixes
- #17478: Corrected Cancun SELFDESTRUCT Semantics: Fixed incorrect
SELFDESTRUCTbehavior per EIP-6780 post-Cancun, where a contract specifying itself as the beneficiary in a non-creation transaction erroneously triggered aSELF_DESTRUCT_TO_SELFerror. The fix ensures compliance with EIP-6780, allowing the operation to proceed without deleting the contract or transferring its balance, including native tokens. Additionally, refactored CustomSelfDestructOperation.execute to streamline validation checks before state changes. Impact: Enhances EVM compatibility and reliability on Hedera for contracts usingSELFDESTRUCT, ensuring correct execution under post-Cancun rules.
Build 0.61.10
What's Changed
What's Changed
- chore: (cherry-pick to tag 0.61.10) Disable the defaults for
contracts.evm.ethTransaction.zeroHapiFees.enabledandnodes.nodeRewardsEnabledby @Neeharika-Sompalli in #19521
Build 0.61.9
What's Changed
What's Changed
- chore: (cherry-pick to tag 0.61.9) Disable
nodes.nodeRewardsEnabledby @Neeharika-Sompalli in #19519
Build 0.61.8
What's Changed
What's Changed
- chore: (cherry-pick for 0.61.8) Reclaim throttle capacity after ingest failure by @Neeharika-Sompalli in #19526
Build 0.61.7
What's Changed
What's Changed
- fix: Fix the
transactionFeein the record forConsensusSubmitMessagewith custom fees by @Neeharika-Sompalli in #19195 - chore: Disable
AtomicBatchprod throttles by @tinker-michaelj in #19217
Build 0.61.6
What's Changed
What's Changed
- chore: Config changes for batch transactions by @Neeharika-Sompalli in #19127
Build 0.61.5
What's Changed
What's Changed
- chore: Disable Batch Transactions by @Neeharika-Sompalli in #19114
Build 0.61.4
What's Changed
What's Changed
- fix: 0.61 cherry-pick: Correctly populate sysfiles with node info by @mhess-swl in #18884
- fix: 18771: Backport fixes for 18593, 18795, 18844, and 18903 to release 0.61 by @artemananiev in #18799
- chore: (0.61) add fee refund mechanism, use for successful EthereumTransaction by @tinker-michaelj in #18913
Build 0.61.3
What's Changed
What's Changed
- chore: (cherry-pick) Update flow-pull-request-formatting.yaml by @derektriley in #18792
- chore: (cherry-pick) adjust path to protobufs in ‘Update Hedera Protobufs’ step by @derektriley in #18787
- chore: (cherry-pick) remove github-committers team from codeowners by @derektriley in #18808
- chore: (cherry-pick) Update CODEOWNERS for tools-and-libs rename by @derektriley in #18788
- chore: (cherry-pick) update codeowners with new team names by @derektriley in #18807
- fix: Cherry-pick
transactionFeefix for atomic batch transactions by @Neeharika-Sompalli in #18853
Build 0.61.2
What's Changed
What's Changed
- chore: (cherry-pick) Delay initializing snark keys (#18699) by @Neeharika-Sompalli in #18701
- fix: (cherry-pick) Utilize more than one thread for SSL accept handling (#18557) by @abies in #18586
- fix: 18720: Backport the fix for 18571 to release 0.61 by @artemananiev in #18736
- feat: (cherry-pick) try using non-zero realm/shard by @derektriley in #18732
Build 0.61.1
What's Changed
What's Changed
What’s Changed
- chore: Remove the entityCounts migration code in 0.61 (#18500) by @Neeharika-Sompalli in #18511
- refactor: cherry-pick “Use a list of signed bytes for transactions in AtomicBatchTransaction” by @ibankov in #18522
- fix: State changes out of order in HAPI Tests (Restart) by @derektriley in #18564
- fix: 18410: Bucket integrity check in HDHM.ReadUpdateBucketTask can be improved - rel/0.61 by @imalygin in #18505
- fix: Ensure
BlockStreamManager#endRound()is called after dispatching by @tinker-michaelj in #18562 - feat: Cherry-pick Daily Node Rewards by @Neeharika-Sompalli in #18570
- fix: Call
BlockRecordManager.endRoundafter system dispatch by @Neeharika-Sompalli in #18621 - fix: Only “go back” in cons time for post-restart system work by @tinker-michaelj in #18660
- chore: cherry-pick fix NPE when using records by @Neeharika-Sompalli in #18679
- chore: Cherry-pick Add metrics for active node percentage by @Neeharika-Sompalli in #18680
Build 0.61.0
What's Changed
What's Changed
- Dynamic peers for the sync network (#18051)
- Add JumboTransactionsConfig (#18277)
- implement exponential backoff for connections to Block Nodes (#18055)
- HIP-1028 Fungible and NFT Token Info versioning (#18013)
- add SCHEDULE_EXPIRY_NOT_CONFIGURABLE validation (#18239)
- Add messages for skip and resend block to block service (#18133)
- Create a HAPI test to validate birth round migration (#18005)
- Close blocks during fatal ISS (#17942)
- HIP-1028 apply versioning to Update Token and Update Token Keys System Contracts (#17994)
- Add feature flag for CRS (#18073)
- change version to 0.61 (#18088)
- Support non-zero realms for contracts service (#18010)
- HIP-551 atomic batch transactions (#17333)
- Detect ISSes when states are not produced for every round (#18399)
- remove @OrderedInIsolation from contract bdd tests (#18400)
- HIP-632 fix alias length check (#18385)
- Extended suite failure during insertRemoveAndModifyOneMillion (#18407)
- 18393 metrics not updated in PlatformWiring (#18394)
- Fix candidate roster adoption logic (v61) (#18372)
Performance Results

Release v0.60
Release Highlights
This release focuses on significant performance improvements, enhanced developer tooling, and improved error handling.Hiero Improvement Proposals (HIPs)
HIP-1021: Improve Assignment of Auto-Renew Account ID for Topics- Full implementation of improved auto-renew account ID assignment for topics, enabling setting
autoRenewAccountIdduring topic creation without an admin key. - Developers benefit from simplified topic management and reduced risk of unexpected expirations.
Build 0.60.1
What's Changed
What's Changed
- fix: Update MTT Version by @timo0 in #18423
- fix: 18424 Fixed initialization of MigrationTestingToolState by @imalygin in #18432
- fix: 18722: Backport the fix for 18571 to release 0.60 by @artemananiev in #18723
Build 0.60.0
What's Changed
What's Changed
- feat: add feature flag for disabling precompile contracts by @lukelee-sl in #17548
- fix: Fail cleanly on negative gas limit by @kimbor in #17486
- test: fix
MerkleRehashTests.failedRehash()unit test by @OlegMazurov in #17575 - feat: Use
decrementCounteronENTITY_COUNTSwhenremove()is called by @Neeharika-Sompalli in #17513 - feat: Implement ECDSA key support for yahcli accounts create by @mhess-swl in #17293
- feat: update
onSealConsensusRound()to return a boolean by @mhess-swl in #17529 - fix: Reference correct
mainobj in test by @mhess-swl in #17581 - ci: Fix Check Integration Job State step to detect properly by @rbarker-dev in #17583
- feat: add synthetic node creates to record stream at genesis by @MiroslavGatsanoga in #17461
- fix(17537): Fix Test Flake startAtFirstFileDiscontinuityInMiddleTest by @mxtartaglia-sl in #17580
Performance Results

Release v0.59
Release Highlights
HIPs:
HIP-991: Topic Fees
- Description: HIP-991 introduces an optional fee system for submitting messages to topics on the Hedera network, aiming to enhance economic scalability and simplify operations for topic operators.
- Benefits: Empowers topic operators with greater control over their topics, offering mechanisms to monetize and manage access. Key features include:
- Optional Submission Fees: Topic operators can set optional fees for message submissions, payable in HBAR or Hedera Token Service (HTS) fungible tokens.
- Fee Schedule Key: A new ‘Fee Schedule Key’ allows operators to manage and update fee structures. This key must be set during topic creation.
- Custom Fee Distribution: Collected fees can be distributed to multiple accounts, supporting both HBAR and HTS tokens.
- Fee Exemptions: Operators can specify a list of keys that are exempt from fees, allowing certain users to submit messages without incurring charges.
HIP-755: Schedule Service System Contract signSchedule(address, bytes)
- Description: This HIP introduces a Schedule Service System Contract to enhance the Hedera Smart Contract Service (HSCS) by enabling smart contracts to interact with scheduled transactions. This release includes signSchedule(address, bytes).
- Benefits: HIP-755 introduces a Schedule Service System Contract to enhance the Hedera Smart Contract Service by enabling smart contracts to interact with scheduled transactions. signSchedule(address, bytes) method, allows smart contracts to pass along the signature from an EOA needed for a scheduled transaction.
HIP-756: Scheduled Token Create/Update Transactions via Smart Contract
- Description: Enables scheduling token create and update operations through smart contracts, with implementation of the scheduleNative system contract function.
- Benefits: Expands smart contract functionality by allowing developers to schedule token operations directly from smart contracts, providing more flexibility in DApp development.
Build 0.59.5
What's Changed
What's Changed
Build 0.59.4
What's Changed
What's Changed
- fix: 18267: Backport the fix for 18235 to 0.59 by @artemananiev in #18303
- fix: 18268: Bucket integrity check in HDHM.ReadUpdateBucketTask can be improved by @artemananiev in #18272
Build 0.59.3
What's Changed
What's Changed
- chore: Prohibit all airdrop royalty fees by @tinker-michaelj in #18261
Build 0.59.2
What's Changed
What's Changed
- chore: (0.59) Cherry-pick misc fixes by @tinker-michaelj in #18128
Build 0.59.0
What's Changed
What's Changed
- refactor: 16436 Removed
MerkleRootinterface. by @imalygin in #17130 - fix: move and change value of Dockerfile environment variable by @matteriben in #16239
- build: Roll hiero gradle conventions to version 0.1.4 by @andrewb1269hg in #17149
- build(deps): bump actions/setup-java from 4.5.0 to 4.6.0 by @dependabot in #17113
- build(deps): bump gradle/actions from 4.2.1 to 4.2.2 by @dependabot in #17111
- chore: Update hedera-services to rename develop as main by @rbarker-dev in #17091
- chore: Update workrflow names to point to main instead of develop by @rbarker-dev in #17158
- ci: Update Check Integration/XTS Job State to include GH_TOKEN by @rbarker-dev in #17160
- ci: add id_token write permission to node-flow-deploy-release-artifact.yaml by @rbarker-dev in #17161
- feat: Support overwrites for interface bindings and endpoints by @timo0 in #17117
- chore: Refactor hapi tests to use
hapiTest(...)instead ofdefaultHapiSpec(...)(Part 3) by @mhess-swl in #16698 - feat: consolidate hbar transfer list when decoding cryptoTransfer function by @lukelee-sl in #17165

Release v0.58
Release Highlights
This release introduces several new features, improvements, and bug fixes, including:HIPs
- HIP-423 Long-Term Scheduled Transactions: Update to ScheduleSign throttles changed: The ScheduleSign transaction is now throttled like other transactions and can now be managed by the default throttling mechanism on the network. (#16958, #16959) This completes HIP-423.
- HIP-755 authorizeSchedule(address)
Adds functionality to the Hedera Schedule Service System contract so that a smart contract can sign a referenced scheduled transaction using its contract key, enabling automated execution of scheduled transactions directly from smart contracts. (#16983), the remaining outstanding features to complete HIP-755 will be provisioned in release .59.
Other Notable Changes
- Enabled mirror node to simulate contract calls: The standalone transaction executor now supports custom Operations. Developers can use this feature to create and execute custom operations that are not part of the standard Hedera API. (#17354)
- Enhancing Dynamic Address Book v2 NodeCreate and NodeDelete transaction signature requirements changed:
- The NodeCreate transaction now requires the admin key and one of the treasury account key, system admin key, or address book admin key to sign.
- Ensuring state changes are now in block streams: Refactored out-of-band state modifications: All out-of-band state modifications have been refactored to be done in Schemas. (#16843)
- Increased CryptoGetAccountBalance throttle: The throttle for the CryptoGetAccountBalance query has been increased to the number of network nodes times 1,000,000 plus a buffer. This change addresses an issue where the throttle was too low, leading to throttling errors. (#16850, #16857)
Build 0.58.13
What's Changed
What's Changed
- Fail NFT airdrops that would trigger royalty fee payments.
Build 0.58.11
What's Changed
What's Changed
- Add safety checks before Besu secp256k1 native library invocations (c.f. here.
- Ignore approval flag when de-duplicating account ids in a
TokenTransferList.
Build 0.58.10
What's Changed
What's Changed
Build 0.58.9
What's Changed
What's Changed
- chore: Use weights from reclamped stakes in current address book by @tinker-michaelj in #17777
Build 0.58.8
What's Changed
What's Changed
v0.58.7 to trigger workflow- chore: (0.58) Remove unwanted post-upgrade work by @tinker-michaelj in #17637
- chore: 0.58-specific state migrations by @tinker-michaelj in #17690
Build 0.58.7
What's Changed
What's Changed
- chore: (0.58) Remove unwanted post-upgrade work by @tinker-michaelj in #17637
- chore: 0.58-specific state migrations by @tinker-michaelj in #17690
Build 0.58.6
What's Changed
What's Changed
- chore: Reapply “FileService address book and node details” by @mhess-swl in #17543
Build 0.58.5
What's Changed
What's Changed
- fix: 17283: Backport the fix for #17218 to release 0.58 by @artemananiev in #17296
- chore: (0.58) Support custom
Operations in standalone executor by @tinker-michaelj in #17354 - fix: retain override values on
ConfigProviderImpl.update()(#17424) by @tinker-michaelj in #17430 - fix: cherry-pick: FileService address book and node details should be updated at genesis by @iwsimon in #17368
- fix: 17467: Back out changes for 15448 from release 0.58 by @artemananiev in #17473
- fix: Revert “cherry-pick: FileService address book and node details” by @mhess-swl in #17539
Build 0.58.3
What's Changed
What's Changed
Build 0.58.0
What's Changed
What's Changed
- chore: Modify and mount default block streams output directory by @mhess-swl in #16719
- fix: 16657: State validation fails for round 191161423 on LSE by @artemananiev in #16757
- feat: Add time-driven event processing for triggering scheduled transactions by @JivkoKelchev in #16017
- chore: Integrate latest cryptography library changes by @Neeharika-Sompalli in #16615
- fix: Add validation for grpc certificate hash by @Neeharika-Sompalli in #16776
- ci: Add workflow for manual XTS failed tests log collection by @mishomihov00 in #16662
- ci: Update slack reporting for XTS failure and CITR build promotion by @rbarkerSL in #16760
- ci: Change from setup-gradle action to ./gradlew command usage by @mishomihov00 in #16706
- build(deps): bump codecov/codecov-action from 5.0.2 to 5.0.7 by @dependabot in #16725
- fix: 16748 Fixed serialization for AddressBookTestingToolState by @imalygin in #16799
- build(deps): bump docker/setup-qemu-action from 3.0.0 to 3.2.0 by @dependabot in #16232
- @boooby19 made their first contribution in #16767
- @PavelSBorisov made their first contribution in #16701
- @timfn-hg made their first contribution in #16917

Release v0.57
Release Highlights
This release introduces several new features, improvements, and bug fixes, including:HIPs
- HIP-423: Long-Term Scheduled Transactions: This release completes the implementation of HIP-423, enabling schedules to execute transactions at a future date and time. This provides developers with a powerful tool for automating on-chain actions and building time-based applications. Benefits include:
- Automated Transactions: Schedule transactions to execute automatically at a specific time.
- Time-Based Applications: Build applications that rely on time-based events, such as recurring payments or token distributions.
- Enhanced Security: Schedule transactions can be signed by multiple parties, ensuring that they are executed only when all required approvals are obtained.
New Features
- Node Operator Queries: This release introduces a dedicated gRPC port for node operators to perform free queries. This enables node operators to monitor the network and their nodes more efficiently without incurring transaction fees.
- Proxy Redirect Contract for Schedule Entities: This release adds support for a proxy redirect contract for calls to schedule transactions. This allows EOAs to make function calls in schedule entity addresses, enabling more flexible and dynamic interactions with scheduled transactions.
- HSS System Contract: This release introduces the Hedera Schedule Service (HSS) system contract, providing a set of functions for managing scheduled transactions, including signing and authorizing schedules.
- Support for Extra Dispatch Authorizations: The
ScheduleSignHandlernow supports authorizingKey{contractID=0.0.X}andKey{delegatable_contract_id=0.0.X}keys in a schedule’s signatories list, enabling more granular control over schedule execution.
Build 0.57.5
What's Changed
What's Changed
- chore: Cherry pick fixes for update of default branch to main (#17200) by @rbarkerSL in #17235
Build 0.57.4
What's Changed
What's Changed
- chore: (0.57) Keep default schedule lifetime 30min no matter max lifetime by @tinker-michaelj in #17196
Build 0.57.3
What's Changed
What's Changed
Build 0.57.2
What's Changed
What's Changed
- fix: Revert HIP-796 Protobuf changes (cherry-pick 0.57) by @thomas-swirlds-labs in #17028
Build 0.57.1
What's Changed
What's Changed
- ci: Fix cron jobs to use github token for gh cli calls and specify java version by @rbarkerSL in #16175
- build(deps): bump actions/setup-java from 4.0.0 to 4.5.0 by @dependabot in #16168
- build(deps): bump actions/setup-python from 5.0.0 to 5.3.0 by @dependabot in #16169
- build(deps): bump actions/cache from 4.0.1 to 4.1.2 by @dependabot in #16101
- refactor: create event creator modules by @mustafauzunn in #16138
- refactor: gossip module names and extract FallenBehindManager to gossip module by @mustafauzunn in #16113
- ci: disable release 0.53 regression by @JeffreyDallas in #16188
- feat: HIP-904 Reject Tokens System Contract implementation by @stoyanov-st in #16118
- feat: HIP 904 SetUnlimitedAutoAssociations System Contract Implementation by @stoyanov-st in #16141
- fix: LegacyConfigPropertiesLoader should not suppress ParseException by @leninmehedy in #16133
Performance Results

Release v0.56
Release Highlights
HIPs
HIP-869 Dynamic Address Book—Stage 1: This release includes the implementation of HIP-869, enabling the Dynamic Address Book. Node operators can now update node details and address books via Hedera transactions. This streamlines network operations and enables node operators to manage their associated node entries directly in the Address Book. HIP-904 System Contract Functions: Implements the System Contract Functions section within HIP-904. Introduces Hedera Token Service (HTS) support for the airdrop-related capabilities. These functions are implemented as system contract functions, making it possible for smart contracts to issue Frictionless Airdrops, Token Reject, and AutomaticToken Association configurations for efficient management.HIP-632 - isAuthorized(): The isAuthorized() function introduced in HIP-632 extends the Hedera Account Service (HAS) System Contract, enabling smart contracts to authenticate signatures against Hedera accounts. This provides functionality akin to the validation step following Ethereum’s ECRECOVER, without recovering public keys. It supports ECDSA, ED25519, and complex keys such as threshold keys, though ECDSA is recommended for compatibility and interoperability with Ethereum. This builds on the previous functionality of isAuthorizedRaw() released in 0.52.
Other Notable Changes:
Block Streams - Dev Access Preview: Block Streams is a new output stream that will replace Hedera’s existing event and record streams into a single stream of verifiable data. This consolidated approach not only simplifies data consumption but also enhances Hedera’s capabilities by including state data.
Starting with version 0.56, consensus nodes will publish preview block stream files alongside the existing record stream, which remains the authoritative source of truth for Hedera. This preview allows the community to explore, test, and provide feedback on this new feature, paving the way for its future adoption.
Migration from .pfx to .pem Cryptography Files: The consensus node cryptography system was migrated from using .pfx files to more manageable .pem files.
Build 0.56.7
What's Changed
What's Changed
Build 0.56.6
What's Changed
What's Changed
- chore: Cherry Pick: Modify and mount default block streams output directory by @mhess-swl in #16753
Build 0.56.5
What's Changed
What's Changed
- fix: correct a missing conversion between AddressBook cert hash hex-string-as-bytes and actual SHA2-384 hash bytes for Node entries. by @jsync-swirlds in #16659
- chore: Do stricter validation of X.509 gossip cert in DAB transactions by @tinker-michaelj in #16666
Build 0.56.0
What's Changed
What's Changed
- test: Added a test to submit DAB transactions for JRS test by @Neeharika-Sompalli in #15549
- chore: cover HIP-869 test plan by @tinker-michaelj in #15568
- test: Use DAB upgrade test in CI runs by @Neeharika-Sompalli in #15618
- ci: continuous integration tests and release initial phase 1 changes by @rbarkerSL in #15363
- perf: increase Health Monitor invocation frequency by @OlegMazurov in #15627
- feat: created iterface for inline PCES writer by @timo0 in #15629
- feat: Add TSS related system transaction and state protobufs (Services) by @thomas-swirlds-labs in #15515
- feat: increase version to 0.56 by @povolev15 in #15765
- ci: Remove unnecessary check in node-flow-deploy-release-artifact by @rbarkerSL in #15768
- feat: Activate smart contract module 0.51 by @david-bakin-sl in #15772
- chore: Add missing config files to
previewnetconfig dir by @mhess-swl in #15778 - test: Extend HAPI tests for TokenAirdrop with custom fees - royalty fees by @Evdokia-Georgieva in #15518
- feat: Added states for TssService by @Neeharika-Sompalli in #15622
- chore: remove unnecessary checks for value xfer to system contracts by @lukelee-sl in #15774
- chore: Cleanup
Signatureby @timo0 in #15570 - chore: Add configuration properties for HIP-904 System Contracts by @stoyanov-st in #15800
- feat: Regenerate keys and update node names for tests by @anthony-swirldslabs in #15793
- feat: Replaced AddressBook based NetworkInfo implementations by @Neeharika-Sompalli in #15781
- chore: Address review comments by @Neeharika-Sompalli in #15826
- chore: add node details/address book export validation in
DabEnabledUpgradeTestby @tinker-michaelj in #15764 - fix: Handle non-existent token IDs in token fee schedule updates by @mhess-swl in #15831
- chore: Add Configuration support for GRPC messages by @thomas-swirlds-labs in #15472
- feat: use FileChannel for PCES by @lpetrovic05 in #15604
- feat: create inline pces wiring by @lpetrovic05 in #15785
- chore: remove nextNodeId from config.txt by @edward-swirldslabs in #15791
- chore: Make hedera-services also code owner of hedera-app by @netopyr in #15911
- fix(container): adds resiliency to the deterministic image entrypoint script by @nathanklick in #15914
- chore: Correct locations of various TSS protos by @mhess-swl in #15780
- chore: Add constructor for
BytesinHashto avoid copying by @timo0 in #15783 - fix: Add query handling metrics upload by @mhess-swl in #15900
- fix: Airdrop transfer list size validation by @JivkoKelchev in #15933
- ci: Move jenkins checks into its own workflow that executes when node-zxc-build-release artifact completes by @rbarkerSL in #15928
- ci: Fix invalid workflow introduced by 15928 by @rbarkerSL in #15948
- ci: Add skipped status as possible triggering conclusion by @rbarkerSL in #15956
- ci: ensure prepare xts branch launches when node deploy production build finishes by @rbarkerSL in #15957
- fix: 15959: Add more logging for 12311 by @artemananiev in #15960
- chore: remove unused wiring options by @lpetrovic05 in #15931
- build(deps): bump actions/upload-artifact from 4.3.1 to 4.4.3 by @dependabot in #15940
- build(deps): bump actions/checkout from 4.1.1 to 4.2.1 by @dependabot in #15902
- ci: Checkout the code with GH_ACCESS_TOKEN and persist the credentials by @rbarkerSL in #15965
- ci: Updated XTS job to check statuses and added gpg key to prepare XTS by @rbarkerSL in #15967
- ci: Update tag scheme in prepare XTS flow by @rbarkerSL in #15968
- ci: Add message parameter to forced tag step by @rbarkerSL in #15970
- fix: support restarting from
RECORDS->BOTHby @tinker-michaelj in #15904 - ci: Fix issue with zxf prepare extended test suite by @rbarkerSL in #15974
- fix: ensure configuration loading and name resolution is resilient by @nathanklick in #15943
- feat: wire skeleton
TssBaseServicehandlers to submission-enabledAppContextby @tinker-michaelj in #15975 - feat: permit unpaid queries when executed from localhost by @MiroslavGatsanoga in #15554
- feat: introduce NodeId.of(long) by @anthony-swirldslabs in #15952
- feat: 15154 Added
createSnapshotmethod to State API by @imalygin in #15543 - fix: 15994: Need more logging in AbstractHashListener by @artemananiev in #15995
- build(deps): bump org.gradlex:java-module-dependencies from 1.7 to 1.7.1 in /gradle/plugins by @dependabot in #15958
- fix: Ensure
getAccountInforeturns correct EVM address by @tinker-michaelj in #15969 - chore: Fix compiler warnings in token service by @derektriley in #15265
- test: add block contents validator by @MiroslavGatsanoga in #15522
- build: update Java Module patching by @jjohannes in #15578
- chore: add links to TSS issues by @tinker-michaelj in #15999
- build: generalize publishing setup by @jjohannes in #15471
- fix: detect post-upgrade txn in presence of pre-upgrade events by @tinker-michaelj in #15834
- fix: update the Schema class import statement by @albertopasqualetto in #15927
- fix: stabilize
keyRotationDoesNotChangeEvmAddress()by @tinker-michaelj in #16006 - feat: updateNode needs both admin key and council to sign. by @iwsimon in #15988
- chore: enable
BLOCKS-only stream mode by @tinker-michaelj in #15634 - test: create fake TSS library for testing by @MiroslavGatsanoga in #15908
- chore: Fix ownership of services protobufs by @netopyr in #16015
- feat: Remove default memo for lazy created accounts and auto created accounts by @netopyr in #15302
- chore: use
0sas@RepeatableHapiTestvalid start offset by @tinker-michaelj in #16028 - fix: DefaultKycStatusCall correct returned values from System Contract by @stoyanov-st in #15595
- chore: Remove hedera-base as code owner by @netopyr in #16043
- chore: use
fireAndForget()for freeze period background traffic by @tinker-michaelj in #16031 - chore: cherry-pick, Do not update file 102 during the first transaction after a freeze upgrade when DAB is disabled by @iwsimon in #16050
- chore: tolerate nextNodeId field in config.txt by @edward-swirldslabs in #16048
- feat: 14726: Proposal for consensus node architecture update by @rbair23 in #14772
- refactor: gossip modules creation by @mustafauzunn in #15837
- ci: Updating workflow permissions as per step-security recommendations. by @san-est in #16036
- chore: standardize and simplify
ScheduleServiceby @tinker-michaelj in #16053 - ci: Enable build promotion tagging and XTS completion by @rbarkerSL in #15971
- feat: Readable and Writable Roster state stores by @derektriley in #16120
- chore: eliminate duplicated signature verification logic by @tinker-michaelj in #16075
- test: add test to validate null admin key for contract can still xfer value by @lukelee-sl in #16063
- feat: Add logic for
TssMessageHandlerfor happy path by @Neeharika-Sompalli in #16062 - ci: Temporarily disable Trigger ZXF Deploy Integration. by @rbarkerSL in #16122
- feat: HIP-904 Token Airdrop System Contract by @stoyanov-st in #15912
- docs: Provide Design document for HIP-904 System Contracts flows by @stoyanov-st in #15435
- chore: migrate cryptography from .pfx to .pem files by @edward-swirldslabs in #16025
- ci: Add logic to only delete xts-candidate tag if it already exists by @rbarkerSL in #16140
- ci: Fix ZXCron Promote Build Candidate Checkout Tagged Code step by @rbarkerSL in #16154
- ci: Fix bug with deleting xts-candidate tag prior to creation or use by @rbarkerSL in #16159
- feat: HIP-904 Implement TokenClaimAirdrop System Contract by @stoyanov-st in #16054
- ci: Specify java major minor and patch versions by @mishomihov00 in #16176
- feat: counting get balance throttle by @netopyr in #16178
- feat: HIP-904 Implement Token Cancel Airdrop System Contract by @stoyanov-st in #15996
- feat: align state and records for self managed contract keys on create by @lukelee-sl in #16095
- feat: Update BlockStreamConfig StreamMode default to BOTH by @derektriley in #16167
- chore: replace usages of AddressBook with Roster in tipset by @anthony-swirldslabs in #16102
- chore: Address review comments on PR #420 in protobufs by @Neeharika-Sompalli in #16148
- feat: throttled tx metrics by @kimbor in #16130
- feat: Set TSS candidate roster logic by @mhess-swl in #16131
- chore: schedule 0.56 release branch creation by @kimbor in #16184
- feat: Initial TssVoteHandler by @derektriley in #16061
- @albertopasqualetto made their first contribution in #15927
- @san-est made their first contribution in #16036
- @mishomihov00 made their first contribution in #16176
Performance Results
