June 18, 2021

Solana запуск TDS

Запускаем ноду для Solana TDS

1.Заказываем сервер

Под тестнет я заказывал i9-9900k 64GB RAM 960GB NVME raid0,Ubuntu 20.04

https://www.ovhcloud.com/en-ie/bare-metal/infra/infra-2/ - есть плата за установку в добавок к стоимости сервера

https://www.webtropia.com/?kwk=006252050150162066142046 - есть доплата за траффик, сервер будет выходить около 140-150 евро в месяц

https://www.ikoula.com/en - нет платы за установку, может не быть серверов в наличии

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

2.Подключаемся к серверу через Putty и выполняем команды

sh -c "$(curl -sSfL https://release.solana.com/v1.10.32/install)"
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"

3.Подключаемся к серверу через WinSCP и копируем забекапленный файл validator-keypair.json в домашнюю директорию вашего пользователя

(если у вас еще нет файла - создать можно по гайду)

4.Выполняем команды

solana config set --url https://api.testnet.solana.com
solana config set --keypair $HOME/validator-keypair.json

5. Выполняем ряд команд(копируем весь абзац и вставляем как 1 команду)

sudo bash -c "cat >/etc/sysctl.d/20-solana-udp-buffers.conf <<EOF
net.core.rmem_default = 134217728
net.core.rmem_max = 134217728
net.core.wmem_default = 134217728
net.core.wmem_max = 134217728
EOF"
sudo sysctl -p /etc/sysctl.d/20-solana-udp-buffers.conf
sudo bash -c "cat >/etc/sysctl.d/20-solana-mmaps.conf <<EOF
vm.max_map_count = 1000000
EOF"
sudo sysctl -p /etc/sysctl.d/20-solana-mmaps.conf
solana-sys-tuner --user $(whoami) > sys-tuner.log 2>&1 &

6.Запрашиваем с крана монет и связываем кошелек с vote-account

solana airdrop 1

(Можно выполнить раз 5, чтоб собрать монет на пару месяцев для голосования)

solana balance
solana-keygen new -o ~/vote-account-keypair.json
solana-keygen new -o ~/withdrawer-account-keypair.json

и сохраняем вывод

solana create-vote-account ~/vote-account-keypair.json ~/validator-keypair.json ~/withdrawer-account-keypair.json

7. Создаем сервис для запуска ноды(копируем весь абзац и вставляем как 1 команду):

bash -c "cat > $HOME/solana.service<<EOF
[Unit]
Description=Solana TdS node
After=network.target syslog.target
StartLimitIntervalSec=0
[Service]
User=$USER
Type=simple
Restart=always
RestartSec=1
LimitNOFILE=1024000
Environment="SOLANA_METRICS_CONFIG='host=https://metrics.solana.com:8086,db=tds,u=testnet_write,p=c4fa841aa918bf8274e3e2a44d77568d9861b3ea'"
ExecStart=$HOME/.local/share/solana/install/active_release/bin/solana-validator \
--entrypoint entrypoint.testnet.solana.com:8001 \
--entrypoint entrypoint2.testnet.solana.com:8001 \
--entrypoint entrypoint3.testnet.solana.com:8001 \
--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \
--known-validator dDzy5SR3AXdYWVqbDEkVFdvSPCtS9ihF5kJkHCtXoFs \
--known-validator Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN \
--known-validator eoKpUABi59aT4rR9HGS3LcMecfut9x7zJyodWWP43YQ \
--known-validator 9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv \
--only-known-rpc \
--wal-recovery-mode skip_any_corrupted_record \
--identity $HOME/validator-keypair.json \
--vote-account $HOME/vote-account-keypair.json \
--ledger $HOME/ledger \
--limit-ledger-size 50000000 \
--dynamic-port-range 8000-8020 \
--log $HOME/solana.log \
--snapshot-interval-slots 500 \
--maximum-local-snapshot-age 500 \
--snapshot-compression none \
--no-port-check \
--rpc-bind-address 127.0.0.1 \
--rpc-port 8899 \
--accounts-db-caching-enabled \
--full-rpc-api
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
EOF"
sudo ln -s $HOME/solana.service /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl enable solana.service
sudo systemctl restart solana.service

8. Настраиваем ротацию логов:

cat > logrotate.sol <<EOF
$HOME/solana.log {
rotate 3
daily
missingok
compress
compresscmd /usr/bin/bzip2
compressext .bz2
postrotate
systemctl kill -s USR1 solana.service
endscript
}
EOF
sudo cp logrotate.sol /etc/logrotate.d/sol

9. Через пару часов можно уже увидеть себя через поиск по паблик ключу

https://www.validators.app/?locale=en&network=testnet

10. Копируем себе на комп файлаы vote-account-keypair.json validator-keypair.json withdrawer-account-keypair.json - это важно

Полезное:

solana catchup `solana address` http://127.0.0.1:8899
solana-validator monitor

Если необходимо выполнить рестарт:

solana-validator wait-for-restart-window && sudo systemctl restart solana

Если необходимо выполнить рестарт с удалением леджера(крайний случай):

solana-validator wait-for-restart-window && sudo systemctl stop solana && rm -rf $HOME/ledger && sudo systemctl start solana

Со временем ваша нода начнет участвовать в блоках

Создаем мейннет адрес и связываем их по гайду, отправляем данные в форму

11.Добавляем ноду на дашборд Grafana для удобства

После запуска вводим имя ноды(придумываем, ни на что не будет влиять) и укаываем сеть: testnet или mainnet.

1 командой выполняем на сервере:

curl -s https://gist.githubusercontent.com/razumv/1500a0497c03936db4ca36e36794e5ab/raw/a07960bb478e2b06024a54c472fe5c846ca403d9/monitoring_solana.sh > monitoring_solana.sh && chmod +x monitoring_solana.sh && ./monitoring_solana.sh

Через пару минут идем проверять себя https://metrics.stakeconomy.com/ (в левом верхнем углу по pubkey ноды ищем)

Готово! Все последующие обновления будут в 2TOP Nodes

DOUBLE TOP | YouTube | Chat | Services