Commit 09ac487
deps: update reth from main (2026-07-21) (tempoxyz#6746)
Automated nightly update of reth dependencies from `paradigmxyz/reth`
main branch.
## Upstream reth changes
[`1bf2384...01d3400`](paradigmxyz/reth@1bf2384...01d3400)
🔗 Amp thread:
https://ampcode.com/threads/T-019f82db-9b08-71f2-9518-e78daad00565
**Engine**
- Added SSZ containers for payloads, forkchoice status, proxy
communication, and REST-SSZ blob body witnesses
([#26133](paradigmxyz/reth#26133),
[#26271](paradigmxyz/reth#26271),
[#26335](paradigmxyz/reth#26335),
[#26328](paradigmxyz/reth#26328)).
- Improved sparse-trie proof handling with stalled-proof errors and
diagnostics, correct prune retention, preserved anchors, and reduced
cursor overlays
([#26325](paradigmxyz/reth#26325),
[#26327](paradigmxyz/reth#26327),
[#26332](paradigmxyz/reth#26332),
[#26422](paradigmxyz/reth#26422),
[#25952](paradigmxyz/reth#25952)).
- Extended post-execution hooks with parent state and header context,
passing state updates by value
([#26330](paradigmxyz/reth#26330),
[#26420](paradigmxyz/reth#26420),
[#26398](paradigmxyz/reth#26398)).
- Made state-root update stream ownership explicit and exposed the
payload state-root receiver
([#26329](paradigmxyz/reth#26329),
[#26431](paradigmxyz/reth#26431)).
- Added configurable development finality depth
([#26451](paradigmxyz/reth#26451)).
**Trie**
- Simplified state-root execution by removing `ParallelStateRoot`,
renaming its error type, and refactoring strategy selection and defaults
([#26121](paradigmxyz/reth#26121),
[#26132](paradigmxyz/reth#26132),
[#26085](paradigmxyz/reth#26085),
[#26355](paradigmxyz/reth#26355),
[#26358](paradigmxyz/reth#26358)).
- Fixed sparse-trie correctness and concurrency issues involving late
hints, branch-child pruning, and exact-subtrie proof target grouping
([#26356](paradigmxyz/reth#26356),
[#26376](paradigmxyz/reth#26376),
[#26357](paradigmxyz/reth#26357)).
- Simplified trie internals by consolidating lazy data, splitting
multiproof logic, removing changed-path tracking, and eliding empty new
accounts from hashed state
([#26139](paradigmxyz/reth#26139),
[#26353](paradigmxyz/reth#26353),
[#26403](paradigmxyz/reth#26403),
[#26367](paradigmxyz/reth#26367)).
- Improved tracing and span propagation for parallel sparse-trie work
and pruning ([#26273](paradigmxyz/reth#26273),
[#26331](paradigmxyz/reth#26331)).
**Network**
- Added a Snap client, inbound `snap/2` serving, real account/storage
range responses, and initial end-to-end coverage
([#26049](paradigmxyz/reth#26049),
[#26324](paradigmxyz/reth#26324),
[#26339](paradigmxyz/reth#26339),
[#26368](paradigmxyz/reth#26368)).
- Reduced ECIES allocation and copying, cached AES key schedules, and
raised the write flush boundary to 64 KiB
([#26120](paradigmxyz/reth#26120),
[#26119](paradigmxyz/reth#26119),
[#26346](paradigmxyz/reth#26346),
[#26348](paradigmxyz/reth#26348)).
- Reduced session and stream overhead through static ping/pong encoding,
less idle polling, timer change tracking, batched flushing, and reusable
Snappy buffers
([#26122](paradigmxyz/reth#26122),
[#26123](paradigmxyz/reth#26123),
[#26124](paradigmxyz/reth#26124),
[#26125](paradigmxyz/reth#26125),
[#26349](paradigmxyz/reth#26349),
[#26347](paradigmxyz/reth#26347)).
- Optimized pooled transaction recovery and preallocated pooled hash
metadata decoding
([#26304](paradigmxyz/reth#26304),
[#26145](paradigmxyz/reth#26145)).
- Fixed discovery advertisement and peer management: advertise the bound
RLPx port, share one UDP port across discv4/discv5, publish fork ENR
data for custom chains, and reset reputation after admin unban
([#26265](paradigmxyz/reth#26265),
[#26089](paradigmxyz/reth#26089),
[#26449](paradigmxyz/reth#26449),
[#26334](paradigmxyz/reth#26334)).
**RPC**
- Added the `EthSubscriptions` trait for log and header streams
([#22155](paradigmxyz/reth#22155)).
- Improved testing RPC behavior by accepting positional block parameters
and rejecting invalid block transactions by default
([#25750](paradigmxyz/reth#25750),
[#26372](paradigmxyz/reth#26372)).
- Aligned BAL lookup errors with the specification and added a BAL debug
method ([#26441](paradigmxyz/reth#26441),
[#26438](paradigmxyz/reth#26438)).
**Pruning & Storage**
- Added row-budgeted dupsort pruning and optimized pruning with
static-file transaction hash ranges
([#26287](paradigmxyz/reth#26287),
[#26312](paradigmxyz/reth#26312)).
- Corrected receipts static-file sizing to derive it from prune distance
([#26108](paradigmxyz/reth#26108)).
- Removed the unused prune database crate
([#26391](paradigmxyz/reth#26391)).
**Transaction Pool**
- Reduced validator allocations, forwarded same-origin validation
batches, specialized small discard lookups, and deduplicated blob
fallback reads
([#26343](paradigmxyz/reth#26343),
[#26341](paradigmxyz/reth#26341),
[#26345](paradigmxyz/reth#26345),
[#26255](paradigmxyz/reth#26255)).
**Wire & Metrics Performance**
- Preallocated Ethereum wire transaction-list decoding
([#26164](paradigmxyz/reth#26164)).
- Moved metric rendering off the main execution path
([#26180](paradigmxyz/reth#26180)).
**Download & Import**
- Added file-archive support for modular snapshots and exposed snapshot
environment access
([#26078](paradigmxyz/reth#26078),
[#25285](paradigmxyz/reth#25285)).
- Rejected incomplete blocks encountered at end-of-file during import
([#26363](paradigmxyz/reth#26363)).
**Builder & Stages**
- Refactored builder resource ownership around leases and paused JIT
execution while constructing payloads
([#26427](paradigmxyz/reth#26427),
[#26429](paradigmxyz/reth#26429)).
- Added a partial-persistence finish checkpoint for stages
([#26447](paradigmxyz/reth#26447)).
## Migrations
🔗 Amp thread:
https://ampcode.com/threads/T-019f82dc-2079-7249-9940-8e00022f9c94
- Bumped all Reth git dependencies from `1bf2384` to `01d3400`.
- Added handling for the new `IncomingEthRequest::GetSnap` variant by
dropping its response sender because the P2P proxy does not support snap
sync.
- Implemented the newly required `EthSubscriptions` helper trait for
`TempoEthApi`.
- Renamed payload-builder `trie_handle` usage to `state_root_handle` and
migrated state hooks to the consuming `take_state_hook()` API.
- Migrated hashed-state retrieval to `try_take_hashed_state_rx()`,
preserving the new shared `Arc<HashedPostState>` representation and
cloning only when fallback root computation requires ownership.
- Removed `changed_paths` from payload state-root handling and
`BuiltPayloadExecutedBlock` construction because the updated Reth
payload API no longer exposes that field.
[GitHub
Workflow](https://github.com/tempoxyz/tempo/actions/runs/29800127526)
---------
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>1 parent d7e9f40 commit 09ac487
5 files changed
Lines changed: 310 additions & 319 deletions
File tree
- bin/tempo/src
- crates
- node/src/rpc
- payload/builder/src
0 commit comments