Skip to content

Releases: harmony-one/harmony

Mainnet Release 2026.1.3

Choose a tag to compare

@github-actions github-actions released this 19 Aug 18:02
a41e194

Release v2026.1.3

  • Mainnet patch: cross-shard, staking, rewards, consensus and VM correctness and hardening by @GheisMohammadi in #5122

Full Changelog: v2026.1.2...v2026.1.3

The released version: v2026.1.3-a41e194761c8

Docker image

docker pull harmonyone/harmony:v2026.1.3

Docker Hub:
https://hub.docker.com/r/harmonyone/harmony/tags?name=v2026.1.3

Verify release binaries

GPG signing key fingerprint:

539910B02B5BAC637F6615C9799ACE3A9B83DF60
gpg --import RELEASE_SIGNING_KEY.asc

gpg --verify harmony-amd64.sig harmony-amd64
gpg --verify harmony-arm64.sig harmony-arm64

sha256sum -c harmony-amd64.sha256
sha256sum -c harmony-arm64.sha256

Mainnet Release 2026.1.2

Choose a tag to compare

@github-actions github-actions released this 15 Aug 20:01
26d1b77

Release v2026.1.2

The released version: v2026.1.2-26d1b7765cc0

Docker image

docker pull harmonyone/harmony:v2026.1.2

Docker Hub:
https://hub.docker.com/r/harmonyone/harmony/tags?name=v2026.1.2

Verify release binaries

GPG signing key fingerprint:

539910B02B5BAC637F6615C9799ACE3A9B83DF60
gpg --import RELEASE_SIGNING_KEY.asc

gpg --verify harmony-amd64.sig harmony-amd64
gpg --verify harmony-arm64.sig harmony-arm64

sha256sum -c harmony-amd64.sha256
sha256sum -c harmony-arm64.sha256

What's Changed

Full Changelog: v2026.1.1...v2026.1.2

Mainnet Release 2026.1.1

Choose a tag to compare

@github-actions github-actions released this 12 Aug 06:30
v2026.1.1
e9a05f6

Release v2026.1.1

The released version: v2026.1.1-e9a05f6b68f0

Docker image

docker pull harmonyone/harmony:v2026.1.1

Docker Hub:
https://hub.docker.com/r/harmonyone/harmony/tags?name=v2026.1.1

Verify release binaries

GPG signing key fingerprint:

539910B02B5BAC637F6615C9799ACE3A9B83DF60
gpg --import RELEASE_SIGNING_KEY.asc

gpg --verify harmony-amd64.sig harmony-amd64
gpg --verify harmony-arm64.sig harmony-arm64

sha256sum -c harmony-amd64.sha256
sha256sum -c harmony-arm64.sha256

What's Changed

Full Changelog: v2026.1.0...v2026.1.1

Mainnet Release v2026.1.0 - Bloom 🌸️

Choose a tag to compare

@github-actions github-actions released this 08 Jul 12:26
v2026.1.0
db22d51

Mainnet activation epoch for the Bloom hardfork 🌸️ and its bundled features to epoch 2964 shard 0 block 91488255 (July 13 2026, 05:58:57 UTC).

Validator and Explorer/RPC nodes are strongly encouraged to upgrade, because this release contains a significant amount of code changes across p2p startup, stream sync, consensus timestamp handling, RPC/tracing, EVM compatibility, node configuration.

Caution

Validator operators must update hmy cli with this release to the latest v1-v2026.1.0-0-g6d31426 version, follow the official validator hmy cli guide: https://docs.harmony.one/home/network/validators/node-setup/hmy-cli-download

Caution

Validator operators must configure Chrony before running this release, follow the official validator Chrony setup guide: https://docs.harmony.one/home/network/validators/node-setup/0.-recommended-chrony-setup-for-validator-nodes.

The released version: v2026.1.0-db22d511d4fb

Set of changes for the hardfork:

High level features overview

