Reth v2.2.0

Release

Version
v2.2.0
Repository
paradigmxyz/reth

Release notes

This release lays the groundwork for Amsterdam (EIP-7928 Block Access Lists), introducing a BAL store abstraction, P2P wire support for fetching BALs alongside full blocks, payload-builder integration, and parallel/batched BAL execution paths. It also enables Discv5 by default, adds snap/2 wire helpers, and bounds the memory footprint of the P2P transaction manager and network channels. Numerous performance improvements land in the trie, database, and re-execution paths, alongside a broad set of correctness fixes in the engine, RPC, networking, and CLI layers.

Action Required: Discv5 is now enabled by default (#23686). If you previously relied on Discv4-only behaviour, review your CLI/config flags. BAL parallel execution and storage prefetch are gated behind CLI flags and are off by default (#23764, #23770).

Backwards Compatibility

Important

In case you need to downgrade after running 2.2.x, please downgrade to v2.1.0.

Update Priority

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

User Class

Priority

Payload Builders

Medium

Non-Payload Builders

Medium

See Update Priorities for more information about this table.

Features

Engine & Payload

• Suppress persistence during payload building to reduce contention (#23618)

• Enabled BAL building in the Ethereum payload builder (#23597)

• New CLI flag to disable BAL storage prefetch (#23770)

• Added DecodedBal to ExecutionEnv (#23675)

P2P / Networking

• Discv5 is now enabled by default (#23686)

• Support binding Discv5 and Discv4 to the same port (#23613)

• Customizable discovery defaults (#23843)

• Memory-bounded channel between network and transaction manager (#23802)

• Bound memory footprint of P2P messages (#23718)

• Avoid RLP-decoding NewBlock payloads to save CPU (#23712)

• Added snap/2 wire helpers and messages (#23611)

• Optionally fetch BAL with full blocks over P2P (#23629)

• Added BAL requirement to block access list requests (#23682)

• Enforce BAL response soft limit (#23725)

• Added basic in-memory BAL store (#23710)

• Added BAL request e2e coverage (#23727)

• Scaffolded BAL store abstraction (#23596)

Performance

• Skip DB seek on exact overlay hits (#23559)

• Pass ExecutedBlocks to OverlayBuilder to reduce reverts queried (#23657)

• Prebind cursor operation metrics for hot DB paths (#23654)

• Avoid reopening .csoff on every changeset lookup (#23687)

• Spawn BAL hashed state before storage prefetch (#23761)

• Enable p256-aws-lc-rs feature in revm for faster P-256 (#23721)

• Configurable RocksDB block cache size and re-use of MDBX provider in re-execute (#23701)

• Platform-specific RUSTFLAGS in Dockerfile (#23738)

• Added BAL parallelization and batch I/O flags (#23663)

Storage / Database

• Detect and warn about ZFS filesystems (#23685)

• Replaced deprecated MDBX_NOTLS with MDBX_NOSTICKYTHREADS (#23378)

SDK

• Encapsulate state fetching in DB provider (#23656)

• Use overlay builders in historical state paths (#23667)

• Removed TrieNodeProvider (#23658)

• Unified opaque consensus error helpers (#23669)

• Let consensus impls control which errors are transient (#23668)

• Expose executor transaction result type (#23759)

• Return gas output from block builder (#23744)

• Verify reverts against changesets in re-execute (#23717)

Bug Fixes

Engine

• Apply finalized state after syncing FCU head import (#23838)

• Configure invalid header cache hit eviction (#23670)

• Properly handle selfdestructed storage slots in re-execute (#23832)

• Disable read tx timeout in re-execute (#23680)

• Track Amsterdam block gas in payload builders (#23743)

RPC

• Narrow eth_getLogs retry range (#23818)

• Include block numbers in BlockRangeExceedsHead error (#23720)

• Clean up eth state cache reorg entries (#23683)

Networking

• Apply count cap to BlockAccessLists request handler (#23754)

• Respect peer requirements for fetch followups (#23706)

• Retain active session buffer capacity (#23702)

•…

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