Skip to content

Merge ethereum-optimism/reth op-v2.6.0-2 for op-reth v2.8.1 - #90

Merged
sduchesneau merged 301 commits into
release/optimism-2.xfrom
bump/op-reth-2.8.1-fh3.1
Nov 6, 2026
Merged

sduchesneau merged 301 commits into
release/optimism-2.xfrom
bump/op-reth-2.8.1-fh3.1

Conversation

@dfuse-bot

Copy link
Copy Markdown

Merges ethereum-optimism/reth op-v2.6.0-2 (reth v2.6.0 plus 17 OP commits), the reth pin of op-reth v2.8.1, into release/optimism-2.x. The previous pin 0fbe4285 is not an ancestor of op-v2.6.0-2 (OP rebuilt its fork on reth v2.6.0), so the merge conflicted on OP's own replayed commits; those files take the op-v2.6.0-2 version. The StreamingFast changes (crates/firehose, crates/firehose-tests, the Firehose paths in the engine tree) are kept unchanged.

  • The alloy-evm patch moves from v0.38.0-sf to streamingfast/evm v0.39.0-sf (revm 43), which keeps the system-call inspector patch.
  • firehose-tracer stays on 5.5.0 in Cargo.lock, so the block model is unchanged (fh3.1).

Release: once merged, tag the merge commit op-reth-v2.8.1-fh3.1. streamingfast/optimism bump/op-reth-2.8.1 pins that tag.

CHANGELOG

## op-reth-v2.8.1-fh3.1

### Changed

- Merged ethereum-optimism/reth `op-v2.6.0-2` (reth v2.6.0 plus 17 OP commits), the reth pin of
  op-reth v2.8.1. The previous pin was ethereum-optimism/reth `0fbe4285`, based on reth v2.5.2.
  revm moves to 43 and alloy-evm to 0.39. No Firehose code changed.
- The `alloy-evm` patch moves to `streamingfast/evm` `v0.39.0-sf`, so block traces keep their
  `systemCalls`.

Tests

  • cargo check -p reth-firehose -p reth-firehose-tests --tests: PASSED
  • cargo test -p reth-firehose -p reth-firehose-tests: PASSED (33 unit tests, 2 prestate tests)
  • op-reth unit tests and Battlefield (op-reth-devnet, 78 passing, 0 failing) ran against this branch through the optimism PR; see its description for the full report.

Notes for reviewers

  • The reth validator on this branch (crates/engine/tree/src/tree/payload_validator.rs) decides parallel_bal_execution before the Firehose branch, so with a block access list present transactions could reach the traced executor out of order. op-reth does not use this validator (it has its own Firehose validator with the BAL path disabled) and no OP fork enables block access lists, so nothing changes for OP. release/reth-2.x already guards this.
  • Branches bump/op-reth-2.8.1 and bump/optimism-op-reth-2.8.1 on this repository come from an earlier automated attempt at this bump and have no PR. They can be deleted.

shekhirin and others added 30 commits August 20, 2026 20:08
…xyz#26767)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
)

Co-authored-by: Brian Picciano <933154+mediocregopher@users.noreply.github.com>
…yz#26808)

Co-authored-by: Matthias Seitz <19890894+mattsse@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
…6810)

Co-authored-by: Matthias Seitz <19890894+mattsse@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Brian Picciano <933154+mediocregopher@users.noreply.github.com>
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
…6828)

Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
Co-authored-by: Alexey Shekhirin <github@shekhirin.com>
mediocregopher and others added 24 commits September 16, 2026 11:41
…yz#27265)

Co-authored-by: Matthias Seitz <19890894+mattsse@users.noreply.github.com>
…digmxyz#27266)

Co-authored-by: Matthias Seitz <19890894+mattsse@users.noreply.github.com>
…yz#27275)

Co-authored-by: Matthias Seitz <19890894+mattsse@users.noreply.github.com>
Pin that `OverlayStateProvider::storage_root` reads trie nodes through
the overlay when partial persistence leaves database storage-trie nodes
older than the persisted hashed storage. OP Stack consensus depends on
this: the Isthmus withdrawals root is the L2ToL1MessagePasser storage
root, computed through `storage_root` when building and validating
blocks.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…igmxyz#27247)

Co-authored-by: Matthias Seitz <19890894+mattsse@users.noreply.github.com>
(cherry picked from commit a120f00)
…igmxyz#27429)

Co-authored-by: Matthias Seitz <19890894+mattsse@users.noreply.github.com>
(cherry picked from commit 444e867)
Co-authored-by: Brian Picciano <933154+mediocregopher@users.noreply.github.com>
(cherry picked from commit 078d026)
…dAccounts (paradigmxyz#27252)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Brian Picciano <me@mediocregopher.com>
(cherry picked from commit 695b4f1)
Co-authored-by: Brian Picciano <933154+mediocregopher@users.noreply.github.com>
Co-authored-by: Brian Picciano <me@mediocregopher.com>
(cherry picked from commit 5e309af)
)

Co-authored-by: Sergei Shulepov <2205845+pepyakin@users.noreply.github.com>
(cherry picked from commit 2599319)
Squash the fork CI support from 04e73b7 and push-event support from b0d194c into one replayable maintenance commit.

