March 17

pumpkins-pool

Ссылки:
https://pumpkins-pool.gitbook.io/pumpkins-pool/

В этой инструкции замените:

<old_solana_dir> /home/feo/ - путь, где находятся ledger, все keypairds на старой ноде
<new_solana_dir> /home/feo/ - путь, где находятся ledger, все keypairds на новой ноде
<new_user> feo - на имя вашего пользователя на новой ноде
<new_server> 207.148.89.109 - на IP адрес вашего сервера
<base_validator_keypair> - у меня это или mainnet-validator-keypair.json или testnet-validator-keypair.json, НО нельзя, чтобы назывался validator-keypair.json


---------------------------------
ПОДГОТОВКА К ПЕРЕНОСУ
---------------------------------


НА СТАРОЙ НОДЕ:

Чеклист:
/home/feo/mainnet-validator-keypair.json - ключ на identity валидатора
/home/feo/validator-keypair.json - это ссылка на <old_solana_dir>/<base_validator_keypair> (?хотя можно оставить просто файл, но в будущем это будет ссылка?)
/home/feo/unstaked-identity.json - на этот пустой identity нода переключится и только потом передаст эстафету новой
transfer_to_new.sh - скрипт переноса


Заходим с домашнюю папку:

cd ~/

сгенерируем
solana-keygen new -s --no-bip39-passphrase -o unstaked-identity.json


Создадим файлик transfer_to_new.sh:

#!/bin/bash

# example script of the above steps - change IP obviously
echo "waiting for restart window... "
solana-validator -l /home/feo/validator-ledger wait-for-restart-window --min-idle-time 2 --skip-new-snapshot-check
echo "set identity to unstaked-identity "
solana-validator -l /home/feo/validator-ledger set-identity /home/feo/unstaked-identity.json
echo "change link of validator-keypair to unstaked-identity "
ln -sf /home/feo/unstaked-identity.json /home/feo/validator-keypair.json
echo "copy tower to new server "
scp /home/feo/validator-ledger/tower-1_9-$(solana-keygen pubkey /home/feo/mainnet-validator-keypair.json).bin [email protected]:/home/feo/validator-ledger


Этот скриптик ставит пустое идентити вместо старого и переносит tower от правильного идентити на новый сервер и файл validator-identity ссылает на пустой идентити


НА НОВОЙ НОДЕ

Чеклист:
/home/feo/mainnet-validator-keypair.json - ключ на identity валидатора
/home/feo/validator-keypair.json - это ссылка на <new_solana_dir>/unstaked-identity.json
/home/feo/unstaked-identity.json - на этом пустом identity валидатор должен запуститься и ссинхронизироваться перед переключением
activate_new.sh - скрипт переноса

Заходим с домашнюю папку:

cd ~/

solana-keygen new -s --no-bip39-passphrase -o unstaked-identity.json
solana-keygen pubkey unstaked-identity.json

ln -sf ~/unstaked-identity.json ~/validator-keypair.json


Меняем solana.service - дописываем строчку среди опций запуска:
...
--authorized-voter /home/feo/mainnet-validator-keypair.json \
...


Создадим файлик activate_new.sh:

#!/bin/bash
echo "set validator identity "
solana-validator -l /home/feo/validator-ledger set-identity --require-tower /home/feo/mainnet-validator-keypair.json
echo "change link for validator-keypair.json "
ln -sf /home/feo/mainnet-validator-keypair.json /home/feo/validator-keypair.json

этот скрипт устанавливает tower от правильного идентити и файл validator-identity.json ссылает на правильный идентити


------------------------
ПЕРЕНОС
------------------------


На старой ноде запускаем:

bash transfer_to_new.sh


На новой ноде запускаем:

bash activate_new.sh


После этого старая нода работает на холостом идентити, а новая на правильном