# Snapshot & State sync

## Snapshot

```bash
sudo systemctl stop soarchaind

cp $HOME/.soarchain/data/priv_validator_state.json $HOME/.soarchain/priv_validator_state.json.backup
soarchaind tendermint unsafe-reset-all --home ~/.soarchain/ --keep-addr-book

curl https://ss.syanodes.my.id/soarchain/ss-soarchain.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.soarchain

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

sudo systemctl restart soarchaind && sudo journalctl -fu soarchaind -o cat
```

## State Sync

```bash
sudo systemctl stop soarchaind

cp $HOME/.soarchain/data/priv_validator_state.json $HOME/.soarchain/priv_validator_state.json.backup
soarchaind tendermint unsafe-reset-all --home ~/.soarchain/ --keep-addr-book

PEERS="9d60c08fea34e062f662ec2238e01323f8a55eb9@95.217.150.122:26656,b2fcd16e1dfb5f24b90c1f3151419bd8e5dbb099@131.153.164.17:26656,b12be774f0ae7698d1fdc46680a749c93c89e45b@194.45.36.87:26656,d470dbf348ab7f12326d4e4095502ccc169f9907@66.42.65.92:26656,0810665f8f7aa39ae607835ebfc6418292b8e2ba@77.247.178.83:46656,56c1faecf7218cc773d975128e5c7f786d70d4ed@136.38.55.33:15026,9708c91a018f37b892505eb12f41a9eb7e2773a5@34.141.178.93:26656,bc9244d69f14e73fa9e0c1d80e8a90e276b0ea3d@65.108.233.28:26656,43d612a6b71148f42543a1056ac9a1af7ab2b021@85.237.193.116:26656,ae60b8ae5383500854e74a37e657eaa03bc82452@160.202.128.199:56226"
SNAP_RPC="https://soarchain-t-rpc.syanodes.my.id:443"

sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.soarchain/config/config.toml 

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

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH && sleep 2

sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ;
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ;
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ;
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"| ;
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.soarchain/config/config.toml

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

sudo systemctl restart soarchaind && sudo journalctl -fu soarchaind -o cat
```
