Skip to content

Feature/integrate reth v2.3.0#13

Merged
sduchesneau merged 338 commits into
firehose/2.xfrom
feature/integrate-reth-v2.3.0
Jun 15, 2026
Merged

Feature/integrate reth v2.3.0#13
sduchesneau merged 338 commits into
firehose/2.xfrom
feature/integrate-reth-v2.3.0

Conversation

@sduchesneau

Copy link
Copy Markdown

Merged tag 'v2.3.0'=

- `alloy-evm` patch rebased to `sf/v0.36.0` and wired up
- firehose crate ported to revm 40 / alloy-evm 0.36 (10 errors fixed across `inspector.rs`, `executor.rs`, `payload_validator.rs`)
- firehose unit (18), live-path regression (1), and golden tests (2) all pass — goldens updated for the revm `SYSTEM_CALL_GAS_LIMIT` change (30M → 31,566,720)

decofe and others added 30 commits May 11, 2026 12:19
Co-authored-by: Centaur AI <ai@centaur.local>
Co-authored-by: Brian Picciano <933154+mediocregopher@users.noreply.github.com>
Co-authored-by: Brian Picciano <933154+mediocregopher@users.noreply.github.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Brian Picciano <933154+mediocregopher@users.noreply.github.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: ControlCplusControlV <randomlikeabledude@gmail.com>
Co-authored-by: Centaur AI <ai@centaur.local>
Co-authored-by: Brian Picciano <933154+mediocregopher@users.noreply.github.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Centaur AI <ai@centaur.local>
Co-authored-by: Centaur AI <ai@centaur.local>
)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
…er (paradigmxyz#24137)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Centaur AI <ai@centaur.local>
…adigmxyz#23989)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: Centaur AI <ai@centaur.local>
Co-authored-by: Brian Picciano <933154+mediocregopher@users.noreply.github.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Centaur AI <ai@centaur.local>
lean-apple and others added 23 commits June 8, 2026 11:53
Co-authored-by: Derek <256792747+decofe@users.noreply.github.com>
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
Co-authored-by: Derek <256792747+decofe@users.noreply.github.com>
…xyz#24848)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
…4995)

Co-authored-by: Brian <brian@Host-007.homenet.telecomitalia.it>
Co-authored-by: Brian <brian@Brians-MacBook-Pro.local>
Co-authored-by: Derek <256792747+decofe@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Brian <brian@Brians-MacBook-Pro.local>
Co-authored-by: Brian <brian@Host-007.homenet.telecomitalia.it>
…adigmxyz#24776)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
OpFirehoseEngineValidator (reth-optimism-firehose) is an external
re-implementation of BasicEngineValidator that lives outside this crate
and therefore cannot read pub(crate) fields. This one-line accessor
exposes the existing state_trie_overlays field so external validators
can call .with_state_trie_overlay_manager(...) on OverlayBuilder without
rebuilding the manager from scratch on every request.
feat(engine): expose state_trie_overlays() accessor on TreeState
…er is initialized

The Executor trait's provided execute() calls execute_one() unconditionally,
which skips inspector attachment and emits no FIRE BLOCK output for any
call site that doesn't know to call execute_and_trace_one() explicitly.

Override execute() on FirehoseBlockExecutor to check is_tracer_initialized()
and dispatch to execute_and_trace_one() when true. Any caller of execute()
on a FirehoseBlockExecutor — including the pipeline batch executor path —
now automatically emits Firehose traces without needing to be modified.
When the backfill pipeline finishes with zero blocks synced (ctrl.block_number()
= None) — which is the normal outcome for OP Stack nodes that have no P2P peers
because all blocks arrive exclusively via engine_newPayload — the engine returned
early from on_backfill_sync_finished without calling try_connect_buffered_blocks.

This left every block received via newPayload during the backfill window stuck in
the block buffer indefinitely.  The engine then triggered backfill again on the
next FCU, downloaded zero blocks again, and repeated the loop forever.  Only
blocks that arrived during a brief idle window (between the failed backfill and
the next FCU) could be executed — which is why only a handful of live blocks near
the chain tip emitted FIRE BLOCK output while all historical blocks were silent.

Fix: when backfill makes no progress, call try_connect_buffered_blocks with the
current canonical head before returning.  This flushes any buffered blocks whose
parent state is already available (always true for the genesis → block 1 link on
a fresh node) through validate_block_with_state, which emits Firehose FIRE BLOCK
traces for each block.  Blocks whose parent state is not yet available are simply
re-buffered, so the change is safe for non-OP-Stack chains as well.
- `alloy-evm` patch rebased to `sf/v0.36.0` and wired up
- firehose crate ported to revm 40 / alloy-evm 0.36 (10 errors fixed across `inspector.rs`, `executor.rs`, `payload_validator.rs`)
- firehose unit (18), live-path regression (1), and golden tests (2) all pass — goldens updated for the revm `SYSTEM_CALL_GAS_LIMIT` change (30M → 31,566,720)
@sduchesneau sduchesneau requested a review from maoueh June 15, 2026 17:56
Comment thread docs/vocs/package.json Outdated
},
"dependencies": {
"mermaid": "^11",
"react": "19.2.4",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doing those bump outside of our stuff leads to interesting questions, I feel personally we should ignore those and should not fix them in forks we maintain for tracing only reasons.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, it is tricky, let's review our 'dependabot ignore' procedure when this becomes a burden.

@maoueh

maoueh commented Jun 15, 2026

Copy link
Copy Markdown

Battlefield reth-dev and reth-devnet passes, approving

@sduchesneau sduchesneau merged commit a81382c into firehose/2.x Jun 15, 2026
2 checks passed
@sduchesneau sduchesneau deleted the feature/integrate-reth-v2.3.0 branch June 15, 2026 18:29
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.