July 11, 2022

Guide Massa TEST.26.1

Website DiscordGitHub

Системные требования для работы ноды

4 CPU, 8 GB RAM

Навигация

Подготовка к установке

Если вы ранее не делали бэкап wallet.dat и node_privkey.key - делаем бэкап, если делали пропускаем.

Создаем папку для хранения бэкапа

mkdir -v $HOME/massa_backup

Копируем файл wallet.dat в созданную папку

cp $HOME/massa/massa-client/wallet.dat $HOME/massa_backup/wallet.dat

Копируем файл node_privkey.key в созданную папку

cp $HOME/massa/massa-node/config/node_privkey.key $HOME/massa_backup/node_privkey.key

Далее нам необходимо удалить старую ноду, если ставите с 0 пропускаете.

Если будет ругаться на команды не обращаем внимание
killall massa-client
killall massa-node
rm -rf $HOME/massa
rm /etc/systemd/system/massad.service

Подготавливаем сервер к установке ноды

sudo apt update && sudo apt-get install libclang-dev

Открываем Порты

sudo ufw status
Если "Status: active"
sudo ufw allow 31244
sudo ufw allow 31245
Если "Status: inactive"
sudo iptables -I INPUT -p tcp --dport 31244 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 31245 -j ACCEPT
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

Установка

Скачиваем бинарные файлы с GitHub Massa

Актуальная ссылка на 08.09.23, если вы читаете этот гайд после обновлений, попробуйте поменять в ссылке числа версии на актуальный номер.
wget https://github.com/massalabs/massa/releases/download/TEST.26.1/massa_TEST.26.1_release_linux.tar.gz

Распаковываем скачанный архив

tar zxvf massa_TEST.26.1_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+С

Создаем сервисный файл

(Блок ниже нужно скопировать предварительно в «Блокнот», заменить слово ВАШ_ПАРОЛЬ и вставить сразу весь, в командной строке, не построчно.)
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
Если вы увидели сообщения bootstrap нужно ждать или добавлять bootstrap в конфигурационный файл.

Запускаем клиента и придумываем пароль

cd $HOME/massa/massa-client/
./massa-client

Генерируем новый кошелек со всеми ключами в меню клиента

wallet_generate_secret_key

Смотрим Address

wallet_info
Address (адрес вашего кошелька) отправляете в дискорд #testnet-faucet

Включаем стейкинг

 node_start_staking адрес_вашего_кошелька 

Покупаем ролл

слово адрес_вашего_кошелька заменяем на свой адрес
1 и 0 в конце команды нужны их не удалять
buy_rolls адрес_вашего_кошелька 1 0

Проверяем покупку ролла

wallet_info

Кидаем в дискорд MassaBot IP адрес сервера на котором стоит нода и в терминале вводим команду

Подставляйте свои значения в команду
node_testnet_rewards_program_ownership_proof адрес_вашего_кошелька id_из_дискорда
Результат этой команды отправляем в дискорд MassaBot.

Обновление

обновлено 08.09.23

Если вы еще не переходили на версию 23.0 вам нужно полностью удалить ноду и поставить с нуля. Кто переходил - обновляемся.

cd $HOME && wget https://github.com/massalabs/massa/releases/download/TEST.26.1/massa_TEST.26.1_release_linux.tar.gz && tar zxvf massa_TEST.26.1_release_linux.tar.gz && sudo systemctl restart massad && sudo journalctl -f -n 100 -u massad 

Заходим в клиент

Команда для быстрого входа в клиент, просто подставьте свой пароль вместо слова ваш_пароль, здесь вы можете смотреть инфу о кошельке и ноде.
cd /$HOME/massa/massa-client/ && ./massa-client -p ваш_пароль

Смотрим Address

wallet_info
Address (адрес вашего кошелька) отправляете в дискорд #testnet-faucet

Покупаем ролл

слово адрес_вашего_кошелька заменяем на свой адрес
1 и 0 в конце команды нужны их не удалять
buy_rolls адрес_вашего_кошелька 1 0

Проверяем покупку ролла

wallet_info

Кидаем в дискорд MassaBot IP адрес сервера на котором стоит нода и в терминале вводим команду

Подставляйте свои значения в команду
node_testnet_rewards_program_ownership_proof адрес_вашего_кошелька id_из_дискорда
Результат этой команды отправляем в дискорд MassaBot.

Дополнительно

Включаем поддержку всем привычных команд от SecorD0

massa_log, massa_client, massa_cli_client, massa_node_info, massa_wallet_info, massa_buy_rolls
sed -i "/ massa_password=/d" $HOME/.bash_profile
Слово ВАШ_ПАРОЛЬ в команде ниже меняете на свой пароль
echo 'export massa_password="ВАШ_ПАРОЛЬ"' >> $HOME/.bash_profile
. $HOME/.bash_profile
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Massa/main/insert_variables.sh)
sudo systemctl restart massad

Автопокупка роллов от Mutant

обновлено 05.10.22

Переходим в папку рута

Вы должны вводить быть не в клиенте ноды
cd /root

Создаем файл rollsup.sh

Этот блок копируем целиком и вставляем как одну команду
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
EOF

Добавляем задание демону cron на выполнение файла rollsup.sh

Этот блок копируем целиком и вставляем как одну команду
printf "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
Лог файл создан удачно.
EOF

Посмотреть последние 50 строк логов

tail -n50 /root/rolls.log

Очистить содержимое логов

cat /dev/null > /root/rolls.log

Удаление скрипта

