Repository navigation
Merge op-reth v2.8.1 - #28
Merged
Merged
Conversation
…-optimism#23191) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Anton Evangelatov <anton.evangelatov@oplabs.co>
…eGame.closeGame (ethereum-optimism#23267) Co-authored-by: wwared <541936+wwared@users.noreply.github.com>
…-optimism#23107) Co-authored-by: Rodrigo Araújo <rod.dearaujo@gmail.com>
…um-optimism#23290) Co-authored-by: oplabs-renovate[bot] <310106951+oplabs-renovate[bot]@users.noreply.github.com>
…eum-optimism#23291) Co-authored-by: oplabs-renovate[bot] <310106951+oplabs-renovate[bot]@users.noreply.github.com>
…okup (ethereum-optimism#23275) Co-authored-by: wwared <541936+wwared@users.noreply.github.com>
…um-optimism#23292) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…e tests (ethereum-optimism#23277) Co-authored-by: Karl Floersch <karl@Karls-Mac-Mini.local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…es above 7 days (ethereum-optimism#23276) Co-authored-by: Karl Floersch <karl@Karls-Mac-Mini.local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…thereum-optimism#23356) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…3320) Co-authored-by: Mark Chen <292447144+mark-chen-mantle@users.noreply.github.com>
…um-optimism#23311) Co-authored-by: Mark Chen <292447144+mark-chen-mantle@users.noreply.github.com>
…m#23353) Co-authored-by: wwared <541936+wwared@users.noreply.github.com>
…eum-optimism#23355) Co-authored-by: Karl Floersch <karl@Karls-Mac-Mini.local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ism#23362) Co-authored-by: wwared <541936+wwared@users.noreply.github.com>
…3328) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…mism#22965) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…m#23220) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: George Knee <georgeknee@googlemail.com>
…imism#23286) Co-authored-by: Karl Floersch <karl@Karls-Mac-Mini.local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…3347) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
… test (ethereum-optimism#23329) Co-authored-by: Adrian Sutton <adrian@oplabs.co>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…thereum-optimism#23875) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: maurelian <23033765+maurelian@users.noreply.github.com>
…tsInvalidMessage (ethereum-optimism#23885) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…m#23896) Co-authored-by: wwared <541936+wwared@users.noreply.github.com>
…v feature flag (ethereum-optimism#23868) Co-authored-by: wwared <541936+wwared@users.noreply.github.com>
… game in StandardValidator (ethereum-optimism#23869) Co-authored-by: wwared <541936+wwared@users.noreply.github.com>
…tor (ethereum-optimism#23870) Co-authored-by: wwared <541936+wwared@users.noreply.github.com>
…notice (ethereum-optimism#23919) Co-authored-by: Claude Mythos 5.1 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Mythos 5.1 <noreply@anthropic.com>
…um-optimism#23814) Co-authored-by: Claude Mythos 5.1 <noreply@anthropic.com> Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
…RPC errors (ethereum-optimism#23930) Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
…ss list enforcement (ethereum-optimism#23897)
…21 notice (ethereum-optimism#23934) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ethereum-optimism#23892) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Mythos 5.1 <noreply@anthropic.com>
Mirror the upstream payload validator changes: overlay state provider factory, blocks carrying access lists, and unrecoverable senders reported as invalid blocks.
sduchesneau
approved these changes
Nov 6, 2026
This was referenced Nov 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merges upstream
op-reth/v2.8.1(307 commits on top ofop-reth/v2.6.1) intorelease/op-reth-2.x. Release tag once merged:op-reth-v2.8.1-fh3.1(newest tag on the branch isop-reth-v2.6.1-fh3.1; the Firehose block model is unchanged, sofh3.1stays).Depends on streamingfast/reth#90.
rust/Cargo.tomlpinsstreamingfast/rethtagop-reth-v2.8.1-fh3.1, which does not exist until that PR is merged and its merge commit is tagged. The build (and thesf-release.ymlimage build) fails until then.rust/Cargo.lockwas resolved against the head of that PR's branch; if the tag ends up on a different commit (a merge commit), refresh it withcargo update -p reth-firehoseinrust/before merging.What changed
op-v2.6.0-2(reth v2.6.0), revm 42 → 43 and alloy-evm 0.38 → 0.39. Allreth-*git dependencies now point atstreamingfast/rethtagop-reth-v2.8.1-fh3.1, and thealloy-evmpatch atstreamingfast/evmv0.39.0-sf.firehose-tracerstays on 5.5.0.rust/Cargo.toml(reth pins;reth-ipcandreth-engine-treeadded upstream, ourreth-execution-cache,reth-trie-parallelandreth-firehosekept),rust/Cargo.lock(regenerated from upstream's),node.rsimports, andproof_history.rs, which upstream deleted when it movedlaunch_nodeintonode.rs. The Firehoseon_component_initialized(init_blockchain)hook moved with it and now covers both the plain and the proofs-history launch.ConfigurePostExecEvm::Snapshotwas removed upstream, andengine_validator.rsfollows reth's payload validator (overlay state provider factory instead ofStateProviderBuilder, blocks carrying an optional access list,BlockAccessListDecodeError, and a transaction whose sender cannot be recovered is now an invalid block rather than an internal error).ACTIVATIONS.mdwith everyOpHardfork, its status on OP Mainnet and Unichain, and its effect on the Firehose block.Firehose bug patterns
parallel_bal_executionstaysfalsein our validator; prewarm and BAL workers run without the inspector. Upstream's new derived payload service still callsbuild_payload, wherefirehose_trace_built_blockruns.extraDataheader check and the BAL gas-limit check both run beforemark_verified().OpHardforkadded and no compiled-in timestamp changed for OP Mainnet or Unichain. Lagoon (not scheduled anywhere) enables the0x7Dpost-exec transaction;firehose-tracer5.5.0 has no such type and the reth mapper converts the type withexpect(...), so the first such transaction would panic the node. This is a blocker to fix before any network schedules Lagoon, not for this release.OpTxEnvelope,OpTxType,OpReceipt, deposits or the header. The fee vault credits call upstreamoperator_fee_charge/calculate_tx_l1_cost;op-revmhandler.rschanged only in comments.Operator-visible changes from upstream
--engine.persistence-thresholddefault goes from 7 to 50: more blocks held in memory, and after an unclean shutdown the node re-executes (and re-emits) up to 50 blocks.eth_capabilitiesno longer advertises history below the Bedrock block.cli_snapshotpasses unchanged).Test Execution Summary
op-reth
op-reth/v2.8.1merged intostreamingfast/optimismrelease/op-reth-2.x(branchbump/op-reth-2.8.1), with rethop-v2.6.0-2merged intostreamingfast/rethrelease/optimism-2.x(branchbump/op-reth-2.8.1-fh3.1).The op-reth workspace was built against the reth branch head through a local
op-reth-v2.8.1-fh3.1tag (never pushed), sorust/Cargo.lockalready resolvesstreamingfast/reth.git?tag=op-reth-v2.8.1-fh3.1.Build Status
cargo check -p reth-firehose -p reth-firehose-tests --tests: PASSEDrust/):cargo check -p reth-optimism-firehose -p reth-optimism-node -p op-reth -p reth-optimism-payload-builder -p reth-optimism-evm -p alloy-op-evm -p op-alloy-consensus -p reth-optimism-cli --tests: PASSEDcargo build -p op-reth --bin op-reth(dev profile, used for Battlefield): PASSEDrustfmt +nightly-<mise pin> --edition 2024 --checkon the edited Rust files: PASSEDrust/op-reth/Dockerfile.sf): NOT RUN locally. It fetches thestreamingfast/rethtagop-reth-v2.8.1-fh3.1, which does not exist until the reth PR is merged and tagged; thesf-release.ymlPR build fails for the same reason until then.Unit Tests
cargo test -p reth-firehose -p reth-firehose-testscargo test -p reth-optimism-firehose -p reth-optimism-node -p alloy-op-evm -p reth-optimism-payload-builder -p reth-optimism-evm -p op-alloy-consensus -p reth-optimism-cli -p op-reth --no-fail-fastcargo test -p reth-optimism-cli --all-features --test cli_snapshotIntegration Tests
Battlefield Tests
master(879ea9a),op-reth-devnettarget.builder-playground cook opstack --output=scripts/optimism/op-chain --external-builder op-rbuilder --flashblocksOP_RETH_BINARY=<optimism>/rust/target/debug/op-reth ./scripts/run_firehose_op_reth_devnet.sh(fireeth v2.24.1)op-nodebuilt from the merged branch (go build ./op-node/cmd), with the arguments ofscripts/optimism/run_optimism_devnet.shpnpm test:fh3.0:op-reth-devnetscripts/optimism/run_optimism_devnet.shcould not be used as is. Its funding step sends the faucet transaction to the flashblocks-rpc node, which never synced past block 0 here, so the script aborts after 15 tries. The faucet transaction was sent to the op-rbuilder RPC (:8547, the RPC the tests use) and the other steps were run by hand with the script's arguments. Two earlier playground starts failed on container start ordering (bproxy and op-geth started before the containers they resolve); the third came up.fireeth tools compare-block-store-rpc <merged-blocks> http://localhost:8549 0 299against the sequencer's op-geth reported blocks 0 to 299 identical (all Battlefield transactions are in that range), andfireeth tools compare-oneblock-rpcreported the 260 one-blocks from 300 to 556 identical.Firehose bug pattern review
engine_validator.rskeepsparallel_bal_execution = false; prewarm and BAL workers run without the inspector; the new derived payload service goes throughbuild_payload, wherefirehose_trace_built_blockalready runs.extraDataheader check and the BAL gas-limit check run beforemark_verified().OpHardforkis unchanged (Bedrock to Karst, plus Lagoon) and no compiled-in timestamp changed for OP Mainnet or Unichain. Lagoon, not scheduled, enables the0x7Dpost-exec transaction, which the reth mapper cannot convert (seeACTIVATIONS.md).OpTxEnvelope,OpTxType,OpReceiptand the header are unchanged. TheOpPostTxExtrasfee formulas call upstreamoperator_fee_charge/calculate_tx_l1_cost;op-revmhandler.rschanged only in comments andl1block.rsis unchanged.Environment notes
/data/workspacewas owned by root and not writable; fixed withsudo chown.zip(apt) andyq(go install github.com/mikefarah/yq/v4@v4.44.3) were missing; op-node's build needs them to generatesuperchain-configs.zip.CHANGELOG
Open questions
0x7Dand a check of the gas used for post-exec refunds before any network schedules it (seeACTIVATIONS.md).2.3.0, the stalereth-optimism-firehosecrate version, not the op-reth version. Unchanged by this PR.