with one click
fetch-blocks
// Use to fetch Ethereum mainnet blocks from an RPC URL and save them on a local directory. Use it to acquire blocks for later execution/proving.
// Use to fetch Ethereum mainnet blocks from an RPC URL and save them on a local directory. Use it to acquire blocks for later execution/proving.
Use to execute Ethereum mainnet blocks from a local directory (dry run). Use it to execute downloaded blocks without proving.
Use when the user asks to "benchmark", "run benchmark", "compare performance", "profile blocks", "cycle count comparison", or discusses SP1 prover performance testing. Runs batch block execution benchmarks and compares C++ vs Rust (or other) provers.
| name | fetch-blocks |
| description | Use to fetch Ethereum mainnet blocks from an RPC URL and save them on a local directory. Use it to acquire blocks for later execution/proving. |
| allowed-tools | Bash, Read, Glob |
The z6m_prover command with --service option runs a service fetching blocks at the tip or specified range and execute.
prover/target/release/z6m_prover --service --rpc-url <URL> --data-dir temp/mainnet --save-all-responses [other-flags] > temp/mainnet/fetch.log 2>&1
--rpc-url: URL of the RPC server to fetch blocks from (required). Use the $RPC_URL environment variable, which should be configured in .claude/settings.local.json under the env key. If $RPC_URL is not set, ask the user for the URL.prover/target/release/z6m_prover --service --rpc-url <URL> --data-dir temp/mainnet --save-all-responses > temp/mainnet/fetch.log 2>&1
prover/target/release/z6m_prover --service --rpc-url <URL> --data-dir temp/mainnet --save-all-responses --execute-every 1000000 > temp/mainnet/fetch.log 2>&1
prover/target/release/z6m_prover --service --rpc-url <URL> --data-dir temp/mainnet --save-all-responses --start-block 24620000 --end-block 24620199 --execute-every 1000 > temp/mainnet/fetch.log 2>&1
When specifying both --start-block and --end-block, you can use a value for --execute-every greater than the block range size to only fetch blocks without ever executing.
make z6m_prover to build itWhen the user wants to fetch Ethereum blocks and save them to a local directory:
Confirm parameters
Run command
Common issues:
prover/target/release/z6m_prover --service --rpc-url $RPC_URL --data-dir temp/mainnet --save-all-responses --execute-every 1000000 > temp/mainnet/fetch.log 2>&1
prover/target/release/z6m_prover --service --rpc-url $RPC_URL --data-dir temp/mainnet --save-all-responses --start-block 24620000 --end-block 24620199 --execute-every 1000 > temp/mainnet/fetch.log 2>&1
make z6m_prover within the project home folder to build the binary at prover/target/release/z6m_prover