Skip to content

refactor(prover): adopt reth stateless execution and support MorphTx V2/EIP-7702 - #1070

Open
anylots wants to merge 13 commits into
mainfrom
refactor/prover-reth-stateless-verifier
Open

anylots wants to merge 13 commits into
mainfrom
refactor/prover-reth-stateless-verifier

Conversation

@anylots

@anylots anylots commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Refactor the prover execution pipeline to use reth’s native block executor and execution witnesses, while upgrading the Morph EVM stack for MorphTx V2, EIP-7702, and Celadon support.

Key Changes

  • Replace custom transaction execution with reth::BasicBlockExecutor and MorphEvmConfig
  • Replace legacy block traces with native Morph blocks and execution witnesses
  • Add debug_executionWitness as an efficient state-input source
  • Retain eth_getProof execution as a fallback path
  • Force-include withdrawal-root proofs required for public-input generation
  • Add RPC, witness, and dual-comparison modes for shadow execution
  • Strengthen block, state-root, chain-ID, timestamp, base-fee, and blob validation
  • Add automatic fallback between RPC and witness input generation
  • Make proof artifacts atomically written and improve failure handling
  • Change the proving queue from LIFO to FIFO
  • Upgrade Alloy, REVM, reth, Rust, and related dependencies
  • Remove obsolete trace types, test fixtures, and legacy SP1 tests

@anylots
anylots requested a review from a team as a code owner September 22, 2026 03:40
@anylots
anylots requested review from twcctop and removed request for a team September 22, 2026 03:40
@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 117 files, which is 17 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 09a5a90b-6c73-4ee5-aa90-e195a9adb6ce

📥 Commits

Reviewing files that changed from the base of the PR and between aa35ed6 and cb759d9.

⛔ Files ignored due to path filters (2)
  • prover/Cargo.lock is excluded by !**/*.lock
  • prover/tests/zstd/host/abc.txt.zst is excluded by !**/*.zst
