Used to create data snapshots from ethereum nodes managed by EthPandaOps.
We currently provide data directory snapshots for Ethereum execution clients on the Sepolia and Holesky test networks. These snapshots are updated automatically every 2-3 days.
The data snapshots are packaged into a tar, compressed using zstandard.
What | URL |
---|---|
Snapshot | https://snapshots.ethpandaops.io/{{ network_name }}/{{ client_name }}/latest/snapshot.tar.zst |
Block info | https://snapshots.ethpandaops.io/{{ network_name }}/{{ client_name }}/latest/_snapshot_eth_getBlockByNumber.json |
Client info | https://snapshots.ethpandaops.io/{{ network_name }}/{{ client_name }}/latest/_snapshot_web3_clientVersion.json |
Possible values:
network_name
->holesky
,sepolia
,mainnet
.client_name
->geth
,nethermind
,besu
,erigon
,reth
Check the tables below for all the possible combinations.
Client | Snapshot | Block | Client Version | Args |
---|---|---|---|---|
Besu | 📦 Download | ℹ️ Block | ℹ️ Client | --data-storage-format=BONSAI |
Erigon | 📦 Download | ℹ️ Block | ℹ️ Client | --prune=hrtc |
Geth | 📦 Download | ℹ️ Block | ℹ️ Client | --state.scheme=path --cache.preimages |
Nethermind | 📦 Download | ℹ️ Block | ℹ️ Client | |
Reth | 📦 Download | ℹ️ Block | ℹ️ Client |
Client | Snapshot | Block | Client Version | Args |
---|---|---|---|---|
Besu | 📦 Download | ℹ️ Block | ℹ️ Client | --data-storage-format=BONSAI |
Erigon | 📦 Download | ℹ️ Block | ℹ️ Client | --prune=hrtc |
Geth | 📦 Download | ℹ️ Block | ℹ️ Client | --state.scheme=path --cache.preimages |
Nethermind | 📦 Download | ℹ️ Block | ℹ️ Client | |
Reth | 📦 Download | ℹ️ Block | ℹ️ Client |
Client | Snapshot | Block | Client Version | Args |
---|---|---|---|---|
Besu | 📦 Download | ℹ️ Block | ℹ️ Client | --data-storage-format=BONSAI |
Erigon | 📦 Download | ℹ️ Block | ℹ️ Client | --prune=hrtc |
Geth | 📦 Download | ℹ️ Block | ℹ️ Client | --state.scheme=path --cache.preimages |
Nethermind | 📦 Download | ℹ️ Block | ℹ️ Client | |
Reth | 📦 Download | ℹ️ Block | ℹ️ Client |
Verify when the latest snapshot was taken:
# Check the latest block:
curl -s https://snapshots.ethpandaops.io/sepolia/geth/latest/_snapshot_eth_getBlockByNumber.json
# Or just get the block number:
printf '%d\n' $(curl -s https://snapshots.ethpandaops.io/sepolia/geth/latest/_snapshot_eth_getBlockByNumber.json | jq -r '.result.number')
# Or just the time when it was taken
printf '%d\n' $(curl -s https://snapshots.ethpandaops.io/sepolia/geth/latest/_snapshot_eth_getBlockByNumber.json | jq -r '.result.timestamp') | date
Then, also check which client version was used during the snapshot:
# Get client version. Can be important, depending on the version that you want to run.
curl -s https://snapshots.ethpandaops.io/sepolia/geth/latest/_snapshot_web3_clientVersion.json | jq -r '.result'
If you're happy with the version and the timestamp of the most recent snapshot, you can download it like:
# Download the whole snapshot
curl -O https://snapshots.ethpandaops.io/sepolia/geth/latest/snapshot.tar.zst
# Or... download and untar at the same time. Safes you disk space, so you don't have to store the full compressed file.
curl -s -L https://snapshots.ethpandaops.io/sepolia/geth/latest/snapshot.tar.zst | tar -I zstd -xvf - -C $PATH_TO_YOUR_GETH_DATA_DIR
# Or.. use a docker container with all the tools you need (curl, zstd, tar) and untar it on the fly
docker run --rm -it -v $PATH_TO_YOUR_GETH_DATA_DIR:/data --entrypoint "/bin/sh" alpine -c "apk add --no-cache curl tar zstd && curl -s -L https://snapshots.ethpandaops.io/sepolia/geth/latest/snapshot.tar.zst | tar -I zstd -xvf - -C /data"