Snapshots
Using a snapshot significantly reduces the initial time required to sync a Base node. Snapshots are updated regularly.
If you're a prospective or current Base node operator, you can restore from a snapshot to speed up your initial sync. Follow the steps below carefully.
Restoring from Snapshot
These steps assume you are in the cloned node
directory (the one containing docker-compose.yml
).
-
Prepare Data Directory:
- Before running Docker for the first time, create the data directory on your host machine that will be mapped into the Docker container. This directory must match the
volumes
mapping in thedocker-compose.yml
file for the client you intend to use.- For Geth:
mkdir ./geth-data
- For Reth:
mkdir ./reth-data
- For Geth:
- If you have previously run the node and have an existing data directory, stop the node (
docker compose down
), remove the contents of the existing directory (e.g.,rm -rf ./geth-data/*
), and proceed.
- Before running Docker for the first time, create the data directory on your host machine that will be mapped into the Docker container. This directory must match the
-
Download Snapshot: Choose the appropriate snapshot for your network and client from the table below. Use
wget
or a similar tool to download it into thenode
directory.Network Client Snapshot Type Download Command ( wget ...
)Testnet Geth Full https://sepolia-full-snapshots.base.org/$(curl https://sepolia-full-snapshots.base.org/latest)
Testnet Reth Archive https://sepolia-reth-archive-snapshots.base.org/$(curl https://sepolia-reth-archive-snapshots.base.org/latest)
Mainnet Geth Full https://mainnet-full-snapshots.base.org/$(curl https://mainnet-full-snapshots.base.org/latest)
Mainnet Reth Archive https://mainnet-reth-archive-snapshots.base.org/$(curl https://mainnet-reth-archive-snapshots.base.org/latest)
-
Extract Snapshot: Untar the downloaded snapshot archive. Replace
<snapshot-filename.tar.gz>
with the actual downloaded filename.tar -xzvf <snapshot-filename.tar.gz>
-
Move Data: The extraction process will likely create a directory (e.g.,
geth
or similar, check the output of thetar
command).- Move the contents of this extracted directory into the data directory you created in Step 1.
- Example (if archive extracted to a
geth
folder):# For Geth mv ./geth/* ./geth-data/ rm -rf ./geth # Clean up empty extracted folder
- Example (if archive extracted to a
reth
folder - verify actual folder name):# For Reth mv ./reth/* ./reth-data/ rm -rf ./reth # Clean up empty extracted folder
- Example (if archive extracted to a
- The goal is to have the chain data (directories like
chaindata
,nodes
,segments
, etc.) directly inside./geth-data
or./reth-data
, not within an extra subfolder.
- Move the contents of this extracted directory into the data directory you created in Step 1.
-
Start the Node: Now that the snapshot data is in place, start the node using the appropriate command (see the Running a Base Node guide):
# Example for Mainnet Geth docker compose up --build -d
-
Verify and Clean Up: Monitor the node logs (
docker compose logs -f <service_name>
) or use the sync monitoring command to ensure the node starts syncing from the snapshot's block height. Once confirmed, you can safely delete the downloaded snapshot archive (.tar.gz
file) to free up disk space.