Skip to content

feat(firehose): port FirehoseLiveHooks to release/reth-2.x - #35

Merged
maoueh merged 1 commit into
streamingfast:release/reth-2.xfrom
panos-xyz:feat/firehose-live-hooks
Sep 17, 2026
Merged

maoueh merged 1 commit into
streamingfast:release/reth-2.xfrom
panos-xyz:feat/firehose-live-hooks

Conversation

@panos-xyz

@panos-xyz panos-xyz commented Sep 17, 2026

Copy link
Copy Markdown

Ports FirehoseLiveHooks from release/base-2.x (511a2bb) to release/reth-2.x.

On reth-v2.5.2-fh3.1, execute_and_trace_block wraps the live executor with FirehoseWrappedExecutor::new, so a chain's PreTxAdjust / PostTxExtras only run on the staged-sync path (through ChainHooks). Blocks imported through the engine API are traced without them. Chains that consume the generic line and customize fee handling need the hooks on both paths; we hit this while integrating Morph (morph-reth, built on upstream reth v2.5.2).

The commit is a cherry-pick of 511a2bb. The only conflict was the doc comment of execute_and_trace_block, where the JIT paragraph of release/reth-2.x is kept. As on release/base-2.x, the live path now takes a StateProviderBox, since the hooks are typed against LiveTracedEvm.

This is the first of four PRs needed by the Morph integration: #36 (post-tx gas accounting, stacked on this one), #37 (undefined SELFDESTRUCT) and #38 (Executor::execute re-emitting blocks).

Testing

  • On this branch: cargo test -p reth-firehose --lib, cargo test -p reth-firehose-tests.
  • On the stack of all four PRs: cargo test -p reth-engine-tree --test firehose_live_tracing, cargo check -p reth-bb -p example-custom-beacon-withdrawals -p example-custom-state-root.
  • morph-reth implements the hooks and its Firehose integration tests pass against the stack, including blocks imported through the engine API.

https://claude.ai/code/session_017NVMdn2RC1Nv5tfSTCkvro

The live engine path wrapped the traced executor without chain hooks, so OP
Stack chains lost fee-vault credits and deposit nonces in their traces.
@maoueh
maoueh merged commit 9813888 into streamingfast:release/reth-2.x Sep 17, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants