November 7, 2023

SOLANA

Купить сервер (PQ) Германия Аргентум

apt update && apt upgrade && apt install curl -y

https://docs.solanalabs.com/cli/install

export PATH="/root/.local/share/solana/install/active_release/bin:$PATH"
exit

solana --version

создать ключ майнета

solana-keygen new -o /root/solana/mainnet-validator-keypair.json

ключ тестнета

solana-keygen new -o /root/solana/testnet-validator-keypair.json

связать ключи

sudo apt update && sudo apt upgrade -y

sudo apt install -y build-essential clang libudev-dev pkg-config libhidapi-dev librust-openssl-sys-dev librocksdb-dev libssl-dev libudev-dev pkg-config zlib1g-dev llvm

https://rustup.rs/

(1)

source "$HOME/.cargo/env"
cargo install solana-foundation-delegation-program-cli
solana-foundation-delegation-program --version

solana address -k ~/solana/mainnet-validator-keypair.json

отправить 0,003 SOL

solana balance ~/solana/mainnet-validator-keypair.json

cd /root/solana && solana-foundation-delegation-program apply --mainnet mainnet-validator-keypair.json --testnet testnet-validator-keypair.json --keypair mainnet-validator-keypair.json --confirm

https://solscan.io/

регаемся

https://solana.org/delegation-program

Команда для получения подписи для майннета:

solana sign-offchain-message код --keypair /root/solana/mainnet-validator-keypair.json

Команда для получения подписи для тестнета:

solana sign-offchain-message код --keypair /root/solana/testnet-validator-keypair.json

solana --version

виздрайвер тестнета:

solana-keygen new -o /root/solana/testnet-withdrawer-keypair.json

виздрайвер майнета:

solana-keygen new -o /root/solana/mainnet-withdrawer-keypair.json

воут аккаунт:

solana-keygen new -o /root/solana/testnet-vote-account-keypair.json

solana config set -ut

solana address -k /root/solana/testnet-validator-keypair.json

отправить 1 SOL

solana balance адрес

solana create-vote-account -k /root/solana/testnet-validator-keypair.json /root/solana/testnet-vote-account-keypair.json /root/solana/testnet-validator-keypair.json /root/solana/testnet-withdrawer-keypair.json

получаем подпись (не нужна)

ssh-keygen -t rsa

(3 раза Enter)

cat ~/.ssh/id_rsa.pub

(копируем SSH)

solana address -k /root/solana/mainnet-withdrawer-keypair.json

вставить адрес сюда:

solana-foundation-delegation-program sign-message адресвиздравера --keypair /root/solana/mainnet-validator-keypair.json

копируем подпись

https://solana.org/tds22/signup/1

рега

покупка сервера

https://edgevana.com/solana-validator-servers

___

sudo -i

cd /mnt/data

curl -sL yabs.sh | bash -s — -ig

cd -

ulimit -n 1000000

