Skip to main content

State Sync

State Sync allows new nodes to join a blockchain network by downloading a recent snapshot of the application state instead of processing all historical blocks. This approach is typically faster and requires less data, as the application state is usually more concise than the entire block history.

📘How to Use

Click on any RPC to paste it into the code block.

sudo systemctl stop bandd

cp $HOME/.band/data/priv_validator_state.json $HOME/.band/priv_validator_state.json.backup
bandd tendermint unsafe-reset-all --home $HOME/.band --keep-addr-book

CUSTOM_RPC="https://rpc.laozi1.bandchain.org:80"

LATEST_HEIGHT=$(curl -s $CUSTOM_RPC/block | jq -r .result.block.header.height)
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1500))
TRUST_HASH=$(curl -s "$CUSTOM_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i 's|^enable *=.*|enable = true|' $HOME/.band/config/config.toml
sed -i 's|^rpc_servers *=.*|rpc_servers = "'$CUSTOM_RPC,$CUSTOM_RPC'"|' $HOME/.band/config/config.toml
sed -i 's|^trust_height *=.*|trust_height = '$BLOCK_HEIGHT'|' $HOME/.band/config/config.toml
sed -i 's|^trust_hash *=.*|trust_hash = "'$TRUST_HASH'"|' $HOME/.band/config/config.toml

mv $HOME/.band/priv_validator_state.json.backup $HOME/.band/data/priv_validator_state.json

sudo systemctl restart bandd
sudo journalctl -u bandd -f -o cat