Skip to content

Commit 0d139cf

Browse files
committed
docs: add Storage V2 section to v0.4.0 upgrade guide
1 parent 4c1ead3 commit 0d139cf

1 file changed

Lines changed: 27 additions & 3 deletions

File tree

docs/UPGRADE-v0.4.0.md

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,27 @@ The underlying Reth dependency has been upgraded from v1.11.x to v2.0.0. This is
1919

2020
**Action Required:** Rebuild from source. If you have custom code that imports from `reth-primitives`, update imports to `alloy_consensus` or `reth_ethereum_primitives`.
2121

22+
### Storage V2
23+
24+
Reth v2.0.0 introduces **Storage V2**, a new on-disk storage layout that replaces the MDBX-centric model with a tiered architecture (MDBX + RocksDB + Static Files). This delivers ~20x faster block persistence for large blocks.
25+
26+
| | Storage V1 | Storage V2 |
27+
|---|---|---|
28+
| MDBX | Plain state + hashed state | Hashed state only |
29+
| Changesets | In MDBX | In Static Files (append-only) |
30+
| Indices | In MDBX | In RocksDB |
31+
32+
**Compatibility rules:**
33+
34+
- **Existing V1 nodes are unaffected.** The reth v2.0.0 binary still supports Storage V1. Upgrading the binary does not force a migration.
35+
- **V1 and V2 are not interchangeable.** Once a node starts with V2, it cannot switch back to V1, and vice versa.
36+
- **No automatic V1-to-V2 migration.** Switching to V2 requires a full resync from genesis or restoring from a V2 snapshot.
37+
- **V1 is deprecated.** Support will be removed in a future reth release. Plan your migration to V2 accordingly.
38+
39+
**For existing production networks on Storage V1:** No immediate action is required. The ev-reth v0.4.0 binary will continue to run with your existing V1 data directory. When you are ready to migrate to V2, coordinate a maintenance window for a full resync.
40+
41+
**For new networks:** New nodes will use Storage V2 by default. This is the recommended layout going forward.
42+
2243
### Txpool Fallback Restricted to Dev Mode
2344

2445
The payload builder's txpool fallback (pulling pending transactions when Engine API attributes are empty) is now **only enabled in `--dev` mode**.
@@ -139,16 +160,19 @@ Additional test coverage for deploy allowlist edge cases, ensuring consistent en
139160
v0.4.0 is a drop-in replacement for v0.3.0. No chainspec modifications are required.
140161

141162
1. All features from v0.3.0 (EvNode 0x76 transactions, Osaka/EOF, viem client) continue to work unchanged
142-
2. The EIP-2718 decode fix takes effect immediately
143-
3. Txpool fallback is now dev-mode only -- production deployments using Engine API are unaffected
144-
4. New tools (`ev-deployer`, `ev-dev`, sponsor service) are opt-in
163+
2. **Storage V1 nodes continue working as-is.** The binary upgrade does not trigger a database migration. New nodes default to Storage V2
164+
3. The EIP-2718 decode fix takes effect immediately
165+
4. Txpool fallback is now dev-mode only -- production deployments using Engine API are unaffected
166+
5. New tools (`ev-deployer`, `ev-dev`, sponsor service) are opt-in
145167

146168
## Migration Checklist
147169

148170
- [ ] Rebuild from source with reth v2.0.0 dependencies
171+
- [ ] **Storage decision:** Existing V1 nodes continue as-is. New nodes use V2 by default. Plan V1-to-V2 migration (full resync) before V1 support is removed upstream
149172
- [ ] If using custom build scripts: migrate `make` commands to `just`
150173
- [ ] If using custom code that imports `reth-primitives`: update imports
151174
- [ ] If relying on txpool fallback in production: switch to Engine API attributes
175+
- [ ] If using MDBX backup scripts (e.g. `mdbx_copy`): verify they still work for your storage version. V2 nodes also use RocksDB for indices, so backup tooling may need updating
152176
- [ ] Review `EV_TRACE_LEVEL` for your observability setup
153177
- [ ] Test the upgrade on a local/testnet deployment using `ev-dev`
154178
- [ ] Coordinate upgrade timing with network validators/operators

0 commit comments

Comments
 (0)