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 - скрипт переноса
сгенерируем
solana-keygen new -s --no-bip39-passphrase -o unstaked-identity.json
Создадим файлик transfer_to_new.sh:
# 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 - скрипт переноса
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 ссылает на правильный идентити
------------------------
ПЕРЕНОС
------------------------
После этого старая нода работает на холостом идентити, а новая на правильном