Injective Node Snapshot

Chain ID: injective-1 | Current Node Version: v1.12.0

Latest
Block Height
Size
Timestamp
Download
69458854 24 GB 1 hour ago injective_69458854.tar.lz4
69447876 24 GB 3 hours ago injective_69447876.tar.lz4
69425845 24 GB 7 hours ago injective_69425845.tar.lz4

Our Injective Snapshot Server Setup

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 node 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. It might be helpful for you to sync with our snapshot periodically because Tendermint chain storage grows over time regardless of the pruning. Since we periodically state-sync our snapshot nodes, you might notice that sometimes the size of our snapshot is surprisingly small.

app.toml

# Prune Type
pruning = "custom"

# Prune Strategy
pruning-keep-recent = "100"
pruning-keep-every = "0"
pruning-interval = "10"

config.toml

indexer = "null"

How To Process Injective Snapshot

Install lz4 if needed

sudo apt update
sudo apt install snapd -y
sudo snap install lz4

Download the snapshot

wget -O injective_69458854.tar.lz4 https://snapshots.polkachu.com/snapshots/injective/injective_69458854.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 priv_validator_key.json 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 data folder, 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 because unsafe-reset-all does not reset the wasm folder.

rm -r ~/.injectived/wasm

Decompress the snapshot to your database location. You database location will be something to the effect of ~/.injectived depending on your node implemention.

lz4 -c -d injective_69458854.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 ~/.injectived/wasm folder to ensure that it is not 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_69458854.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_69458854.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.