Restore from a snapshot
Restore a Nolus node from the weekly pruned pirin-1 snapshot or a community provider's snapshot instead of replaying the chain from genesis.
A snapshot is a compressed copy of a node's data and wasm directories at a
recent height. Restoring one lets a new node join the network in the time it
takes to download and unpack it, instead of replaying every block since
genesis, and it also repairs a node whose database is damaged.
Nolus snapshots
Nolus publishes a pruned snapshot of the chain every week, with the following details:
| Index | snapshots.nolus.network/backup/snapshots/ |
| Chain | pirin-1, pruned |
| Schedule | Weekly; the latest two are kept |
| File name | pirin-1_<YYYYMMDD>_<height>.tar.lz4, for example pirin-1_20261019_27709784.tar.lz4 |
| Size | About 11 GB compressed |
| Contents | data/ and wasm/ at the archive root |
Because the snapshot is pruned, it suits full nodes and validators but not archive nodes.
Community snapshots
Community providers publish their own pirin-1 snapshots as well, for example
Polkachu. Each provider has
its own file format, so follow the provider's instructions and check the
source before you restore.
Restore a snapshot
A restore needs lz4, which sudo apt-get install -y lz4 installs, and the
release binary for the version the chain runs today, as described in
Install nolusd. With both in place, replace the
node's state as follows:
-
Stop the node:
sudo systemctl stop cosmovisor # or stop your nolusd process -
Pick the newest
pirin-1_*.tar.lz4file in the index and download it:SNAPSHOT=pirin-1_20261019_27709784.tar.lz4 # replace with the newest file curl -LO https://snapshots.nolus.network/backup/snapshots/$SNAPSHOTSet
SNAPSHOTto the name of the newest file rather than the example. -
Back up the validator signing state, a step that prevents double signing on a validator and is harmless on other nodes:
cp ~/.nolus/data/priv_validator_state.json ~/.nolus/priv_validator_state.json -
Reset the node state while keeping the address book:
nolusd comet unsafe-reset-all --home $HOME/.nolus --keep-addr-book -
Remove the old
dataandwasmdirectories:rm -rf ~/.nolus/data ~/.nolus/wasm -
Unpack the snapshot into the home directory:
lz4 -dc $SNAPSHOT | tar -xf - -C $HOME/.nolus -
Restore the signing state:
cp ~/.nolus/priv_validator_state.json ~/.nolus/data/priv_validator_state.json -
Start the node with
sudo systemctl start cosmovisorornolusd start, then check the sync status. Yourgenesis.jsonand seed settings in~/.nolus/configstay as they were.
Once the node is running, you can delete the downloaded .tar.lz4 file. On a
new node, continue with Cosmovisor if you
want the node to switch binaries on its own at chain upgrades, or go straight
to Run the node.
Configure the node
Initialize the nolusd home directory, fetch the pirin-1 genesis, add chain-registry seeds and live peers, then set gas price and pruning.
Cosmovisor
Run nolusd under Cosmovisor so the node switches to the new release binary at each pirin-1 upgrade height, with optional automatic download.