🤔 Need blocks and a snapshot? Use the bundle API to always get the latest compatible backups.
These snapshots are platform agnostic and taken from our own cluster of API nodes.
They can be used with or without a blocks log.
This is a great way to get synced to the network within a minute, you can see the original notes on Github. There are a couple of points to be aware of:
- The snapshots contain all the consensus state required to bootstrap a node at a given head block, so there's no need for long replays to build
statefrom the blocks log.
- This sync method is intended for producing nodes, however if you don't intend on supporting history data, it will work perfectly for API/full nodes.
What's The Catch?
After being accustomed to long replay times via Block backups, the near instant snapshot sync seems like magic. But the magic comes at a cost:
- If you want to support retrospective chain data via the RPC API or P2P, then you must provide a blocks log that contains blocks up to the snapshotted block. The blocks log may contain additional blocks, they will be applied as part of the startup process.
- These snapshots do not support any plugins, so this doesn't support history data.
How To Use
First, you must do some preparation. Remove the
state directory if it exists, then you need to make a decision. If you want to support old chain data, then you must have a
blocks directory with a block log containing data up to, or past the head block referenced in the snapshot.
Download the snapshot, uncompress it and start
nodeos with the
snapshot flag pointing to the absolute location of the fresh snapshot.
You can use the one-liner in the example to always download the latest snapshot. We also have a Snapshots API which orders the archives in chronological order, newest first.
# Move to your local bos directory, removing the existing state directory (if relevant) cd /opt/bos rm -rf state # Download the latest snapshot wget $(wget --quiet "https://eosnode.tools/api/snapshots?network=bos&limit=1" -O- | jq -r '.data.s3') -O snapshot.tar.gz # Uncompress tar xvzf snapshot.tar.gz # Start the chain and sync from the provided snapshot ./start.sh --snapshot "$(ls -t snapshots/*.bin | head -n1)" # Tail the logs to watch the sync in all its glory tail -f log.txt