📒 Files selected for processing (117)
  • go-ethereum
  • prover/Cargo.toml
  • prover/Dockerfile.sp1-base
  • prover/Dockerfile.sp1-test
  • prover/README.md
  • prover/bin/challenge/Cargo.toml
  • prover/bin/client/Cargo.toml
  • prover/bin/client/elf/verifier-client
  • prover/bin/host/Cargo.toml
  • prover/bin/host/src/evm.rs
  • prover/bin/host/src/execute.rs
  • prover/bin/host/src/lib.rs
  • prover/bin/host/src/main.rs
  • prover/bin/host/src/vkey.rs
  • prover/bin/server/Cargo.toml
  • prover/bin/server/src/main.rs
  • prover/bin/server/src/queue.rs
  • prover/bin/server/src/server.rs
  • prover/bin/shadow-prove/Cargo.toml
  • prover/bin/shadow-prove/contracts/README.md
  • prover/bin/shadow-prove/src/execute.rs
  • prover/bin/shadow-prove/src/lib.rs
  • prover/bin/shadow-prove/src/main.rs
  • prover/bin/shadow-prove/src/shadow_prove.rs
  • prover/bin/shadow-prove/src/shadow_rollup.rs
  • prover/contracts/README.md
  • prover/crates/executor/client/Cargo.toml
  • prover/crates/executor/client/src/lib.rs
  • prover/crates/executor/client/src/types/batch.rs
  • prover/crates/executor/client/src/types/error.rs
  • prover/crates/executor/client/src/types/input.rs
  • prover/crates/executor/client/src/verifier/blob_verifier.rs
  • prover/crates/executor/client/src/verifier/evm_verifier.rs
  • prover/crates/executor/core/Cargo.toml
  • prover/crates/executor/core/src/error.rs
  • prover/crates/executor/core/src/executor.rs
  • prover/crates/executor/host/Cargo.toml
  • prover/crates/executor/host/src/blob.rs
  • prover/crates/executor/host/src/execute.rs
  • prover/crates/executor/host/src/lib.rs
  • prover/crates/executor/host/src/trace.rs
  • prover/crates/executor/host/src/utils.rs
  • prover/crates/mpt/Cargo.toml
  • prover/crates/mpt/src/execution_witness.rs
  • prover/crates/mpt/src/lib.rs
  • prover/crates/mpt/src/mpt.rs
  • prover/crates/primitives/Cargo.toml
  • prover/crates/primitives/src/lib.rs
  • prover/crates/primitives/src/predeployed.rs
  • prover/crates/primitives/src/types/authorization_list.rs
  • prover/crates/primitives/src/types/blob.rs
  • prover/crates/primitives/src/types/block.rs
  • prover/crates/primitives/src/types/mod.rs
  • prover/crates/primitives/src/types/tx.rs
  • prover/crates/storage/rpc-db/Cargo.toml
  • prover/crates/storage/rpc-db/src/account_proof.rs
  • prover/crates/storage/rpc-db/src/basic_rpc_db.rs
  • prover/crates/storage/rpc-db/src/error.rs
  • prover/crates/storage/rpc-db/src/lib.rs
  • prover/crates/storage/rpc-db/src/witness_rpc_db.rs
  • prover/crates/storage/witness-db/Cargo.toml
  • prover/crates/storage/witness-db/src/lib.rs
  • prover/crates/utils/Cargo.toml
  • prover/crates/utils/src/lib.rs
  • prover/crates/utils/src/provider.rs
  • prover/crates/utils/src/witness.rs
  • prover/rustfmt.toml
  • prover/testdata/blob/blob_with_zstd_batch.data
  • prover/testdata/blob/blob_with_zstd_batch_holesky.data
  • prover/testdata/blob/mainnet_47561.data
  • prover/testdata/blob/sp1_batch.data
  • prover/testdata/block_inputs/devnet_53.json
  • prover/testdata/block_inputs/mainnet_1430.json
  • prover/testdata/block_inputs/mainnet_18762206.json
  • prover/testdata/block_inputs/mainnet_19137902.json
  • prover/testdata/block_inputs/mainnet_19137909.json
  • prover/testdata/block_inputs/mainnet_19266117.json
  • prover/testdata/block_inputs/mainnet_19720219.json
  • prover/testdata/block_inputs/mainnet_209.json
  • prover/testdata/block_inputs/mainnet_25215.json
  • prover/testdata/block_inputs/mainnet_809.json
  • prover/testdata/block_inputs/mainnet_898.json
  • prover/testdata/mpt/hostexecutoroutput
  • prover/testdata/mpt/local_transfer_eth.json
  • prover/testdata/mpt/mainnet_1430.json
  • prover/testdata/mpt/mainnet_16283373.data
  • prover/testdata/mpt/mainnet_165256.data
  • prover/testdata/mpt/mainnet_18762206.json
  • prover/testdata/mpt/mainnet_19137902.json
  • prover/testdata/mpt/mainnet_19137909.json
  • prover/testdata/mpt/mainnet_19266117.json
  • prover/testdata/mpt/mainnet_19720219.json
  • prover/testdata/mpt/mainnet_19720290.data
  • prover/testdata/mpt/mainnet_209.json
  • prover/testdata/mpt/mainnet_25215.json
  • prover/testdata/mpt/mainnet_809.json
  • prover/testdata/mpt/mainnet_898.json
  • prover/testdata/state/executor_input_19720290.data
  • prover/tests/algebra/client/Cargo.toml
  • prover/tests/algebra/host/Cargo.toml
  • prover/tests/algebra/host/sp1_test_proof.json
  • prover/tests/algebra/host/src/main.rs
  • prover/tests/bls12381/client/Cargo.toml
  • prover/tests/bls12381/host/Cargo.toml
  • prover/tests/bls12381/host/src/main.rs
  • prover/tests/keccak256/client/Cargo.toml
  • prover/tests/keccak256/client/elf/riscv32im-succinct-zkvm-elf
  • prover/tests/keccak256/client/src/main.rs
  • prover/tests/keccak256/host/Cargo.toml
  • prover/tests/keccak256/host/src/main.rs
  • prover/tests/zstd/client/Cargo.toml
  • prover/tests/zstd/client/elf/riscv32im-succinct-zkvm-elf
  • prover/tests/zstd/client/src/main.rs
  • prover/tests/zstd/host/Cargo.toml
  • prover/tests/zstd/host/compressed_batch.data
  • prover/tests/zstd/host/decoded_blob_with_compressed_batch.data
  • prover/tests/zstd/host/src/main.rs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

Claude Code Review is paused for this repository. To reconnect it, an admin of this repository's GitHub organization (or the account owner, for personal repositories) who can also manage your Claude organization's Code Review settings needs to re-link GitHub in Code Review settings. This is a one-time step.

Tip: disable this comment in your organization's Code Review settings.

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.

1 participant