This setup is separate from the standard Base node which uses
op-geth.This specific op-reth client provides an extension that enables proofs history storage which is not available in the standard node configuration.Use Cases
- Generate execution witnesses for arbitrary blocks
- Retrieve trie preimages needed for block execution
- Execute payloads from arbitrary parent blocks
- Build validity proof systems on Base
Prerequisites
- Familiarity with running a Base node
- Rust toolchain installed
- Hardware meeting node requirements
Running a proofs node requires additional storage and compute compared to a standard node. Plan for longer sync times and higher resource usage.
Setup
1
Clone and build op-reth
Clone the Reth repository and compile with OP Stack support:For detailed build instructions, see the Reth documentation.
Terminal
2
Initialize proofs history
If this is your first time running the node, you may need to run
init to initialize a database from genesis.3
Run with proofs history enabled
Start the node with the This enables the debug RPC methods for retrieving execution witnesses.
--proofs-history flag:RPC Methods
Once your proofs node is running, you can use these debug methods:debug_executionWitness
Returns the trie preimages needed to execute a specific block.
block_num_or_hash- Block number (hex) or block hash
debug_dbGet for each preimage individually).
debug_executePayload
Executes an arbitrary block from an arbitrary parent, useful for blocks not yet included in the chain.
payload_attributes- The payload attributes object for the block to execute