Summary
Reth v2.10.0 is a hardening release. It fixes an engine panic after a reorg below the persisted tip, bounds eth_callBundle work, and stops reth download from deleting files outside the datadir. It also brings several RPC correctness fixes and P2P interop fixes. db repair-trie now verifies storage in parallel, and --tracing-otlp can write spans straight to a local file.
SDK users: the commit-condition callback on BlockExecutor and BlockBuilder now also receives the transaction's state changes (see Breaking Changes).
Backwards Compatibility
Important
v2.10.0 can be downgraded to v2.9.0.
Update Priority
| User Class | Priority |
|---|---|
| Payload Builders | High |
| Non-Payload Builders | High |
Breaking Changes
SDK
- The commit-condition callback on
BlockExecutorandBlockBuildernow also receivesevm2::TxStateChanges, so payload builders can decide whether to keep a transaction based on its state changes as well as its result (#28207)
Features
Performance
db repair-trieverifies storage in parallel, with new--storage-workers(default: available CPUs) and--storage-lookahead(default: 1024) flags. A dry run now requires the node to be stopped (#28078)
CLI
--tracing-otlpacceptsfile:///absolute/pathand writes OTLP spans to a local file, with no collector needed (#28215)
Bug Fixes
Engine & Trie
- Fixed an engine-thread panic when building an invalid-block witness after a reorg below the persisted tip (#28249)
- Fixed the trie iterator's seek decision at cached branch boundaries (#28264)
- Payload tasks keep their parent tracing spans (#28221)
- Detached trie and overlay tasks keep their parent tracing spans (#28259)
RPC
eth_callBundlenow takes a blocking-IO permit, stops when the client disconnects, and shares one gas limit across the bundle (#28253)- Pending block builds stop when the request is cancelled (#28251)
- Empty reverts return
0xdata (#28243) mev_simBundlereports the refundable value before payouts (#28218)trace_replayBlockTransactionsreturns an error for an unknown block (#28160)
P2P
- Extra fields in the p2p
Hellomessage are ignored (#28180) - Extra fields in discv4
ENRResponseare ignored (#28232) - Trusted peer IDs are kept when their DNS lookup fails at startup (#28202)
- Known peers are promoted when they're trusted by hostname (#28199)
CLI
reth downloadrejects output paths that escape the datadir and skips cleanup through symlinked parent directories (#28247)- ERA index listing handles multibyte separators (#28222)
SDK
- The custom precompile example keeps its precompile after Prague (#28237)
Dependencies
- evm2
592bf18 - alloy-* 2.5.0
- alloy-primitives 1.6.1
Full changelog: v2.9.0...v2.10.0
Binaries
See pre-built binaries documentation.
The binaries are signed with the PGP key: 50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E
Reth
| System | Architecture | Binary | PGP Signature |
|---|---|---|---|
| x86_64 | reth-v2.10.0-x86_64-unknown-linux-gnu.tar.gz | PGP Signature | |
| aarch64 | reth-v2.10.0-aarch64-unknown-linux-gnu.tar.gz | PGP Signature | |
| aarch64 | reth-v2.10.0-aarch64-apple-darwin.tar.gz | PGP Signature | |
| Docker | paradigmxyz/reth | - |
