Hosted by dltsecure.net · Mainnet 03:00 UTC · Testnet 04:00 UTC
Choose a tier based on how far behind chain head you are willing to start syncing from:
| Tier | Description | Download |
|---|---|---|
| latest | Most recent snapshot, refreshed daily | latest.tar.gz |
| weekly | Refreshed every ~7 days | weekly.tar.gz |
| monthly | Refreshed every ~30 days | monthly.tar.gz |
| Tier | Description | Download |
|---|---|---|
| latest | Most recent testnet snapshot, refreshed daily | latest-testnet.tar.gz |
| weekly | Refreshed every ~7 days | weekly-testnet.tar.gz |
| monthly | Refreshed every ~30 days | monthly-testnet.tar.gz |
Safety: only delete geth/chaindata. Never delete your keystore. Confirm the Docker volume name with docker volume inspect before running rm -rf.
Disk space: archives are ~11 GB compressed. Allow extra headroom for extraction (~30 GB total recommended).
The archive contains only geth/chaindata/ contents (flat files like CURRENT, MANIFEST-*, *.ldb). Extract to a staging directory first, verify the layout, then copy into chaindata.
# 0. Verify snapshot metadata before touching your QGov Validator
curl -s https://snapshots.dltsecure.net/latest.meta
# 1. Download archive to a staging directory
mkdir -p ~/snapshot-restore && cd ~/snapshot-restore
curl -L -o latest.tar.gz https://snapshots.dltsecure.net/latest.tar.gz
ls -lh latest.tar.gz
# 2. Stop your QGov Validator
cd /home/myusername/my-validator-node
docker compose down
# 3. Find your chaindata path (replace volume name with yours)
docker volume inspect my-validator-node_my-validator-data \
--format '{{.Mountpoint}}/geth/chaindata'
# 4. Remove old chaindata only
sudo rm -rf /var/lib/docker/volumes/my-validator-node_my-validator-data/_data/geth/chaindata
sudo mkdir -p /var/lib/docker/volumes/my-validator-node_my-validator-data/_data/geth/chaindata
# 5. Extract to staging and verify layout (flat files, no nested geth/ folder)
mkdir -p ~/snapshot-restore/extracted
tar xzf ~/snapshot-restore/latest.tar.gz -C ~/snapshot-restore/extracted
ls ~/snapshot-restore/extracted | head
# 6. Copy extracted data into chaindata
sudo cp -a ~/snapshot-restore/extracted/. \
/var/lib/docker/volumes/my-validator-node_my-validator-data/_data/geth/chaindata/
# 7. Restart and verify sync
cd /home/myusername/my-validator-node
docker compose up -d
docker compose logs -f --tail 50
# 0. Verify snapshot metadata
curl -s https://snapshots.dltsecure.net/latest.meta
# 1. Download
mkdir -p ~/snapshot-restore && cd ~/snapshot-restore
curl -L -o latest.tar.gz https://snapshots.dltsecure.net/latest.tar.gz
# 2. Stop QGov Validator
cd /home/myusername/my-validator-node
docker compose down
# 3. Replace chaindata only
rm -rf validator-node-data/geth/chaindata
mkdir -p validator-node-data/geth/chaindata
# 4. Extract to staging, verify, then copy
mkdir -p ~/snapshot-restore/extracted
tar xzf ~/snapshot-restore/latest.tar.gz -C ~/snapshot-restore/extracted
ls ~/snapshot-restore/extracted | head
cp -a ~/snapshot-restore/extracted/. validator-node-data/geth/chaindata/
# 5. Restart and verify
docker compose up -d
docker compose logs -f --tail 50
For experienced users. Harder to verify download size; an interrupted stream leaves partial chaindata.
cd /var/lib/docker/volumes/my-validator-node_my-validator-data/_data/geth/chaindata
sudo curl -L https://snapshots.dltsecure.net/latest.tar.gz | sudo tar xzf -
Safety: only delete geth/chaindata inside the testnet volume. Do not touch mainnet QGov Validator volumes.
# 0. Verify snapshot metadata
curl -s https://snapshots.dltsecure.net/latest-testnet.meta
# 1. Download
mkdir -p ~/snapshot-restore && cd ~/snapshot-restore
curl -L -o latest-testnet.tar.gz https://snapshots.dltsecure.net/latest-testnet.tar.gz
ls -lh latest-testnet.tar.gz
# 2. Stop testnet node
cd /home/myusername/my-testnet-node
docker compose stop my-testnet-service
# 3. Find chaindata path
docker volume inspect my-testnet-node_my-testnet-data \
--format '{{.Mountpoint}}/geth/chaindata'
# 4. Remove old chaindata only
sudo rm -rf /var/lib/docker/volumes/my-testnet-node_my-testnet-data/_data/geth/chaindata
sudo mkdir -p /var/lib/docker/volumes/my-testnet-node_my-testnet-data/_data/geth/chaindata
# 5. Extract to staging and verify layout
mkdir -p ~/snapshot-restore/extracted
tar xzf ~/snapshot-restore/latest-testnet.tar.gz -C ~/snapshot-restore/extracted
ls ~/snapshot-restore/extracted | head
# 6. Copy into chaindata
sudo cp -a ~/snapshot-restore/extracted/. \
/var/lib/docker/volumes/my-testnet-node_my-testnet-data/_data/geth/chaindata/
# 7. Restart and verify
cd /home/myusername/my-testnet-node
docker compose up -d my-testnet-service
docker compose logs -f --tail 50 my-testnet-service
cd /var/lib/docker/volumes/my-testnet-node_my-testnet-data/_data/geth/chaindata
sudo curl -L https://snapshots.dltsecure.net/latest-testnet.tar.gz | sudo tar xzf -
Each .meta file lists block height, size, and creation time. Check before downloading.
# Mainnet
curl -s https://snapshots.dltsecure.net/latest.meta
curl -s https://snapshots.dltsecure.net/weekly.meta
curl -s https://snapshots.dltsecure.net/monthly.meta
# Testnet
curl -s https://snapshots.dltsecure.net/latest-testnet.meta
curl -s https://snapshots.dltsecure.net/weekly-testnet.meta
curl -s https://snapshots.dltsecure.net/monthly-testnet.meta
Docker Compose names volumes as {project}_{volume}, where the project name comes from your compose directory (e.g. my-validator-node).
List volumes and inspect the one attached to your QGov Validator:
docker volume ls
docker volume inspect my-validator-node_my-validator-data \
--format '{{.Mountpoint}}/geth/chaindata'
Chaindata is always at …/geth/chaindata inside the volume. If you use a bind mount instead of a named volume, chaindata is typically validator-node-data/geth/chaindata relative to your compose directory.
Yes — see the Advanced — stream extract section above. Piping curl | tar directly into chaindata saves disk space because you skip the intermediate file.
Trade-offs: you cannot easily verify the download size before extracting, and an interrupted connection leaves partial chaindata that may require you to delete and start over. The recommended approach is to download first, check the .meta file, extract to a staging folder, verify the layout, then copy.
Snapshots are a convenience shortcut, not a replacement for syncing from genesis. You are trusting the snapshot provider to serve an accurate copy of chain state at a given block height.
In a fully decentralized network, every node independently verifies blocks from the genesis block onward. When you restore from a snapshot, you skip that history and rely on the node to validate new blocks going forward. A malicious or corrupted snapshot could theoretically give you an invalid state.
Mitigations: use snapshots from a provider you trust, check the .meta block height, and confirm your node syncs and reaches the same chain head as other nodes on the QGov Blockchain network. For maximum assurance, sync from genesis — it just takes much longer.
You can use a temporary container to access a named volume, for example:
docker run --rm -v my-validator-node_my-validator-data:/data alpine \
sh -c 'rm -rf /data/geth/chaindata && mkdir -p /data/geth/chaindata'
This avoids navigating /var/lib/docker/volumes/ directly, but it is less transparent — you cannot easily inspect files before or after. We recommend the host-path approach in the Quick Start: locate the volume with docker volume inspect, delete only geth/chaindata, extract to a staging directory you control, verify the layout, then cp into place.
Delete only the contents of geth/chaindata. This is the blockchain database and can be fully replaced by a snapshot.
Never delete your keystore or key files — those contain your validator private keys. On most setups the keystore is bind-mounted separately from the chaindata volume. Deleting the wrong Docker volume can permanently destroy your keys and your ability to validate.
Always run docker volume inspect and double-check the volume name before any rm -rf.
Mainnet archives are approximately 11 GB compressed. Extraction expands the data to roughly 17 GB. If you use the recommended download-then-extract workflow, you temporarily need space for both the archive and the extracted copy — about 25–30 GB free is a comfortable minimum.
After a successful restore you can delete the archive and staging directory. The stream-extract method needs less temporary space but no room for verification.