State sync

State Sync

If you don't want to wait for a long synchronization you can use:

sudo systemctl stop exrpd

cp $HOME/.exrpd/data/priv_validator_state.json $HOME/.exrpd/priv_validator_state.json.backup
exrpd tendermint unsafe-reset-all --home $HOME/.exrpd

peers="7acc7bf700acfc04705538a823dc0ac3567392b5@xrp-testnet-peer.monkeylabs.me:24656,166f7e48e1c756cc663fee5be96ab2bbdb4db970@xrplevm-testnet-peer.itrocket.net:13656,a4f2d903cebf5bc83fcb66fbda0af5cb922a6436@135.181.139.249:47656,de2117667b79d2e89aa9dd7b97b9f34c923692a1@94.130.23.254:30056,b01a918af85f90d38dda24238500fc5573f9145a@207.180.222.90:26656,5998f89c7549ec10672bf16a4d5b90786e856393@195.3.223.73:22656,3445cd5447b3d1993f0c4235a74057a11950f52c@192.3.6.118:26656,2d14b84e5e2f1784b8e942216a330df05cecd137@152.53.49.146:13656,6c5b34685a0c1956bde097914e42bc537f5ca5c7@79.137.70.143:26646,e8b19c2f802327f42da554f099aab959611c3e66@144.76.112.58:19656,72d6ee0a449bcd3d70f7f4807be526a536c45398@88.99.137.138:19656,24b71f58417414fa1bd21c788a0a85a98f49e7f9@162.55.181.91:26656"  
SNAP_RPC="https://xrp-testnet-rpc.monkeylabs.me:443"

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

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height);
BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000));
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/.exrpd/config/config.toml

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

sudo systemctl restart exrpd && sudo journalctl -u exrpd -fo cat

Node Sync Status Checker

#!/bin/bash
rpc_port=$(grep -m 1 -oP '^laddr = "\K[^"]+' "$HOME/.exrpd/config/config.toml" | cut -d ':' -f 3)
while true; do
  local_height=$(curl -s localhost:$rpc_port/status | jq -r '.result.sync_info.latest_block_height')
  network_height=$(curl -s https://https://xrp-testnet-rpc.monkeylabs.me/status | jq -r '.result.sync_info.latest_block_height')

  if ! [[ "$local_height" =~ ^[0-9]+$ ]] || ! [[ "$network_height" =~ ^[0-9]+$ ]]; then
    echo -e "\033[1;31mError: Invalid block height data. Retrying...\033[0m"
    sleep 5
    continue
  fi

  blocks_left=$((network_height - local_height))
  if [ "$blocks_left" -lt 0 ]; then
    blocks_left=0
  fi

  echo -e "\033[1;33mNode Height:\033[1;34m $local_height\033[0m \033[1;33m| Network Height:\033[1;36m $network_height\033[0m \033[1;33m| Blocks Left:\033[1;31m $blocks_left\033[0m"

  sleep 5
done

Wasm

Sorry, this project does not support WebAssembly.

Last updated