Snapshots? WHAT?
Благодаря снэпшотам можно быстро синхронизировать ноду до актуальной высоты и не ждать долгое время при синхронизации с нуля. Помимо этого снэпшоты позволяют также экономить место на ноде, не загружая события блокчейна до высоты снэпшота. Для того, чтобы подготовить снэпшот необходимо 2 сервера - синхронизированный сервер донор и новый сервер
НА СЕРВЕРЕ ДОНОРЕ на примере defund
Открываем доступ RPC nano /root/.defund/config/config.toml
laddr = "tcp://0.0.0.0:26657"
Открываем app.toml и настраиваем снэпшоты nano $HOME/.defund/config/app.toml
# при настроенном прунинге 100/1000/10 snapshot-interval ставим не меньше 1000 snapshot-interval = 1000 snapshot-keep-recent = 2
Собираем данные (ID ноды +ip +порт)
defundd status # id":"f7aa6ffae725764f473b0d5627a664d3e3cd6164","listen_addr":"65.144.108.99:26656" # Получаем примерно такое [email protected]:26656
Если нода работает перезагружаем ее
sudo systemctl restart defundd && sudo journalctl -u defundd -f -o cat
Смотрим свой IP echo http://$(wget -qO- eth0.me):26657/
В браузере проверяем открылся ли доступ http://65.144.108.99:26657/
На новом сервере
Ставим ПО и начинаем настраиваем persistent_peers$HOME/.defund/config/config.toml
peers="[email protected]:26656" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" ~/.defund/config/config.toml # persistent_peers = "[email protected]:26656"
SNAP_RPC=65.144.108.99:26657
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
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\"\"|" ~/.defund/config/config.toml
defundd tendermint unsafe-reset-all defundd start
# defundd unsafe-reset-all # defundd tendermint unsafe-reset-all
Если нода не видит снап и не цепляется с ошибкой err="auth failure: secret conn failed, то перезагружаем донора
После того, как нода синхронизировалась останавливаем ее, ставим сервисник и перезапускаем.