Chain ID: injective-1 | Current Node Version: v1.11.5
We take one node snapshot every day. We then delete all the previous snapshots to free up the space on the file server.
The snapshot is designed for node opeartors to run an efficient validator service on Injective chain. To make the snapshot as small as possible while still viable as a validator, we use the following setting to save on the disk space. We suggest you make the same adjustment on your node too. Please notice that your node will have very limited functionality beyond signing blocks with the efficient disk space utilization. For example, your node will not be able to serve as a RPC endpoint (which is not suggested to run on a validator node anyway).
Since we periodically state-sync our snapshot nodes, you might notice that sometimes the size of our snapshot is surprisingly small.
# Prune Type pruning = "custom" # Prune Strategy pruning-keep-recent = "100" pruning-keep-every = "0" pruning-interval = "10"
indexer = "null"
Install lz4 if needed
sudo apt update sudo apt install snapd -y sudo snap install lz4
Download the snapshot
wget -O injective_47104414.tar.lz4 https://snapshots.polkachu.com/snapshots/injective/injective_47104414.tar.lz4 --inet4-only
Stop your node
sudo service injective stop
Reset your node. This will erase your node
database. If you are
already running validator, be sure you backed up your
prior to running the the command.
The command does not wipe the file. However, you
should have a backup of it already in a safe location.
WARNING: If you use this snapshot on a validator node
during a chain halt, make sure you back up
priv_validator_state.json and then replace it after the
snapshot is extracted but before you start the node process. This is
very important in order to avoid double-sign. When in doubt, reach out
to the project team.
# Back up priv_validator_state.json if needed cp ~/.injectived/data/priv_validator_state.json ~/.injectived/priv_validator_state.json # On some tendermint chains injectived unsafe-reset-all # On other tendermint chains injectived tendermint unsafe-reset-all --home $HOME/.injectived --keep-addr-book
Since Injective has enabled wasm and its
wasm folder is outside the
our snapshot also includes a
wasm folder. Notice that we
have taken out the
cache sub-folder from the snapshot to ensure the
wasm folder is compatible for all CPUs.
To sure that you have a
clean start, please delete your
wasm folder manually
unsafe-reset-all does not reset the
rm -r ~/.injectived/wasm
Decompress the snapshot to your database location. You database location
will be something to the effect of
depending on your node implemention.
lz4 -c -d injective_47104414.tar.lz4 | tar -x -C $HOME/.injectived
IMPORTANT: If you run a validator node and the chain is
in halt, it is time to replace the
priv_validator_state.json file that you have backed up.
# Replace with the backed-up priv_validator_state.json cp ~/.injectived/priv_validator_state.json ~/.injectived/data/priv_validator_state.json
Now double-check the
folder to ensure that it is not empty (it is okay for Osmosis wasm
folder to be empty). If it is empty, it means that our snapshot
script has a bug. Please
contact us via Discord Server.
If everything is good, now restart your node
sudo service injective start
Remove downloaded snapshot to free up space
rm -v injective_47104414.tar.lz4
Make sure that your node is running
sudo service injective status sudo journalctl -u injective -f
ADVANCED ROUTE: The above solution requires you to download the compressed file, uncompressed it and then delete the original file. This requires extra storage space on your server. You can run the following combo command to stream the snapshot into your database location. For advanced users only:
curl -o - -L https://snapshots.polkachu.com/snapshots/injective/injective_47104414.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.injectived
ALTERNATIVE ROUTE: We also have Injective state-sync service to help you bootstrap a node.