Do this step before you start the clients. If you already started to sync, do these steps first:
stop both clients, delete the chain data, then restore the snapshot.
Reth storage v1 vs v2
Bera-Reth, Berachain’s execution client, is built on the upstream Reth project. Reth v2 added storage v2, a new on-disk layout that splits data by how the node uses it instead of holding everything in one database. Storage v2 uses less disk (~20%), performs faster, and is the default for new installations. See Reth’s storage documentation. Berachain’s official snapshots use storage v2, for both Mainnet and Bepolia. Some community node operators still publish storage v1 snapshots; see Awesome Berachain Validators. To check which layout a datadir already uses, runbera-reth db --datadir <dir> settings.
Migrating from storage v1 to v2
Restore a storage v2 snapshot into a new, empty datadir: the same procedure as a new node setup. This is the recommended path, and the steps below cover it. This procedure only affects the execution layer. Beacon Kit storage format has not changed. Your consensus-layer data and your validator keys are safe during this procedure. Do these steps to move an existing node to storage v2:- Stop the execution client and Beacon-Kit.
- Delete or preserve the old Bera-Reth datadir (example:
var/reth/data). A storage v1 datadir and a storage v2 datadir are not compatible with each other. Keep a copy of the old datadir only if you want a way back to storage v1. - Restore a snapshot into the empty datadir; see Restoring an official snapshot, below.
- You do not need to change any configuration or startup options. Restart the Bera-Reth and Beacon-Kit.
bera-reth download and its options
The bera-reth download command restores an execution-layer datadir from a storage v2 snapshot manifest. This is faster than a full network sync.
After it extracts each file, bera-reth download checks that file against the manifest’s checksum. If a file doesn’t match, it deletes the file and downloads it again. A damaged or incomplete download can’t leave you with a datadir that looks correct but isn’t.
Required:
--chain <mainnet|bepolia>: chooses the network snapshot to download.--datadir <dir>: the target directory. Do not point this at a running node’s data or storage v1 data.--manifest-url <url>: themanifest.jsonURL for the snapshot you want. Copy it from the Mainnet or Bepolia snapshot site. For a third-party snapshot, copy the URL that provider publishes.
--minimal: downloads the smallest working node. It can sync forward from the snapshot’s block. Most operators should use this.--archive: downloads everything in the manifest: full transaction, receipt, and state-history data. This needs far more disk space and download time than--minimal.--full: downloads data matching a full, non-archive node’s default pruning settings. More than--minimaland far less than--archive.
--force: deletes the existingdb,rocksdb,static_files, andreth.tomlunder--datadirfirst. Use this when the target directory already holds different or partial data.--print-plan-json: reads the manifest and prints the download plan, without downloading or writing anything. Safe to run against a real--datadir. Use it to check a manifest URL or estimate the download size before you restore.--download-concurrency <n>: how many downloads run at once (default 8). Raise it on a fast connection; lower it if the source throttles or drops connections.
--minimal doesn’t check files outside it.
Copy <manifest-url> from the snapshot site for your network before you run these.