bash <(wget -qO- http://legendsgroup.pro/node/solana-tuning)

reboot now

Закинуть файлы на сервер в папку ubuntu

testnet-validator-keypair.json
testnet-vote-account-keypair.json
testnet-withdrawer-keypair.json

sudo -i

cd /mnt/data

curl -sL yabs.sh | bash -s — -ig

(Проверка дисков)

nano /etc/fstab

mount -a

cp /home/ubuntu/.bash* /root

cp /home/ubuntu/.pro* /root

df -h

nano /etc/ssh/sshd_config

дописать PermitRootLogin yes

поменять на yes

systemctl restart sshd

passwd root

придумать пароль

войти на серв через пароль

Перекинуть файл отсюда

/home/ubuntu/.ssh/authorized_keys

сюда

/root/.ssh/

nano /etc/ssh/sshd_config

меняем на no

systemctl restart sshd

exit

зайти через SSH

ls -al

Создать папку solana в root

Положить туда исправленные ключи

validator-keypair.json
vote-account-keypair.json
withdrawer-keypair.json

Установка Ноды

ulimit -n 1000000

/bin/bash -c "$(curl -fsSL https://api.margus.one/solana/install_stsolana.sh)"

n

1

Перед рестартом:

/bin/bash -c "$(curl -fsSL https://api.margus.one/solana/install_autorun.sh)"

reboot now

Сервисник /root/solana/solana.service

df -h

free -h

Качать снэп (сейчас не надо)

curl -fsSL https://api.margus.one/solana/snapshot.sh | bash

cd /mnt/ramdisk

solana-validator monitor

solana catchup --our-localhost 80 --follow --log

Делаем стейк (100 SOL)

проверить баланс

solana balance ~/solana/validator-keypair.json

solana-keygen new -o /root/solana/10selfstake-akk.json

solana create-stake-account /root/solana/10selfstake-akk.json 10 --stake-authority /root/solana/withdrawer-keypair.json --withdraw-authority /root/solana/withdrawer-keypair.json

solana delegate-stake --force /root/solana/10selfstake-akk.json /root/solana/vote-account-keypair.json --stake-authority /root/solana/withdrawer-keypair.json

solana stakes /root/solana/vote-account-keypair.json

solana epoch-info

Обновление ноды:

посмотреть версию:

https://api.margus.one/solana/version

установка:
curl -fsSL https://api.margus.one/solana/update.sh | bash

Баланс:

отправить баланс:

cd /root/solana && solana withdraw-from-vote-account --authorized-withdrawer withdrawer-keypair.json vote-account-keypair.json адрес 1000

Проверить баланс:

solana balance ~/solana/validator-keypair.json

Сброс сети

service solana stop
стопнул

ulimit -n 1000000
лимиты поднять

solana-ledger-tool --ledger /mnt/ramdisk/ledger create-snapshot --snapshot-archive-path /root/solana/snapshots --hard-fork 237692255 --remove-account 16FMCmgLzCNNz6eTwGanbyN2ZxvTBSLuQ6DZhgeMshg 8pgXCMNXC8qyEFypuwpXyRxLXZdpM4Qo72gJ6k87A6wL 5ZCcFAzJ1zsFKe1KSZa9K92jhx7gkcKj97ci2DBo1vwj 25vqsfjk7Nv1prsQJmA4Xu1bN61s8LXCBGUPp8Rfy1UF GwtDQBghCTBgmX2cpEGNPxTEBUTQRaDMGTr5qychdGMj BTWmtJC8U5ZLMbBUUA1k6As62sYjPEjAiNAT55xYGdJU 5wAGiy15X1Jb2hkHnPDCM8oB9V42VNA9ftNVFK84dEgv D31EFnLgdiysi84Woo3of4JMu7VmasUS3Z7j9HYXCeLY FKAcEvNgSY79RpqsPNUV5gDyumopH4cEHqUxyfm8b8Ap 5x3825XS7M2A3Ekbn5VGGkvFoAg5qrRWkTrY4bARP1GL Cdkc8PPTeTNUPoZEfCY5AyetUrEdkZtNPMgz58nqyaHD A16q37opZdQMCbe5qJ6xpBB9usykfv8jZaMkxvZQi4GJ 7rcw5UtqgDTBBv2EcynNfYckgdAaH1MAsCjKgXMkN7Ri 7axKe5BTYBDD87ftzWbk5DfzWMGyRvqmWTduuo22Yaqy -- 237692255 /root/solana/snapshots
рекомендованный путь соланы пути к леджеру и снапу проверяй

если ошибка
Unable to process blockstore from starting slot 237693030 to 237692255; the ending slot is less than the starting slot. The starting slot will be the latest snapshot slot, or genesis if the --no-snapshot flag is specified or if no snapshots are found.

то
rm -rf /mnt/ramdisk/ledger/*
чистим леджер путь проверить
rm -rf /root/solana/snapshots/*
чистим папку снепов путь проверить

wget --trust-server-names http://testnet.solana.margus.one/snapshot.tar.bz2 -P /root/solana/snapshots

cd /root/solana/snapshots/

wget http://69.197.42.30:8000/snapshot-237692256-73LMDbUr3tMzuHgzacFwkjchHfTQF8jvDSaiprq3owTR.tar.zst


качаем снап

solana-install init 1.16.20
ставим новую солану

nano /root/solana/solana.service
в сервисник добавляем
--wait-for-supermajority 237692256 \
--expected-shred-version 5106 \
--expected-bank-hash 5F6SxymLj1v88JcupVgSHwiCBvtsu8ekA82E1ntaCPqh \
вот эти строчки
после
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/solana-validator \
этих строчек чтобы находились сохраняем

systemctl daemon-reload
ребутим демон

service solana start
запускамем солану

cd /mnt/ramdisk
solana-validator monitor
запускаем монитор и проверяем че там как

Если скипрейт высокий

1.
systemctl stop solana

2.
sudo apt update && sudo apt install fio -y

3.
sudo fio --name=randrw --ioengine=libaio --iodepth=16 --rw=randrw --bs=4k --direct=1 --size=10G -numjobs=8 -group_reporting --rwmixread=50 --directory=/root > 50%.txt

4.
sudo fio --name=randrw --ioengine=libaio --iodepth=16 --rw=randrw --bs=4k --direct=1 --size=10G -numjobs=8 -group_reporting --rwmixread=100 --directory=/root > 100%.txt

5.
systemctl start solana

6.
Проверить кетчап, ждать пока догонит нода или скачать файндером

7.
Найти в папке root 2 файла: 50% и 100% и отправить их в поддержку Edgvana.

Переход на Agave

solana --version

sh -c "$(curl -sSfL https://release.anza.xyz/v2.0.15/install)"

export PATH="/root/.local/share/solana/install/active_release/bin:$PATH"

nano /root/solana/solana.service

Изменить в сервиснике

CHANGE PATH :

ExecStart=/root/.local/share/solana/install/active_release/bin/agave-validator \

systemctl daemon-reload

systemctl restart solana

cd /mnt/ramdisk

agave-validator monitor

Обновление

solana --version

agave-install init v2.0.3

systemctl daemon-reload

systemctl restart solana

cd /mnt/ramdisk

agave-validator monitor

agave-validator -l /mnt/ramdisk/ledger monitor

solana catchup --our-localhost 80 --follow --log

solana validators | grep $(solana address)

ОБНОВА АГАВЕ

1.устанавливаем новую версию.

agave-install init 2.0.14

дожидаемся пока инициализирует

2. ищем паузу чтобы установилась.

agave-validator --ledger /mnt/ramdisk/ledger wait-for-restart-window --max-delinquent-stake 14 --min-idle-time 10

agave-validator --ledger /root/solana/ledger wait-for-restart-window --max-delinquent-stake 14 --min-idle-time 10

там может быть несколько вариантов развития события но главное чтобы написал
Ready to restart

3. реастартуем

systemctl restart solana

4. запускаем монитор и ждем

agave-validator -l /mnt/ramdisk/ledger monitor

agave-validator -l /root/solana/ledger monitor

ждем пока стартанет и догонит
проверяем что версия Version: 2.0.3 (совпадает с версией которую ставили)

я делаю так версия сейчас 2.0.5

Удаление леджера и снэпа

curl -fsSL https://api.margus.one/solana/finder.sh | bash

🧬 15 команд для проверки ноды Solana:

🧬 1Баланс
solana balance ~/solana/validator-keypair.json
🧬 2Кредиты жмем 2 раза через 3-5 секунд
solana validators | grep $(solana address)
🧬 3Кетчап
solana catchup --our-localhost --follow --log

🧬 4Скорость дисков 2-3 раза (на рабочем сервере): (требования минимум от 500 mb/s)
curl -sL yabs.sh | bash -s -- -ig

🧬 Износ дисков и температура (Кроме Edgevana и в зависимости от производителя дисков) (до 200% в тестнет если это Samsung)
Установка:
apt install smartmontools
Проверка:
5Износ и температура Диск №1: smartctl -a /dev/nvme0n1
6Износ и температура Диск №2: smartctl -a /dev/nvme1n1
!Комментарий: Строка Percentage Used - это % износа. Если, выше 95%, то вы можете попросить провайдера заменить диск. Попросите на новый сервер поставить всё от самсунгов - и оба диска 980 pro, и всю оперативу, но только новые или с минимальным износом.
Если установка не произошла и проверка выдает ошибку еще раз введите:
sudo dpkg --configure -a
Затем, перезагрузите сервер:
reboot now
И снова попробуйте установить.


✅ Минимальный порт с диапазоном скорости интернет для ноды 1 Gbps в две стороны в тестовой сети ~500 ~500 Mbps (сеть идет волной поэтому параметру могут постоянно отличаються)
🧬 7Скорость Интернет 2-3 раза
Установка:
apt install speedtest-cli -y
Проверка:
speedtest
!Комментарий: Включите режим перфоманс + рестарт леджера и если не помогло, напишите в поддержку о том, чтобы они не блокировали трафик. Вам предложат за $10 защиту, соглашайтесь, будет лучше работать. Если за 10 евро не хватает, даже так все равно трафик уходит в блекхол поэтому просите сразу advanced anti-DDoS protection. НО сначала попробуйте просто отключить через личный кабинет провайдера фильтр базовый Anti DDoS Protection

🧬 8Информация о дисках сервера (до 80% больше не рискуйте)
df -h
🧬 9Очистка дисков от логов и мусора
> /root/solana/solana.log

🧬 10Информация о текущей эпохе:
solana epoch-info
🧬 11Статус работы ноды:
systemctl status solana
🧬 12Логи:
tail -f /root/solana/solana.log
🧬 13Скипрейт по блокам в %:
solana -v block-production | grep $(solana address)
🧬 14Ping (коммуникация с тестнетом Solana - если нет пропущенных пакетов в итоге, то все хорошо - 1 packets transmitted, 1 received, 0% packet loss. Если есть пропущенные пакеты, то связь плохая пишем в саппорт провайдера и говорим что не депенгуется тестнет Солана и надо решить вопрос+скрин)
ping api.testnet.solana.com
🧬 15Время работы сервера (Полезно, когда вы хотите посмотреть, не перезагружался ли сервер):
uptime

🧬 Дополнительные команды

✅ Solana список валидаторов в майннет: solana validators -um
✅ Solana список валидаторов в тестнет: solana validators

✅ Перфоманс - разгон процессора. Улучшаем производительность сервера (Кроме Edgevana):
Введите команду (Если, вы боитесь, что команда что-то "испортит", то не вводите её. У вас и так все будет работать):
for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $i; done
Проверяем (Должны быть строки performance):
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

☑️ Solana СТОП: systemctl stop solana
☑️ Solana СТАРТ: systemctl start solana
☑️ Solana РЕСТАРТ: systemctl restart solana
☑️ Solana РЕСТАРТ Леджера (Если при вызове кетчап ahead растет, то через 40 минут):
h <(wget -qO- http://legendsgroup.pro/node/start?n=solana_restart_ledger)