Feature Description
Bloom hardfork Umbrella activation for the bundled feature set below.
Leader Rotation V2 Updated leader rotation behavior for block proposal.
Timestamp Validation Incremental block timestamp.
Duplicate Cross-Link Handling Rejects duplicate (shardID, blockNum) cross-link entries in beacon block headers.
Shard State Validation Additional shard state validation during header verification.
Reject Shard-0 Cross-Link Rejects shard-0 cross-links in beacon header cross-link lists.
Cross-Shard Merkle Proof Binding Binds cross-shard receipt merkle proofs to authenticated source headers.
Cross-Shard Receipt Rollback Rolls back cross-shard receipts when the creating EVM frame reverts.
EIP-2537 Precompiles BLS12-381 curve operation precompiles.
EIP-1153 Transient Storage TLOAD / TSTORE transient storage opcodes.
EIP-7939 CLZ CLZ (count leading zeros) opcode.
EIP-5656 MCOPY MCOPY memory-copy opcode.
EIP-3855 PUSH0 PUSH0 opcode.
EIP-3860 Initcode Metering Limits and meters contract initcode size/cost.
EIP-6780 SELFDESTRUCT Restricts SELFDESTRUCT semantics to same-transaction creation.
EIP-8024 Stack Opcodes DUPN, SWAPN, and EXCHANGE opcodes.
Validator Wrapper Address Bind Requires validator wrapper RLP address fields to match the storing account.
External Stake Slash Denominator Uses snapshot self-stake in the external-delegator slash denominator.
Slash Evidence Uniqueness Applies stricter canonical uniqueness rules to beacon header slash payloads.
Slash Group Ordering Applies slash groups in canonical lexicographic order during finalization.
BLS Proof Binding Binds BLS proof-of-possession signatures to the validator address and rejects duplicate BLS keys created earlier in the same block.
Slash Ballot Signer Verification Requires ballot signer keys to match the double-sign intersection during verification.
Beacon Header Slash Verification Validates beacon header slash records before block finalization.

Features overview in details

Harmony CI & Release Modernization
  • Migrates CI/release flow from legacy Travis-style behavior to hardened GitHub Actions.
  • Pins GitHub Actions by full SHA and limits workflow permissions.
  • Removes broken/deprecated release and notification actions.
  • Adds full amd64 and arm64 build, test, and release coverage with GitHub-hosted runners.
  • Runs build, unit, RPC, and pyhmy test flows on ARM64 as well, giving users confidence that ARM64 binaries and Docker images are actually tested.
  • Builds harmony and bootnode once, then reuses them in RPC and pyhmy tests via artifacts.
  • Updates release flow to build binaries, publish Docker images, sign artifacts, generate checksums, and create draft releases.
  • Adds zizmor-based GitHub Actions security analysis.
  • Reduces duplicated builds, CI noise, and release risk.
Consensus Timestamp Safety
  • Adds stricter block timestamp validation rules behind chain configuration.
  • Ensures new block timestamps are strictly greater than the parent block timestamp.
  • Adds future-time bounds to reduce acceptance of blocks with excessive local-clock skew.
  • Updates proposal flow to pass the current local time explicitly into block creation.
  • Fixes cascading block-time skew by capping proposer waiting behavior when local time is behind the parent block timestamp.
  • Prevents validators from hanging indefinitely while waiting for local wall-clock time to catch up.
  • Improves view-change behavior when timestamp skew would otherwise stall proposal flow.
  • Adds tests covering strict parent timestamp checks, future timestamp bounds, catch-up behavior, and view-change safety.

Important

This is a consensus-safety and liveness improvement. Validators should upgrade because this release improves timestamp validation and prevents proposer stalls caused by block-time skew.


Time Synchronization / Mandatory Chrony Setup

Important

Chrony setup is mandatory for validator nodes. Incorrect local time may cause block proposal delays, future-block validation failures, or view-change instability.


