Pruning & Node Modes
Reth supports archive, full, minimal, and custom-pruned nodes. Archive mode is the default when no pruning profile or pruning configuration is set.
For new databases, these modes run on the default storage V2 layout. Storage V2 controls where data is stored; pruning controls how much historical data is retained.
Basic concepts
- Archive node - retains all historical data from genesis.
- Full node - keeps current state and a 10,064-block historical state window, while pruning selected historical data.
- Minimal node - uses the most aggressive built-in pruning profile for small disk usage.
- Custom-pruned node - uses custom pruning configuration
or individual
--prune.*flags.
Pruning is destructive. Once historical data has been pruned, Reth cannot serve that data again unless you restore it from a snapshot or resync with a mode that retains it.
Modes
Archive Node
Archive mode is the default. Follow the steps from Running Reth on Ethereum Mainnet or testnets and start Reth without a pruning profile:
reth nodeFull Node
Use --full to run the default full-node pruning profile:
reth node \
--full \
--authrpc.jwtsecret /path/to/secret \
--authrpc.addr 127.0.0.1 \
--authrpc.port 8551Full mode configures:
- sender recovery pruning: full
- transaction lookup pruning: disabled
- receipts pruning: retain the last 10,064 blocks
- account history pruning: retain the last 10,064 blocks
- storage history pruning: retain the last 10,064 blocks
- bodies pruning: prune pre-Merge bodies on chains with a Paris activation
Minimal Storage Mode
Use --minimal to run the most aggressive built-in
pruning profile:
reth node \
--minimal \
--authrpc.jwtsecret /path/to/secret \
--authrpc.addr 127.0.0.1 \
--authrpc.port 8551Minimal mode configures:
- sender recovery pruning: full
- transaction lookup pruning: full
- receipts pruning: retain the last 64 blocks
- account history pruning: retain the last 10,064 blocks
- storage history pruning: retain the last 10,064 blocks
- bodies pruning: retain the last 10,064 blocks
- static file segments: 10,000 blocks per file
Custom Pruned Node
Use reth.toml or individual --prune.* flags to configure each pruning
segment yourself. See the pruning configuration
reference for the TOML format.
Disk usage
Disk usage changes as networks grow and depends on the selected node mode. For current storage V2 measurements, see Storage V2.
RPC support
The pruning configuration can prune several independent data segments:
- Sender Recovery
- Transaction Lookup
- Receipts
- Account History
- Storage History
Pruning a segment limits RPC methods that need the removed historical data or lookup indexes.
Full Node
The following tables describe RPC methods available in the full node.
debug namespace
| RPC | Note |
|---|---|
debug_accountAt | Only for the last 10064 blocks |
debug_accountInfoAt | Only for the last 10064 blocks |
debug_chainConfig | |
debug_codeByHash | Only for the last 10064 blocks |
debug_dbGet | |
debug_executionWitness | Only for the last 10064 blocks |
debug_executionWitnessByBlockHash | Only for the last 10064 blocks |
debug_getBadBlocks | |
debug_getRawBlock | |
debug_getRawHeader | |
debug_getRawReceipts | Only for the last 10064 blocks |
debug_getRawTransaction | |
debug_getRawTransactions | |
debug_stateRootWithUpdates | Only for the last 10064 blocks |
debug_traceBlock | Only for the last 10064 blocks |
debug_traceBlockByHash | Only for the last 10064 blocks |
debug_traceBlockByNumber | Only for the last 10064 blocks |
debug_traceCall | Only for the last 10064 blocks |
debug_traceCallMany | Only for the last 10064 blocks |
debug_traceTransaction | Only for the last 10064 blocks |
eth namespace
| RPC / Segment | Note |
|---|---|
eth_accounts | |
eth_blockNumber | |
eth_call | Only for the last 10064 blocks |
eth_chainId | |
eth_createAccessList | Only for the last 10064 blocks |
eth_estimateGas | Only for the last 10064 blocks |
eth_feeHistory | |
eth_gasPrice | |
eth_getBalance | Only for the last 10064 blocks |
eth_getBlockByHash | |
eth_getBlockByNumber | |
eth_getBlockReceipts | Only for the last 10064 blocks |
eth_getBlockTransactionCountByHash | |
eth_getBlockTransactionCountByNumber | |
eth_getCode | |
eth_getFilterChanges | |
eth_getFilterLogs | Only for the last 10064 blocks |
eth_getLogs | Only for the last 10064 blocks |
eth_getStorageAt | Only for the last 10064 blocks |
eth_getTransactionByBlockHashAndIndex | |
eth_getTransactionByBlockNumberAndIndex | |
eth_getTransactionByHash | |
eth_getTransactionCount | Only for the last 10064 blocks |
eth_getTransactionReceipt | Only for the last 10064 blocks |
eth_getUncleByBlockHashAndIndex | |
eth_getUncleByBlockNumberAndIndex | |
eth_getUncleCountByBlockHash | |
eth_getUncleCountByBlockNumber | |
eth_maxPriorityFeePerGas | |
eth_mining | |
eth_newBlockFilter | |
eth_newFilter | |
eth_newPendingTransactionFilter | |
eth_protocolVersion | |
eth_sendRawTransaction | |
eth_sendTransaction | |
eth_sign | |
eth_signTransaction | |
eth_signTypedData | |
eth_subscribe | |
eth_syncing | |
eth_uninstallFilter | |
eth_unsubscribe |
net namespace
| RPC / Segment |
|---|
net_listening |
net_peerCount |
net_version |
trace namespace
| RPC / Segment | Note |
|---|---|
trace_block | Only for the last 10064 blocks |
trace_blockOpcodeGas | Only for the last 10064 blocks |
trace_call | Only for the last 10064 blocks |
trace_callMany | Only for the last 10064 blocks |
trace_filter | Only for the last 10064 blocks |
trace_get | Only for the last 10064 blocks |
trace_rawTransaction | Only for the last 10064 blocks |
trace_replayBlockTransactions | Only for the last 10064 blocks |
trace_replayTransaction | Only for the last 10064 blocks |
trace_transaction | Only for the last 10064 blocks |
trace_transactionOpcodeGas | Only for the last 10064 blocks |
txpool namespace
| RPC / Segment |
|---|
txpool_content |
txpool_contentFrom |
txpool_inspect |
txpool_status |
Pruned Node
The following tables describe the requirements for prune segments, per RPC method:
- ✅ – if the segment is pruned, the RPC method still works
- ❌ - if the segment is pruned, the RPC method doesn't work anymore
debug namespace
| RPC / Segment | Sender Recovery | Transaction Lookup | Receipts | Account History | Storage History |
|---|---|---|---|---|---|
debug_accountAt | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_accountInfoAt | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_chainConfig | ✅ | ✅ | ✅ | ✅ | ✅ |
debug_codeByHash | ✅ | ✅ | ✅ | ❌ | ✅ |
debug_dbGet | ✅ | ✅ | ✅ | ✅ | ✅ |
debug_executionWitness | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_executionWitnessByBlockHash | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_getBadBlocks | ✅ | ✅ | ✅ | ✅ | ✅ |
debug_getRawBlock | ✅ | ✅ | ✅ | ✅ | ✅ |
debug_getRawHeader | ✅ | ✅ | ✅ | ✅ | ✅ |
debug_getRawReceipts | ✅ | ✅ | ❌ | ✅ | ✅ |
debug_getRawTransaction | ✅ | ❌ | ✅ | ✅ | ✅ |
debug_getRawTransactions | ✅ | ✅ | ✅ | ✅ | ✅ |
debug_stateRootWithUpdates | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_traceBlock | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_traceBlockByHash | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_traceBlockByNumber | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_traceCall | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_traceCallMany | ✅ | ✅ | ✅ | ❌ | ❌ |
debug_traceTransaction | ✅ | ✅ | ✅ | ❌ | ❌ |
eth namespace
| RPC / Segment | Sender Recovery | Transaction Lookup | Receipts | Account History | Storage History |
|---|---|---|---|---|---|
eth_accounts | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_blockNumber | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_call | ✅ | ✅ | ✅ | ❌ | ❌ |
eth_chainId | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_createAccessList | ✅ | ✅ | ✅ | ❌ | ❌ |
eth_estimateGas | ✅ | ✅ | ✅ | ❌ | ❌ |
eth_feeHistory | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_gasPrice | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getBalance | ✅ | ✅ | ✅ | ❌ | ✅ |
eth_getBlockByHash | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getBlockByNumber | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getBlockReceipts | ✅ | ✅ | ❌ | ✅ | ✅ |
eth_getBlockTransactionCountByHash | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getBlockTransactionCountByNumber | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getCode | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getFilterChanges | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getFilterLogs | ✅ | ✅ | ❌ | ✅ | ✅ |
eth_getLogs | ✅ | ✅ | ❌ | ✅ | ✅ |
eth_getStorageAt | ✅ | ✅ | ✅ | ✅ | ❌ |
eth_getTransactionByBlockHashAndIndex | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getTransactionByBlockNumberAndIndex | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getTransactionByHash | ✅ | ❌ | ✅ | ✅ | ✅ |
eth_getTransactionCount | ✅ | ✅ | ✅ | ❌ | ✅ |
eth_getTransactionReceipt | ✅ | ❌ | ❌ | ✅ | ✅ |
eth_getUncleByBlockHashAndIndex | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getUncleByBlockNumberAndIndex | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getUncleCountByBlockHash | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_getUncleCountByBlockNumber | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_maxPriorityFeePerGas | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_mining | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_newBlockFilter | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_newFilter | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_newPendingTransactionFilter | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_protocolVersion | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_sendRawTransaction | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_sendTransaction | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_sign | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_signTransaction | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_signTypedData | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_subscribe | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_syncing | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_uninstallFilter | ✅ | ✅ | ✅ | ✅ | ✅ |
eth_unsubscribe | ✅ | ✅ | ✅ | ✅ | ✅ |
net namespace
| RPC / Segment | Sender Recovery | Transaction Lookup | Receipts | Account History | Storage History |
|---|---|---|---|---|---|
net_listening | ✅ | ✅ | ✅ | ✅ | ✅ |
net_peerCount | ✅ | ✅ | ✅ | ✅ | ✅ |
net_version | ✅ | ✅ | ✅ | ✅ | ✅ |
trace namespace
| RPC / Segment | Sender Recovery | Transaction Lookup | Receipts | Account History | Storage History |
|---|---|---|---|---|---|
trace_block | ✅ | ✅ | ✅ | ❌ | ❌ |
trace_blockOpcodeGas | ✅ | ✅ | ✅ | ❌ | ❌ |
trace_call | ✅ | ✅ | ✅ | ❌ | ❌ |
trace_callMany | ✅ | ✅ | ✅ | ❌ | ❌ |
trace_filter | ✅ | ✅ | ✅ | ❌ | ❌ |
trace_get | ✅ | ❌ | ✅ | ❌ | ❌ |
trace_rawTransaction | ✅ | ✅ | ✅ | ❌ | ❌ |
trace_replayBlockTransactions | ✅ | ✅ | ✅ | ❌ | ❌ |
trace_replayTransaction | ✅ | ❌ | ✅ | ❌ | ❌ |
trace_transaction | ✅ | ❌ | ✅ | ❌ | ❌ |
trace_transactionOpcodeGas | ✅ | ❌ | ✅ | ❌ | ❌ |
txpool namespace
| RPC / Segment | Sender Recovery | Transaction Lookup | Receipts | Account History | Storage History |
|---|---|---|---|---|---|
txpool_content | ✅ | ✅ | ✅ | ✅ | ✅ |
txpool_contentFrom | ✅ | ✅ | ✅ | ✅ | ✅ |
txpool_inspect | ✅ | ✅ | ✅ | ✅ | ✅ |
txpool_status | ✅ | ✅ | ✅ | ✅ | ✅ |
