Storage V2
Reth uses the V2 hot/cold storage layout by default for new databases. This layout routes history indices and transaction hash lookups to RocksDB, writes account and storage changesets to static files, and avoids the legacy plain state tables.
For normal node operation, you do not need to pass --storage.v2; the default
is already true.
Defaults
- New databases initialize with storage V2 by default.
- Existing databases keep the storage mode persisted in their metadata. The
--storage.v2flag does not rewrite an initialized data directory. - Legacy V1 storage can still be requested for a new database with
--storage.v2=false. - Existing V1 databases can be migrated with
reth db migrate-v2, restored from a V2 snapshot, or resynced from scratch.
Disk savings
Measured on disk at block 24,396,823 on Ethereum mainnet:
| Node Type | Legacy V1 storage | V2 storage | Savings |
|---|---|---|---|
| Full | 1.46 TB | 1.02 TB | -30% |
| Minimal | 449 GB | 224 GB | -50% |
| Archive | 2.99 TB | 2.31 TB | -23% |
Snapshot download sizes are compressed and change with each published snapshot.
For current download sizes, use snapshots.reth.rs
or reth download --list.
Quick start
Fresh sync
Start Reth normally. A new data directory uses storage V2 automatically:
reth node \
--authrpc.jwtsecret /path/to/secretCombine storage V2 with node modes and RPC flags as usual:
reth node \
--full \
--http --http.api eth,trace \
--authrpc.jwtsecret /path/to/secretUse --minimal when disk usage matters more than
retaining older historical RPC data:
reth node \
--minimal \
--authrpc.jwtsecret /path/to/secretUsing snapshots
To avoid syncing from genesis, download a pre-built snapshot from
snapshots.reth.rs or the
reth download command:
reth download -y
reth node \
--authrpc.jwtsecret /path/to/secretOperational notes
- Storage mode is selected when a database is initialized. After that, Reth reads the mode from database metadata.
- If you need to opt out for a new database, pass
--storage.v2=falsebefore the first run. - Storage V2 and pruning are separate controls: storage V2 changes where data is stored, while pruning decides how much historical data is retained.
Further reading
- Snapshots - start from public modular snapshots
- Minimal Storage Mode - run Reth with the smallest built-in storage profile
- Pruning & Node Modes - choose archive, full, minimal, or custom pruning
- Configuration - general node configuration reference
reth nodeCLI reference - current storage and pruning flags
