Reth v2.4.0

Release

Version
v2.4.0
Repository
paradigmxyz/reth

Release notes

Performance

Reth v2.4.0 reduces mean newPayload latency by 6.2% compared with v2.3.0.

Experimental revmc JIT EVM support is added and can be activated with --jit.enabled flag.

Networking and transaction propagation get a large set of throughput-oriented improvements: faster pooled transaction recovery (#26304), cached full transaction propagation encoding (#26012), and multiple ECIES / P2PStream allocation reductions.

Features

We continue with Amsterdam and EIP-7928 Block Access List development.

reth p2p bootnode --v5 now co-locates discv4 and discv5 on a single UDP port (--addr), matching go-ethereum and reth's own networking stack, with IPv4/IPv6 support (#26089)

RPC compatibility was improved with eth_sendRawTransactionSync timeout support, geth-aligned raw transaction handling, empty-proof normalization for eth_getProof, and several eth_simulate, eth_estimateGas, fee-history, and txpool fixes.

ParallelStateRoot deprecation

SDK/library users that depend on trie internals should update usages of ParallelStateRoot, ParallelSparseTrie, and ParallelStateRootError that were removed in this version.

Deployments still passing --engine.legacy-state-root should remove it or use --engine.state-root-fallback if they intentionally need synchronous state-root computation.

Update Priority

This table provides priorities for which classes of users should update particular components.

User Class

Priority

Payload Builders

High

Non-Payload Builders

High

Breaking Changes

Runtime / Configuration

• Dropped the legacy parallel state-root runtime path; --engine.legacy-state-root is hidden and now only warns if passed, with the sparse trie task as the normal path and serial fallback retained (#26069).

SDK / State Root APIs

• Refactored state-root strategy APIs to support custom out-of-tree state-root implementations (#26085).

• Removed ParallelStateRoot; downstream users should migrate to the sparse trie task or the serial fallback path (#26121).

• Renamed ParallelStateRootError to StateRootTaskError (#26132).

• Removed ParallelSparseTrie; ArenaParallelSparseTrie is now the default sparse trie implementation used by engine sparse-trie paths (#25453).

• Changed PayloadValidator::validate_block_post_execution_with_hashed_state to receive a lazy overlay-aware parent-state provider and return PostExecutionValidationError; custom implementations overriding this method must update their signatures (#26330).

Features

Performance

• Added experimental revmc JIT support for Ethereum EVM execution, including --jit node flags and reth_jit debug controls (#23230).

• Made JIT opt-in for library crates and fixed JIT CLI/helper handling (#25178, #25183, #25413).

• Reduced transaction conversion latency by emitting recovered transactions in ordered windows instead of waiting on a large Rayon ordered iterator (#25783).

• Avoided full block clones in FCU, RPC cache, and ExEx paths by storing and exposing Arc<RecoveredBlock> handles in Chain (#25645, #25647).

• Optimized state-root and storage-history work with better update_leaves parallelism, parallel write_storage_history, and more aggressive sparse trie caching. (#24774, #25282, #25428).

• Reduced BAL execution overhead by using unordered transaction iteration for BALs, buffering BAL execution cache metrics, and avoiding unnecessary hashed-account reads (#25411, #25366, #25369).

• Offloaded metric rendering and added worker queue / provider metric improvements (#26180, #25649, #25481).

• Routed raw transaction submission through PoolTransaction::recover_raw_transaction, allowing custom pool transaction types to recover directly from encoded bytes (#25238).

Networking & P2P

• Added snap/2 support across negotiation, dedicated eth + snap/2 streams, SnapClient BAL APIs, snap message helpers, the snap client, and inbound snap/2 request routing (#25774, #25752, #25607, #25608, #26049, #26324).

• Improved bootnode reachability by supporting NAT advertisement and dual-stack discv5…

Full release on GitHub ↗

Release Polkadot SDK

Polkadot stable2606-3

This release contains the changes from polkadot-stable2606-2 to polkadot-stable2606-3. ℹ️ Please note: this is a patch release for the latest stable version stable2606. If your nodes...

Release Agave (Solana validator)

Agave (Solana validator) Release v4.5.0-alpha.2

This is a pre-release for testing only. Do not deploy to mainnet, testnet, or any production host. https://github.com/anza-xyz/agave/blob/master/CHANGELOG.md#edge-channel What's...

Release Hardhat

Hardhat v3.19.0

This release expands our support for the upcoming Amsterdam hardfork, including: EIP-7976, EIP-7981, EIP-7997, EIP-8024 and EIP-8037. In particular, EIP-8037's separation of execution...

Release Geth

Geth Protein Sludge Pack (v1.17.8)

This is a security-focused release, fixing several DoS risk issues ❤️‍🩹 . Note most of the the fixes related to bugs which only become possible after the activation of the Amsterdam...