Skip to content

Choose a network

Height10,748,935 Chain halted Chain IDcrossfi-mainnet-1 Version Explorer (opens in a new tab)

CrossFi state sync

State sync starts a CrossFi node from a recent block that our RPC serves, instead of replaying the chain's history.

Step 1: Stop the node, back up the validator state and reset

sudo service crossfi stop
cp $HOME/.crossfid/data/priv_validator_state.json $HOME/.crossfid/priv_validator_state.json.backup
crossfid tendermint unsafe-reset-all --home $HOME/.crossfid --keep-addr-book

Step 2: Configure state sync

The commands read a trusted height and hash from https://crossfi-rpc.stakerhouse.com, set the peer to sync from and restore the validator state.

SYNC_RPC="https://crossfi-rpc.stakerhouse.com:443"
SYNC_PEER="6f3cbe9e4a3a61f9a6b3f5cefa95ff8b0c858c14@[2607:5300:60:3b14::1]:13256"
LATEST_HEIGHT=$(curl -s $SYNC_RPC/block | jq -r .result.block.header.height)
BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000))
TRUST_HASH=$(curl -s "$SYNC_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

sed -i \
-e "s|^enable *=.*|enable = true|" \
-e "s|^rpc_servers *=.*|rpc_servers = \"$SYNC_RPC,$SYNC_RPC\"|" \
-e "s|^trust_height *=.*|trust_height = $BLOCK_HEIGHT|" \
-e "s|^trust_hash *=.*|trust_hash = \"$TRUST_HASH\"|" \
-e "s|^persistent_peers *=.*|persistent_peers = \"$SYNC_PEER\"|" \
$HOME/.crossfid/config/config.toml

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

Step 3: Start the node and follow the logs

sudo service crossfi start && sudo journalctl -fu crossfi -o cat