Preserve release action pins and advisory policy when resolving the replay. Select the book build job without entering Pages deployment. Refresh the standalone lockfile to patched h2 and rustls releases instead of suppressing RUSTSEC-2026-0258 and RUSTSEC-2026-0285; rustls requires the updated AWS-LC backend.

Run cargo deny natively instead of through act (folded in from c279f31): lint.yml's `deny` job calls tempoxyz/ci's reusable deny.yml, which starts with tempoxyz's secure-runner. That action requires a GitHub OIDC token unless the event is a fork pull request, and act never receives one, so the job failed on every push and same-repo PR. Run the same `cargo deny --all-features check all` in a CircleCI job with a digest-pinned Rust image and a checksum-pinned cargo-deny release, and drop `deny` from the act lint matrix.

Co-authored-by: Josh Klopfenstein <git@joshklop.com>
Co-authored-by: falcorocks <14293929+falcorocks@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Maintenance CI: Compare optimism push vectors against v2.6.0, retaining actual PR and merge-queue bases.:
Build the compact reader in a separate target directory so act cannot
reuse libraries compiled from the comparison base after restoring older
source mtimes.

Update the fork's rustls lock from 0.23.45 to 0.23.46 for
RUSTSEC-2026-0346 through RUSTSEC-2026-0349. The consuming Optimism
workspace already resolves 0.23.46. Preserve the published pin as parent.
valid_blocks runs the whole ValidBlocks fixture directory but inherits
the single-test sixty-second timeout. The CircleCI run terminated it at
that boundary on all three attempts while the other 61 groups passed.

Give only this exact ef-tests test the ten-minute budget already used by
grouped general-state fixtures. All assertions, retries, and other test
timeouts remain unchanged. A successful remote run must still prove it
finishes within the new bound.
Pushes to an op-v<version> branch compare Compact vectors against upstream
tag v<version>, now that the fork mirrors upstream's release tags. This
replaces the hard-coded v2.6.0 commit for the retired optimism branch.

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
)

* fix(engine): return payload job start errors from forkchoiceUpdated

When the payload job for forkchoiceUpdated attributes couldn't be started,
PendingPayloadId dropped the PayloadBuilderError and answered -38003 (invalid
payload attributes) for every failure, including failures of the node such as
a provider error, a missing parent header or a dropped reply.

OnForkChoiceUpdated now resolves to a BeaconForkChoiceUpdateError, and a job
start failure becomes BeaconForkChoiceUpdateError::PayloadJob with the
builder's error. A payload builder rejects the attributes with the new
PayloadBuilderError::InvalidAttributes, which the engine API maps to -38003;
every other job start failure maps to -32603. Both carry the error in data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor: simplify payload job start error handling

Resolve `PendingPayloadId` with `?` and the existing `RecvError` conversion
instead of a three-arm match, and document that `InvalidAttributes` only
rejects the attributes when returned at job start. Trim tests that repeat
coverage: the internal-error loop keeps one case per real failure path (a
missing parent, a dropped sender, a custom builder error), and the SSZ proxy
drops its second `-38003` case, already pinned by the RPC mapping test and
the existing invalid-attributes case.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WvcVspqLS7H3kZwfXSAoJy

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* ci: pin the docs build to the installed nightly

The book job installs nightly-2026-07-14 but build-cargo-docs.sh ran
`cargo +nightly`, which resolves to the newest nightly channel. The
2026-11-01 nightly fails to compile boa_engine with an async-drop query
cycle (rust-lang/rust#165263), so the script now reads the toolchain from
RUST_NIGHTLY and the job sets it to the nightly it already installs.
Adapted from upstream, which pins its newer workflows to nightly-2026-10-31;
this release line's lint jobs are already pinned to nightly-2026-07-14.

(cherry picked from commit 121b0f7)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 831e574)

* deps: update patched transitive dependencies

Lockfile-only patch updates that resolve the inherited advisories with
compatible releases: libz-sys 1.1.31, rustls-webpki 0.103.16,
tokio 1.53.3, webpki-root-certs 1.0.10, webpki-roots 1.0.10 and
zstd-sys 2.1.2. No manifest changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 199dfea)

* deps: ignore compression advisories pinned by reth-core 0.7

zstd 0.13 and zstd-safe 7 are fixed by reth-zstd-compressors 0.7; the
patched releases need reth-core 0.8 and Rust 1.96. crypto-bigint 0.5 has
no patched release compatible with elliptic-curve 0.13. Both are
documented ignores so the fork's cargo-deny gate reflects what op-v2.6.0
can actually fix.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 470cfb9)

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Upstream's per-crate paradigm owners have no access to this fork, so
none of them resolve. Mirror the monorepo: monorepo-reviewers by
default, cloud-security for CI workflows and CODEOWNERS.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 8572c88)

The test module's `alloy_primitives` import is adjusted to this base.

Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@sduchesneau
sduchesneau merged commit 93fb772 into release/optimism-2.x Nov 6, 2026
2 checks passed
@sduchesneau
sduchesneau deleted the bump/op-reth-2.8.1-fh3.1 branch November 6, 2026 21:34
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.