/usr/bin/rm /root/rollsup.sh
/usr/bin/rm /etc/cron.d/massarolls
/usr/bin/rm /root/rolls.log

Добавляем bootstrap

Если у Вас в логах идут ошибки при подключении к bootstrap

НЕ РАБОТАЕТ

Создадим бэкап файла конфига, чтобы мы в случае неправильных изменений в файле смогли вернуть его обратно.

cp $HOME/massa/massa-node/base_config/config.toml $HOME/massa/massa-node/base_config/config.toml.backup

Открываем файл конфига для редактирования

nano $HOME/massa/massa-node/base_config/config.toml

Видим такой результат

Спускаемся по файлу ниже и находим раздел [bootstrap] и смотрим на скриншот ниже

копируем данные ниже

список обновлен 31.10.2022
["51.75.60.228:31245", "P13Ykon8Zo73PTKMruLViMMtE2rEG646JQ4sCcee2DnopmVM3P5"],
	["89.40.214.122:31245", "P1BH3AJz1X2Y32kW34p4kDJDSVQFGSX1kQ2EwhKG4J535LiSQXu"],
	["144.24.192.28:31245", "P12DrR3pYRboEYS8tShJgnqmzUUPR65V7V5cxi8QTzA5EZ9kEXCC"],
	["80.11.21.94:31245", "P1rudCUZBvVbymB7s1svtSYGsgFDJKuixHvykYU2qMj9VaZ3s7m"],
	["158.69.120.215:31245", "P12rPDBmpnpnbECeAKDjbmeR19dYjAUwyLzsa8wmYJnkXLCNF28E"],
	["198.27.74.52:31245", "P1hdgsVsd4zkNp8cF1rdqqG6JPRQasAmx12QgJaJHBHFU1fRHEH"],
	["78.107.234.44:31245", "P1tBD958SEeRN9tL3BaNNf8s9L7dimwM9fuGH25nihrUhkMrQ72"],
	["144.24.192.28:31245", "P12DrR3pYRboEYS8tShJgnqmzUUPR65V7V5cxi8QTzA5EZ9kEXCC"],
	["207.180.242.141:31245", "P12fErdTX9aiwNMbk2TG4jbKKovLHrWRwD63wJKnXksJjLJxYcoz"],
	["161.97.167.10:31245", "P1nuX2KGsLjtMcaKkEQ8L1ojPnnGehk6KdUsv9Gtn2TsyTEqEvS"],
	["185.192.96.88:31245", "P1mzSp4MiG2pp7kGGaW7Xw4M54afShq5Ljq8MkWWygPCvJq89KT"],
	["88.141.159.77:31245", "P12L9AptjeJZQ4yVGnHj3B19dpFyk6wXSMMyrABMFAyF17UqTYVN"],
	["176.104.59.190:31245", "P1VA2UWLsGQQ2mhgD4kWvR8mbbDmFEEYXNiGVWWvr39KfHbQibZ"],
	["80.11.21.94:31245", "P1rudCUZBvVbymB7s1svtSYGsgFDJKuixHvykYU2qMj9VaZ3s7m"],
	["193.201.15.244:31245", "P12mK3XtaDovD386EKMFgUPSdV1nndycgwBc36Fj3jA8tsHSpqoN"],
	["176.163.175.28:31245", "P1Lc1GcYdhrKNuT8MCte81dCior4mGJSNgbU9ytz4bqAG9RPju6"],
	["95.70.160.37:31245", "P1hQUuCr8WuWvkoXqWe14ZQrNBdLyk3UbY3RcphDz6LsgpNMiBU"],
	["161.97.141.80:31245", "P12jpADZRE2jiXF29X9fzULiRa9YfjmrHqTVoXFMTQh3brEQvUXJ"],
	["154.26.132.182:31245", "P137JJeU7dt6MbTX87rB9s9geX3gYRUmMmZFMuoo8Hru5pzKRcm"],
	["158.69.120.215:31245", "P12rPDBmpnpnbECeAKDjbmeR19dYjAUwyLzsa8wmYJnkXLCNF28E"],
	["202.182.109.190:31245", "P12vuGZ7vDG77CUrqhbsQyMW4yCzZ18tmWNqP6CZVFAuEamsfd6N"],
	["62.113.114.49:31245", "P1uTgabQKsBYs2RKVZ2X5KPEix8zGkyNRP6rEbM24GAgNNSXH22"],
	["45.85.249.52:31245", "P16dF95GfGb5syZixrQKnX57aG8JeGyQcx6QWs7fjdZFxo2wTrJ"],
	["207.180.215.214:31245", "P1ZoC3y6qyj3c5H6ToDFcR8AcZY5YJgb1y1HLHMUaZVzHdGNg3Y"]

Возвращаемся в терминал и вставляем скопированные данные, как это будет выглядеть см. скриншот ниже

Далее нам нужно удалить запятую с последнего bootstrap и выровнять вставленные строчки по формату стандартных. Советую во вставленных строках удалить пробелы вначале строки и с помощью кнопки TAB на клавиатуре выровнять. Финальный вариант смотрим на скриншоте ниже

Сохраняем изменения CTRL+o > Enter > CTRL+x

Рестартим ноду и проверяем логи

sudo systemctl restart massad
sudo journalctl -f -n 100 -u massad

Если у Вас какие-то ошибки в логах, значит вы допустили ошибки при редактировании конфига, чтобы вернуться к бэкапу вводим команды

cp $HOME/massa/massa-node/base_config/config.toml.backup $HOME/massa/massa-node/base_config/config.toml
 sudo systemctl restart massad