Установка ноды Massa 23.0
Общая информация
информационный сайт https://massa.net/
официальная документация https://docs.massa.net/en/latest/testnet/running.html
гитхаб https://github.com/massalabs/massa
дискорд https://discord.com/invite/massa
телеграмм официальный https://t.me/massanetwork
телеграмм рус https://t.me/massa_ru
крутой гайд #1 https://galayda.com/ustanovka-nody-massa-iz-oficialnyx-binarnikov/
крутой гайд #2 https://teletype.in/@yurally/massa_guide
статья+крутой гайд #3
статья+гайд от lets node https://blog.letsnode.io/Massa
Системные требования
4cpu, 8ram, <40ssd, >120 мбит сеть, public ip.
Подготовка сервера к установке
sudo apt update && apt dist-upgrade -y sudo apt install wget curl jq git build-essential pkg-config libssl-dev libclang-dev -y sudo apt install screen nmon htop net-tools -y
Удаляем старую ноду (если была установлена)
sudo systemctl stop massad killall massa-client killall massa-node rm -rf $HOME/massa rm -rf /etc/systemd/system/massad.service rm -rf /etc/systemd/system/multi-user.target.wants/massad.service
Установка
Переходим в root директорию и скачаем бинарные файлы с GitHub Massa
cd /root wget https://github.com/massalabs/massa/releases/download/TEST.23.0/massa_TEST.23.0_release_linux.tar.gz
tar zxvf massa_TEST.23.0_release_linux.tar.gz
Создадим файл конфигурации с нашим ip адресом:
sudo tee <<EOF >/dev/null $HOME/massa/massa-node/config/config.toml [network] routable_ip = "`wget -qO- eth0.me`" EOF
Запускаем ноду и задаем пароль
cd $HOME/massa/massa-node/ ./massa-node
Дожидаемся, что нода запустилась, затем прерываем сочетанием клавиш ctrl+c
Далее создаем сервисный файл службы (не забываем заменить ВАШ_ПАРОЛЬ)
printf "[Unit] Description=Massa Node After=network-online.target [Service] User=$USER WorkingDirectory=$HOME/massa/massa-node ExecStart=$HOME/massa/massa-node/massa-node -p ВАШ_ПАРОЛЬ Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target" > /etc/systemd/system/massad.service
sudo systemctl daemon-reload sudo systemctl enable massad sudo systemctl restart massad
Проверим, что нода загрузилась и работает
sudo journalctl -f -n 100 -u massad
Выход из логов сочетанием ctrl+c
*Если увидели ошибки bootstrap, просто ждем загрузки ноды и подключения к сети. Если ошибки bootstrap наблюдаете более 1 часа, вероятнее всего с Вашим сервером что то не так, загляните в главу "проверка работы сервера" и выполните рекомендации.
Запускаем клиента в первый раз. Пароль теперь просит не при заходе в клиент, а при выполнении команд взаимодействия с кошельком.
cd $HOME/massa/massa-client/ ./massa-client
wallet_generate_secret_key
Узнаем <адрес_вашего_кошелька>
wallet_info
node_start_staking <адрес_вашего_кошелька>
Выходим из клиента сочетанием ctrl+c
Покупка роллов
Входим в клиент одной командой
cd /$HOME/massa/massa-client/ && ./massa-client -p ВАШ_ПАРОЛЬ
wallet_info
Идем в дискорд в раздел #testnet-faucet и запрашиваем себе монеты на адрес кошелька
Секунд через 20 пишем команду покупки роллов в клиенте
buy_rolls <адрес_вашего_кошелька> 1 0
Ждем ~01:40:00 пока ролл станет активный и начнется стейкинг монет
Регистрация ноды в дискорде
Узнаем ip адрес нашего сервера из параметров подключения или командой
wget -qO- eth0.me
Идем в дискорд и пишем свой ip MassaBot (если бота нет, любое сообщение в ветке #testnet-rewards-registration и бот появится в DM)
Регистрируем ноду в rewards program:
node_testnet_rewards_program_ownership_proof <адрес_вашего_кошелька> <id из дискорда>
длинный ответ этой команды отправляем в дискорд MassaBot-у
Обновление ноды
sudo systemctl stop massad cd $HOME && wget https://github.com/massalabs/massa/releases/download/TEST.23.0/massa_TEST.23.0_release_linux.tar.gz && tar zxvf massa_TEST.23.0_release_linux.tar.gz && sudo systemctl restart massad && sudo journalctl -f -n 100 -u massad
после запросить токены и купить роллы.
Скрипт автопокупки роллов
Единственная причина, по которой слетают роллы - сервер не тянет нагрузку. Ситуация может быть разовой или происходить постоянно. Не думайте, что при установке скрипта автопокупки на "плохом" сервере, нода будет работать как надо.
Скрипт полностью взял у Mutant
cd /root
sudo tee /root/rollsup.sh > /dev/null <<EOF
#!/bin/sh
#Версия 0.14
cd /root/massa/massa-client
#Set variables
catt=/usr/bin/cat
passwd=\$(\$catt \$HOME/massapasswd)
candidat=\$(./massa-client wallet_info -p "\$passwd"|grep 'Rolls'|awk '{print \$4}'| sed 's/=/ /'|awk '{print \$2}')
massa_wallet_address=\$(./massa-client -p "\$passwd" wallet_info |grep 'Address'|awk '{print \$2}')
tmp_final_balans=\$(./massa-client -p "\$passwd" wallet_info |grep 'Balance'|awk '{print \$3}'| sed 's/=/ /'|sed 's/,/ /'|awk '{print \$2}')
final_balans=\${tmp_final_balans%%.*}
averagetmp=\$(\$catt /proc/loadavg | awk '{print \$1}')
node=\$(./massa-client -p "\$passwd" get_status |grep 'Error'|awk '{print \$1}')
if [ -z "\$node" ]&&[ -z "\$candidat" ];then
echo \`/bin/date +"%b %d %H:%M"\` "(rollsup) Node is currently offline" >> /root/rolls.log
elif [ \$candidat -gt "0" ];then
echo "Ok" > /dev/null
elif [ \$final_balans -gt "99" ]; then
echo \`/bin/date +"%b %d %H:%M"\` "(rollsup) The roll flew off, we check the number of coins and try to buy" >> /root/rolls.log
resp=\$(./massa-client -p "\$passwd" buy_rolls \$massa_wallet_address 1 0)
else
echo \`/bin/date +"%b %d %H:%M"\` "(rollsup) Not enough coins to buy a roll from you \$final_balans, minimum 100" >> /root/rolls.log
fi
EOFprintf "SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin */3 * * * * root /bin/bash /root/rollsup.sh > /dev/null 2>&1 " > /etc/cron.d/massarolls
sudo tee $HOME/massapasswd > /dev/null <<EOF ваш_пароль EOF
sudo tee $HOME/rolls.log > /dev/null <<EOF logs EOF
Посмотреть последние 50 строк лога
tail -n50 /root/rolls.log
cat /dev/null > /root/rolls.log
Мониторинг ноды через телеграмм бота
есть и такие возможности :)
я не делал, но многие пользуются двумя ботами:
1. https://t.me/hekumatiarubot
2. забыл (напишите мне плз)
Проверка работы сервера
Если очень часто слетают роллы, или нода не загружается (есть ошибки бутстрап) скорее всего у вас проблема с сервером.
Проверяем работу сервера следующим скриптом:
wget -qO- bench.sh|bash
В результатах теста смотрим
- скорость записи на диски (хотя бы >300mb/s)
- скорость сети (>110 мбит как на прием, так и на отправку)
В случае не соответствия показателей с тарифом, который Вы арендовали - идем в поддержку хостинга и методично, аргументированно выносим поддержке мозг до тех пор, пока Ваш сервер не заработает должным образом. (к сожалению других вариантов нет)