November 11
Solana Node Guide Testnet | Гайд по ноде Соланы
Требования:
Гайд для прохождения SFDP программы, почитать о ней можно тут
Я беру сервера на edgevana
Подготовка сервера:
sudo su cd sudo apt update && sudo apt upgrade
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh #отвечаем 1 . "$HOME/.cargo/env"
Mount диска:
sudo mkfs.ext4 /dev/nvme0n1 sudo mkdir -p /mnt/ledger sudo chown -R root.root /mnt/ledger sudo mount /dev/nvme0n1 /mnt/ledger/
echo -e "\\n/dev/nvme0n1 /mnt/ledger ext4 defaults 0 3" | sudo tee -a /etc/fstab
Установка ноды
sh -c "$(curl -sSfL https://release.solana.com/v1.18.18/install)" export PATH="/root/.local/share/solana/install/active_release/bin:$PATH" solana --version #должна отдавать версию solana-keygen new -o $HOME/validator-keypair.json #сохраните данные, а также файл /root/validator-keypair.json solana-keygen new -o $HOME/vote-account-keypair.json #сохраните данные, а также файл solana-keygen new -o $HOME/withdrawer-account-keypair.json #сохраните данные, а также файл
System Tuning
sudo bash -c "cat >/etc/sysctl.d/21-solana-validator.conf <<EOF # Increase UDP buffer sizes net.core.rmem_default = 134217728 net.core.rmem_max = 134217728 net.core.wmem_default = 134217728 net.core.wmem_max = 134217728 # Increase memory mapped files limit vm.max_map_count = 1000000 # Increase number of allowed open file descriptors fs.nr_open = 1000000 EOF"
sudo sysctl -p /etc/sysctl.d/21-solana-validator.conf sudo systemctl daemon-reload
sudo bash -c "cat >/etc/security/limits.d/90-solana-nofiles.conf <<EOF # Increase process file descriptor count limit * - nofile 1040000 EOF"
timedatectl
solana config set --url https://api.testnet.solana.com solana config set --keypair $HOME/validator-keypair.json solana airdrop 1 #кран, если пишет недостаточно средств - он пуст, используйте альтернативные краны
Какой адрес пополнять из альтернативного крана? тот, что мы создавали первый (validator-keypair.json), его пабкей - это и есть ваш адрес
solana create-vote-account ~/vote-account-keypair.json ~/validator-keypair.json ~/withdrawer-account-keypair.json
sudo tee /root/sol.service > /dev/null <<EOF [Unit] Description=Solana node After=network.target syslog.target StartLimitIntervalSec=0 [Service] User=root Type=simple Restart=always RestartSec=1 LimitNOFILE=1040000 Environment=SOLANA_METRICS_CONFIG=host=https://metrics.solana.com:8086,db=tds,u=testnet_write,p=c4fa841aa918bf8274e3e2a44d77568d9861b3ea ExecStart=/root/.local/share/solana/install/active_release/bin/agave-validator \ --entrypoint entrypoint.testnet.solana.com:8001 \ --entrypoint entrypoint2.testnet.solana.com:8001 \ --entrypoint entrypoint3.testnet.solana.com:8001 \ --entrypoint entrypoint.testnet.solana.sergo.dev:8001 \ --wal-recovery-mode skip_any_corrupted_record \ --identity /root/validator-keypair.json \ --vote-account /root/vote-account-keypair.json \ --ledger /root/ledger \ --limit-ledger-size 50000000 \ --dynamic-port-range 8000-8020 \ --log /root/sol.log \ --snapshot-interval-slots 500 \ --maximum-local-snapshot-age 1000 \ --no-port-check \ --rpc-bind-address 127.0.0.1 \ --rpc-port 8899 \ --full-rpc-api ExecReload=/bin/kill -s HUP ExecStop=/bin/kill -s QUIT [Install] WantedBy=multi-user.target EOF
sudo ln -s /root/sol.service /etc/systemd/system
sh -c "$(curl -sSfL https://release.anza.xyz/v2.1.1/install)"
Если актуальная версия выше, то выполните после этого:
agave-install init v2.х.хх #заменив х хх на необходимую версию
sudo systemctl daemon-reload sudo systemctl enable sol.service sudo systemctl start sol.service
tail sol.log
Ошибки:
Failed to start validator: "Failed to open Blockstore: UnableToSetOpenFileDescriptorLimit"
cat /proc/sys/fs/nr_open sudo sysctl -w fs.nr_open=1040000 echo "fs.nr_open=1040000" | sudo tee -a /etc/sysctl.conf sudo sysctl -p cat /proc/sys/fs/file-max sudo sysctl -w fs.file-max=1040000 echo "fs.file-max=1040000" | sudo tee -a /etc/sysctl.conf sudo sysctl -p sudo nano /etc/security/limits.conf add - root soft nofile 1040000 add - root hard nofile 1040000 sudo nano /etc/pam.d/common-session add - session required pam_limits.so sudo nano /etc/pam.d/common-session-noninteractive add - session required pam_limits.so sudo systemctl daemon-reload sudo reboot