Skip to content

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).

  1. 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 the docker-compose.yml file for the client you intend to use.
      • For Geth: mkdir ./geth-data
      • For Reth: mkdir ./reth-data
    • 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.
  2. 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 the node directory.

    NetworkClientSnapshot TypeDownload Command (wget ...)
    TestnetGethFullhttps://sepolia-full-snapshots.base.org/$(curl https://sepolia-full-snapshots.base.org/latest)
    TestnetRethArchivehttps://sepolia-reth-archive-snapshots.base.org/$(curl https://sepolia-reth-archive-snapshots.base.org/latest)
    MainnetGethFullhttps://mainnet-full-snapshots.base.org/$(curl https://mainnet-full-snapshots.base.org/latest)
    MainnetRethArchivehttps://mainnet-reth-archive-snapshots.base.org/$(curl https://mainnet-reth-archive-snapshots.base.org/latest)
  3. Extract Snapshot: Untar the downloaded snapshot archive. Replace <snapshot-filename.tar.gz> with the actual downloaded filename.

    tar -xzvf <snapshot-filename.tar.gz>
  4. Move Data: The extraction process will likely create a directory (e.g., geth or similar, check the output of the tar 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
    • 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.
  5. 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
  6. 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.