Stream Sync & P2P Startup Reliability
  • Adds SetEnoughStreamsCallback support to StreamManager, allowing the sync pipeline to leave startup mode as soon as enough valid streams are available.
  • Improves startup-mode behavior by reducing unnecessary waiting during peer discovery.
  • Optimizes peer discovery timing, DHT request limits, and target valid peer thresholds.
  • Adds deterministic and race-safe startup-mode state handling.
  • Adds a stream discovery watchdog to prevent nodes from waiting indefinitely when not enough streams are discovered.
  • Adds recovery logic to reset stream-manager runtime state without resetting staged sync progress.
  • Improves stream lifecycle cleanup and reduces aggressive stream removal in recoverable cases.
  • Adds and updates test coverage for startup mode, advertise behavior, stream discovery, DHT request limits, and watchdog recovery.

Important

This improves node startup and sync recovery behavior. It does not require a hardfork activation by itself.


RPC, Tracer & Explorer Compatibility
  • Reorganizes block tracer code for readability and maintainability.
  • Moves Parity block tracer implementation into the native tracer package.
  • Removes deprecated block_tracer.go and block_tracer_storage.go files.
  • Renames tracer tests for package consistency.
  • Adds JavaScript callTracer implementation with asset loading.
  • Updates tracer gas context handling to use the dynamic gas value instead of the original gas limit.
  • Removes debug output from tracer execution paths.
  • Improves legacy structLog JSON encoding compatibility.
  • Improves trace-result encoding compatibility for older clients and explorer tooling.
  • Adds sentinel error handling for ABI event signature mismatches.
  • Verifies event signature topics before unpacking ABI logs.
  • Adds rate limiting support for auth trace APIs.
  • Adds rate-limiter guard logic so invalid non-positive limits do not break RPC startup.
  • Separates auth HTTP and WebSocket server tracking.
  • Caches method-filter regex compilation for auth RPC filtering.

Important

Explorer/RPC operators should upgrade because this release includes trace API compatibility fixes and rate-limiting safeguards for expensive RPC paths.


EVM / Ethereum Compatibility Groundwork
  • Adds EIP-7939 CLZ opcode support and chain-rule plumbing.
  • Adds EIP-5656 MCOPY opcode support and rule checks.
  • Adds EIP-6780 SELFDESTRUCT behavior rule plumbing.
  • Adds EIP-3860 initcode size limit and initcode gas-metering support.
  • Adds EIP-3855 PUSH0 opcode support.
  • Adds Prague fork configuration and rule plumbing.
  • Adds EIP-2935 block hash history support under Prague-related rules.
  • Adds EIP-8024 support, including new stack-manipulation opcode plumbing.
  • Adds automatic epoch-based EIP activation checks where applicable.
  • Adds tests for EIP activation boundaries, disabled-rule behavior, gas accounting, opcode availability, and fork-rule configuration.

Important

This section documents code support and EVM compatibility groundwork.
Mainnet hardfork activation details are intentionally not included here and should be added by the dedicated hardfork PR.


Node Configuration, BLS Keys & Runtime Safety
  • Updates default BLSKeys.MaxKeys from 10 to 11.
  • Bumps config handling for the new BLS key limit.
  • Uses read locks for decider read paths to reduce unnecessary lock contention.
  • Improves method-filter handling for authenticated RPC servers.
  • Improves startup and shutdown behavior in stream and RPC-related services.
  • Adds tests for config migration, decider access, RPC auth server behavior, and rate-limiter edge cases.

---...

Read more

Mainnet Release 2026.0.0

Choose a tag to compare

@github-actions github-actions released this 04 Mar 12:12
v2026.0.0
638a6e7

This is a mandatory node upgrade, however, there is no specific deadline since there is no hardfork.
Still Validator and Explorer/RPC nodes are strongly encouraged to upgrade, because there were a lot of code changes on the p2p, consensus, evm and sync changes.

The released version: v2026.0.0-0-g638a6e7f6

Set of changes:

Open Beta: Stream Sync (P2P-Based Synchronization)
  • Introduces Stream Sync as a fully P2P-based synchronization mechanism, removing reliance on DNS-based syncing.
  • Implements staged full synchronization with smart stream selection and failure-based prioritization.
  • Adds progress-based timeouts, configurable chunk sizes, improved stream health monitoring, and structured stream error classification.
  • Integrates BlockNumberCache to reduce redundant block number requests and improve sync efficiency.
  • Enhances crosslink validation, epoch filtering, and sync lifecycle handling to prevent nodes from getting stuck.
  • Includes comprehensive memory leak prevention and cleanup logic across stream and download managers.
  • If you want to go deeper, please read specification

