Реинкарнация Solana ноды
⠀Тестовая сеть легла, надо реинкарнировать ноду.
Содержание
Реинкарнация
Мы публикуем обновлённую версию только после тестов на нескольких серверах, поэтому она может выйти не сразу.
Подготовка
sudo systemctl stop solana
⠀Добавить в систему переменную
slot=199641374
⠀Запустить проверку последнего подтвержденного слота
if [ `solana-ledger-tool --ledger $HOME/solana/ledger/ latest-optimistic-slots 2>&1 | grep -A1 Slot | tail -1 | awk '{print $1}'` -ge "$slot" ]; then echo -e "\033[1;32mGood\033[0m"; else echo -e "\033[0;31mBad\033[0m"; fi
- Если выводит
Good
— перейти к пункту «Всё хорошо»; - Если выводит
Bad
— перейти к пункту «Всё плохо».
Всё хорошо
solana-ledger-tool --ledger $HOME/solana/ledger \ create-snapshot $slot $HOME/solana/ledger \ --hard-fork $slot
solana-ledger-tool --ledger $HOME/solana/ledger \ create-snapshot $slot $HOME/solana/ledger \ --hard-fork $slot \ --accounts /mnt/ramdisk/accounts
⠀При возникновении ошибки Error: Slot 199641374 is not available
перейти к пункту «Всё плохо»
⠀Через некоторое время работа завершится и появится надпись Shred version: 28353
⠀Вывести список всех снепшотов
find $HOME/solana/ledger/ -name snapshot-*
⠀В списке должен быть снепшот с названием
snapshot-199641374-njbdgtFvyDqiaCXRsgddu3J5uEtG6zPH81cmArcQSxS.tar.zst
⠀Удалить все снепшоты, где блок больше 199641374
, где меньше удалять не надо.
⠀Обновить ноду до версии 1.14.18
solana-install init v1.14.18
⠀Сделать резервную копию штатного сервисного файла
cp $HOME/solana/solana.service $HOME/solana/solana.service.bak
⠀Открыть сервисный файл, изменить дубликаты опций ниже на обновлённые опции ниже и удалить опцию --expected-genesis-hash
--no-snapshot-fetch \ --no-genesis-fetch \ --wait-for-supermajority 199641374 --expected-shred-version 28353 --expected-bank-hash 7qKeiLLRxvxkD2hZx1Ai1RABKMg7x2n4GVJFcrEh3js2 --known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on
⠀Проверить, чтобы опции не повторялись и сохранить сервисный файл.
sudo systemctl daemon-reload sudo systemctl enable solana sudo systemctl restart solana
⠀Перейти к пункту «Проверка»
Всё плохо
⠀Обновить ноду до версии 1.14.18
solana-install init v1.14.18
rm -rf $HOME/solana/ledger/rocksdb $HOME/solana/ledger/incremental-* $HOME/solana/ledger/snapshot-*
⠀Сделать резервную копию штатного сервисного файла
cp $HOME/solana/solana.service $HOME/solana/solana.service.bak
⠀Открыть сервисный файл, изменить дубликаты опций ниже на обновлённые опции ниже и удалить опции --no-snapshot-fetch
и --expected-genesis-hash
--wait-for-supermajority 199641374 --expected-shred-version 28353 --expected-bank-hash 7qKeiLLRxvxkD2hZx1Ai1RABKMg7x2n4GVJFcrEh3js2 --known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on
⠀Проверить, чтобы опции не повторялись и сохранить сервисный файл.
sudo systemctl daemon-reload sudo systemctl enable solana sudo systemctl restart solana
Проверка
⠀Проверить, есть ли вывод после выполнения команды
tail -n 10000 $HOME/solana/solana.log | grep "Waiting for"
⠀Проверить текущий слот, должно вывести 199641374
solana -ul slot
⠀Сеть будет запущена, когда значение активного стейка будет выше 80%
tail -fn 10000 $HOME/solana/solana.log | grep "active stake visible"
После запуска сети
⠀Заменить сервисный файл на штатный
mv $HOME/solana/solana.service.bak $HOME/solana/solana.service
⠀Обновить список сервисных файлов
sudo systemctl daemon-reload
Полезные ссылки
Официальный гайд | Официальный сайт проекта
Тех. русскоязычная группа Telegram (по запросу)
Тех. группа для новичков | Discord
Благодарности
Команда Let’s Node! — написание статьи