Операции восстановления

На этой странице рассмотрены операции, которые необходимы валидаторам и операторам нод в случае проблем с сетью

Существует 3 вещи, для которых необходим бэкап, в случае если вам понадобится восстановить вашу ноду. Проблемы с любой из них могут привести к потери ваших ключей. Также ваш валидатор возможно будет проводить двойную подпись и будет дисквалифицирован.

  • $HOME/.sei/data/priv_validator_state.json – этот файл содержит запись того, в каком раунде консенсуса вы голосовали. Если вы используете чей-то снэпшот, не заменяйте его во избежание двойной подписи. Вы можете запустить

cp $HOME/.sei/data/priv_validator_state.json $HOME/.sei
cat $HOME/.sei/data/priv_validator_state.json -> Save to Lastpass, password manager...etc.
  • $HOME/.sei/config/priv_validator_key.json - этот файл содержит приватный ключ вашего валидатора при помощи которого подписываются блоки. Если вы потеряете его, восстановление цепочки будет намного сложней, так как вы потеряете свое право голосовать навсегда.

cp $HOME/.sei/config/priv_validator_key.json $HOME/.sei
cat $HOME/.sei/data/priv_validator_skey.json -> Save to Lastpass, password manager...etc.
  • Любые ключи. Все, что находится в seid keys list должно быть сохранено (и мнемофраза и ключ). Потеря данной информации приведет к потере ваших средств

seid keys add $NAME -> Save output to Lastpass, password manager...etc.
seid keys export $NAME -> Save output to Lastpass, password manager...etc.

Синхронизация состояния

Вы можете использовать синхронизацию состояния, чтобы восстановить поврежденные данные если вы столкнулись с этой проблемой. Такое может произойти, если вы используете неверную версию seid, когда запускаете цепочку. Инструкции по синхронизации состояния можно найти здесь.

Восстановление из снэпшота

Когда синхронизация состояния не работает или нет доступных провайдеров для проведения синхронизации, вам будет необходимо провести восстановление из файла со снэпшотом. Необходимо соблюдать осторожность, чтобы не потерять любой из файлов, которые были перечислены выше при проведении бэкапа.

Применив снэпшот, выполните необходимые команды, чтобы убедиться, что вы не перезаписали ваш файл priv_validator_state.json

sudo systemctl stop seid
# BACKUP ~/.sei/config/priv_validator_key.json
cp $HOME/.sei/data/priv_validator_state.json $HOME/.sei
seid tendermint unsafe-reset-all --keep-addr-book --home $HOME/.sei
### untar the backup into the sei folder (NOTE: this will vary depending on who provides the snapshot)###
tar -xzf atlantic-sub1-data-backup.tar.gz --directory $HOME/.sei
rm $HOME/.sei/data/priv_validator_state.json
cp $HOME/.sei/priv_validator_state.json $HOME/.sei/data
sudo systemctl start seid
rm $HOME/.sei/priv_validator_state.json

Список возможных проблем

Ниже представлен список вопросов, с которыми столкнулась команда и как они были решены.

Проблема с архитектурой Wasm CPU

Эта проблема появляется, когда вы пытаетесь использовать директорию $HOME/wasm/ которая была сгенерирована машиной с другой архитектурой. Примеры логов приведены ниже:

This issue arises when you try to use a $HOME/wasm/ directory that was generated by a machine with a different architecture. An example of a log you will see is:

Чтобы исправить это, используйте операцию синхронизации состояния для изменения директории wasm/

Ошибки хэшей

Есть два сценария, в соответствии с которым они могут появиться:

  1. Недетерминированные состояния в коде цепочки Sei

  2. Неверный файл seid/genesis

В обоих случаях вам нужно провести восстановление, используя данные другой ноды, и затем продолжить работу с корректной версией seid.

Ошибки при проведении раунда консенсуса

Если сеть недоступна длительное время, появляется проблема, при которой некоторые валидаторы могу отставать от раунда консенсуса. Например:

curl localhost:26657/consensus_state | jq '.round_state.height_vote_set[-1].round'

Это отличается от того, что видят другие валидаторы. Пожалуйста, обратитесь к одному из членов команды Sei для определения правильного раунда консенсуса. Затем смените следующие настройки на 5ms

timeout_propose_delta = "500ms"
timeout_prevote_delta = "500ms"
timeout_precommit_delta = "500ms"

Как только это сделано, перезапустите seid, проведите мониторинг раунда до тех пор, пока он не будет на один раунд больше, чем тот, в котором участвуют все остальные. Затем верните значения на 500ms

Last updated