Reth v2.5.0

Release

Version
v2.5.0
Repository
paradigmxyz/reth

Release notes

Reth v2.5.0 improves execution performance across the board. Release regression testing against v2.4.1 measured 5-10% lower mean block-processing latency, especially in long-tail workloads.

Performance

• Added an opt-in sender recovery cache shared across transaction paths, reducing mean mainnet block-processing latency by 3%. Enable it with --engine.sender-recovery-cache (#26494).

• Added an opt-in transaction-pool prewarming to pipeline transaction ingestion with block execution, reducing mean mainnet block-processing latency by 7%. Enable it with --engine.txpool-prewarming; it is enabled by default only in nightly Docker builds (#26378, #26493).

• Avoided proof-worker cursor overlays when the sparse trie already covers the required persisted state (#25952).

• Parallelized sparse-trie pruning retention-set construction and removed unnecessary LFU retention bookkeeping (#26439).

• Removed sparse-trie memory accounting from hot paths where repeated size estimation added unnecessary work (#26458).

• Kept five recent blocks in memory by default to reduce repeated state reconstruction (#26462).

• Centralized overlay anchoring to reduce duplicate Engine and persistence work (#26580).

Update Priority

User Class

Priority

Payload Builders

Medium

Non-Payload Builders

Medium

Breaking Changes

SDK and Storage APIs

• Reorganized storage-overlay APIs: renamed StateTrieOverlayManager to OverlayManager and moved it, OverlayBuilder, OverlayStateProvider, and OverlayStateProviderFactory to the new reth-storage-overlay crate. ChangesetCache is now internal rather than a public import (#26506, #26522, #26611).

• Changed PayloadValidator::validate_block_post_execution_with_hashed_state to take state updates by value and receive the resolved parent header. Custom validators overriding this method must update their signatures (#26398, #26420).

• Removed public changed-path tracking fields and methods from payload and sparse-trie APIs (#26403).

• Removed ConsistentDbView from reth-provider (#26581).

• Removed the reth-rpc-api-testing-util crate (#26393).

Features

Networking and P2P

• Added real snap/2 account-range, storage-range, and bytecode serving, including boundary proofs (#26339).

• Added support for discv5 ENR records in --bootnodes, --trusted-peers, and peers.trusted_nodes (#26448).

• Added bootnode configuration to reth.toml, with CLI configuration taking precedence (#26551).

• Added configurable no-op client-version handling for network connections (#26652).

• Added blob-cell availability tracking to the transaction pool (#25463).

RPC

• Added eth_getMultiProof to retrieve consolidated EIP-1186 proofs for multiple account and storage targets (#26555).

• Added debug_getRawBlockAccessList for retrieving the RLP-encoded EIP-7928 block access list (#26438).

• Reused a single EVM during block replay tracing, fixing downstream chains with block-scoped EVM state and avoiding redundant EVM construction (#26614).

• Added network-specific log response conversion for downstream chain implementations (#26491).

• Allowed execution-witness requests to use any BlockId (#26572).

• Made the testing RPC handler generic over node-specific types (#26547).

• Made IPC message decoding linear-time for large Engine API payloads instead of repeatedly scanning the entire buffered message (#26540).

Engine, Payload Building and Amsterdam

• Allowed payload construction on canonical ancestors at or above finality, while rejecting reorgs below the finalized block with -38006 (#26567).

• Added REST-SSZ blob-body witness containers and SSZ proxy support (#26328, #26335).

• Added configurable development finality depth (#26451).

• Exposed Engine thread resource-usage metrics (#26459).

CLI, ERA and Snapshots

• Added import-era --with-receipts to restore missing receipt static files from .era1 or .ere archives (#26436).

• Added reth download --print-plan-json for inspecting modular snapshot download plans without modifying the data…

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...