Important

Please note: Stream Sync remains optional; legacy synchronization remains the default for operators.


P2P Transport & Muxer Updates
  • Replaces deprecated mplex with updated muxer configuration.
  • Introduces mplexC6 and prioritizes yamux during connection negotiation.
  • Improves muxer negotiation logic with case-insensitive handling.
  • Adds logging to indicate negotiated muxer per connection.
  • Limits P2P stream goroutines to prevent resource exhaustion.
  • Reduces log noise from benign stream removal events.

Important

During the transition from legacy mplex to mplexC6, yamux acts as a compatibility bridge to ensure seamless connectivity between upgraded and non-upgraded nodes.
Operators are safe to upgrade — connection interoperability is preserved during the transition period.


BlockNumberCache: Performance and Stability Improvements
  • Adds BlockNumberCache to optimize block height queries across peers.
  • Tracks cache hit/miss statistics and invalidates entries on stream failures.
  • Fixes eviction edge cases, race conditions, and double-stop panics.
  • Ensures safe shutdown by stopping background cleanup goroutines.
  • Includes benchmarks and extended test coverage.
BLS12-381 / EIP-2537 Precompile Support
  • Implements full BLS12-381 elliptic curve precompiles including G1, G2, pairing, SWU, and isogeny operations.
  • Adds field arithmetic support (fp, fp2, fp6, fp12) and optimized multiplication backends.
  • Updates gas cost calculations and activation configuration under EIP-2537.
  • Aligns precompile initialization and address assignments with protocol specifications.
  • Adds comprehensive success and failure test coverage.

Important

Please note: this change will require a future hard fork. The activation date will be announced separately.


go-ethereum Upgrade & EVM Alignment
  • Upgrades embedded go-ethereum components to align with upstream behavior.
  • Aligns SSTORE gas calculation and jump table initialization with latest go-ethereum rules.
  • Fixes tracer-related fork risks during block processing.
  • Resolves nil trie panics and edge cases leading to potential data inconsistencies.
  • Updates chain ID handling and built-in EVM logic to match upstream implementation.
  • Improves RLP decoding fallback handling for better compatibility and stability.
Shard Configuration Update (4 → 2)
  • Updates shard count from 4 to 2 across configuration files.
  • Adjusts wallet, Rosetta, VM tests, and consensus constants accordingly.
  • Removes obsolete shard configuration sections.
Trusted Peers & Networking Enhancements
  • Improves trusted peer handling with DNS auto-population.
  • Prevents self-dial errors and fixes bootnode nil host panics.
  • Enhances stream removal logic and error handling stability.
  • Expands networking-related metrics for better observability.
Monitoring & Stability Improvements
  • Expands metrics for stream management and recoverable errors.
  • Prevents goroutine leaks and improves cleanup logic.
  • Reduces log noise while improving contextual logging.
  • Increases test coverage for race conditions and edge cases.

PR list:

Read more

Mainnet Release 2025.1.0 and 2025.1.1

Choose a tag to compare

@github-actions github-actions released this 29 May 14:39
v2025.1.1

Mainnet Release v2025.1.1

This is a mandatory validator upgrade, however, there is no specific deadline since there is no hardfork. The release improves consensus and network stability.

Validator and Explorer/RPC nodes are strongly encouraged to upgrade, because there were several fixes:

  • effectiveGas field in the old getTransactionReceipt operation
  • fix for the ShardIDFromKey
  • upgrade to the go 1.24
  • implementation of EIP-1153
  • consensus logic minor improvements
  • bootnode's stability improvements
  • ongoing stream sync development

The released version: v2025.1.1-0-gca41a9970

What's Changed

  • feat(hmy_tests) - enable new test job for each PR and new commits to main and dev by @mur-me in #4899
  • Fully Disable Libp2p Resource Manager by Setting ResourceManager to nil by @GheisMohammadi in #4901
  • Improve Stream Handling, Avoid Stream Reset on Recoverable Failures by @GheisMohammadi in #4900
  • Fix P2P Host Gater Initialization, Add new Blocking Gater to P2P Host by @GheisMohammadi in #4904

