Nolus Snapshots
Снэпшоты позволяют быстро синхронизировать ноду с актуальной высотой и избежать долгой синхронизации с самого начала. Кроме того, они помогают экономить место на ноде, не загружая события блокчейна до высоты, на которой был создан снэпшот. В данном гайде рассмотрим загрузку снепшота для ноды Nolus.
cp $HOME/.nolus/data/priv_validator_state.json $HOME/.nolus/priv_validator_state.json.backuprm -rf $HOME/.nolus/data
Далее необходимо поставить ПО и настроить persistent_peers
peers="64d33df9fe572a1361ed0b405743fd4e1747f2ea@80.241.219.135:26656" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" ~/.nolus/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
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
# nolusd unsafe-reset-all
# nolusd tendermint unsafe-reset-all
Удаляем каталог .data и создаем пустой каталог
Распаковываем архив без вложенной папки
Проверяем, что состояние валидатора на начальном этапе
cd && cat .nolus/data/priv_validator_state.json
{
"height": "0",
"round": 0,
"step": 0
}