Full Changelog: v2025.1.0...v2025.1.1

The released version: v2025.1.0-0-ge10d464a9

What's Changed

New Contributors

Full Changelog: v2025.0.0...v2025.1.0

Mainnet Release 2025.0.0

Choose a tag to compare

@github-actions github-actions released this 27 Jan 08:13
a63980b

Mainnet Release v2025.0.0

This is a mandatory validator upgrade, however, there is no specific deadline since there is no hardfork. The release improves consensus and network stability.

Explorer/RPC nodes are strongly encouraged to upgrade if they require support for the effectiveGasPrice field in transaction receipts.

The released version: v2025.0.0-0-ga63980b9

What's Changed

New Contributors

Full Changelog: v2024.3.1...v2025.0.0

Mainnet Release 2024.3.0 and 2024.3.1

Choose a tag to compare

@github-actions github-actions released this 17 Oct 04:08
8ba758a

Mainnet Release v2024.3.0 and v2024.3.1

Attention mainnet node operators: A mandatory upgrade is required as a hardfork will occur at epoch 2152 (block 64,847,872), approximately on October 31, 2024, at 13:02 UTC.

This upgrade will activate the first phase of HIP32, marking a significant step toward full decentralization. Leader rotation will be enabled, and Harmony’s internal nodes will be reduced to 2 slots per shard with 1% vote power.

Additionally, this upgrade will enhance epoch transitions on Shard 1, which is expected to significantly reduce signature losses.

Please ensure your node is updated before the hardfork to maintain network compatibility and stability.

The released version: v2024.3.1-0-g8ba758a4

What's Changed in v2024.3.1-0

#4774 - [ci] upgrade github actions and merge artifacts

Full Changelog: v2024.3.0...v2024.3.1

What's Changed in v2024.3.0-0

#4747 - add connection manager high water mark flag to boot node
#4739 - Lock free consensus methods
#4745 - [CI] - point to master, cover fork repos in ci, silence docker output
#4752 - stable localnet with external
#4735 - Add RPC for Boot Nodes
#4755 - feat(Makefile) - cover verbose mode for the local debug
#4754 - Improve Crosslinks Retrieving and Processing
#4753 - Fix for localnet syncing ports.
#4758 - feat(localnet) - add localnet log aggregation tool
#4761 - feat(Makefile) - add switch for the legacy sync, make stream sync default option
#4748 - Broadcast vote power
#4756 - Broadcast epoch block
#4763 - [localnet] fix external config
#4764 - Switch Localnet Muxer to Yamux
#4766 - feat(RPC) - GetLastSigningPower on public harmony API
#4765 - Improve Crosslink Retrieve from RawDB
#4757 - Not Checking Pending Crosslinks for First ten Epoch
#4663 - Empty signing power workaround
#4769 / #4770 - Set HIP32 epoch activation to 2152 and set new sharding config

Full Changelog: v2024.3.0...v2024.3.1

Mainnet Release 2024.2.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 05:09
c44c2ea

Mainnet Release v2024.2.0

This is a non-mandatory upgrade for validator and explorer nodes. We are now using Go 1.22.5 and this release includes several bug fixes, performance enhancements, and protocol improvements for both Harmony nodes and boot nodes.

The released version: v2024.2.0-0-gc44c2ea8

What's Changed

New Contributors

Full Changelog: v2024.0.0...v2024.2.0

Mainnet Release 2024.1.0

Choose a tag to compare

@github-actions github-actions released this 16 Jun 06:41
b02ea4c

Mainnet Release v2024.1.0

Mandatory upgrade for all mainnet node operator. This upgrade contains a hardfork happening at epoch 1976 (block 59080704) approximatively on June 20, 2024 at 00:06:49 UTC.

This update will address the validator max rate issue and enforce a uniform validator rate check.

Released version: v2024.1.0-0-gb02ea4c8

What's Changed

Full Changelog: v2024.0.0...v2024.1.0