Ноды
September 15, 2022

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

Гайд по установке ноды для тестовой сети Ironfish.

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

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

Автоматическое выполнение заданий

Iron Fish - Layer 1 proof-fo-work (PoW) Использует доказательства с нулевым разглашением, дает вам полный контроль над деталями транзакции с помощью ключей просмотра учетной записи или ключей дешифрования транзакций.

Награды буду начислены за полученные очки. Работа ноды и выполнение заданий.

Зарегистрируйтесь для участия в награждаемом тестнете. Укажите такое же название Graffiti при регистрации, как и при установке ноды.

Для проверки набранных очков перейдите в leaderboard:

https://testnet.ironfish.network/leaderboard

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

CPU: 4 Core, RAM: 8 GB, SDD: 160GB, OS: Ubuntu 20.04

Используемые порты: 9033/tcp

Аренда сервера

1) Хостинг Hetzner - неплохой хостинг для аренды VPS по соотношению цена-качество, подойдет для большинства нод.

2) Хостинг Starnodes - VPS сервера с большой ёмкостью NVME накопителя. Все сервера расположены в датацентре и работают 24/7.

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

Установка общих пакетов:

sudo apt update
sudo apt install curl make clang pkg-config libssl-dev build-essential git jq mc bc screen

Откройте порт 9033/tcp в вашем фаерволе, например:

sudo ufw allow 9033/tcp

Установка NodeJS:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Установка Yarn:

sudo npm install -g yarn

Установка Rust:

sudo curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env

Установим IronFish:

sudo npm install -g [email protected]

Введем переменные:

IRONFISH_WALLET=имя кошелька
IRONFISH_NODENAME=имя ноды
echo "export IRONFISH_WALLET="${IRONFISH_WALLET}"" >> $HOME/.bash_profile
echo "export IRONFISH_NODENAME="${IRONFISH_NODENAME}"" >> $HOME/.bash_profile
source $HOME/.bash_profile

Установим имя ноды:

ironfish config:set nodeName $IRONFISH_NODENAME
ironfish config:set blockGraffiti $IRONFISH_NODENAME

Создадим кошелек кошелек:

ironfish wallet:create $IRONFISH_WALLET

Установим созданный кошелек по умолчанию:

ironfish wallet:use $IRONFISH_WALLET

Включите телеметрию:

ironfish config:set enableTelemetry true

Создайте службу для запуска:

sudo tee /etc/systemd/system/ironfishd.service > /dev/null <<EOF
[Unit]
Description=ironfishd node
After=network-online.target

[Service]
User=$USER
ExecStart=/usr/bin/ironfish start
Restart=always
RestartSec=600
RuntimeMaxSec=3600
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Добавим службу в автозагрузку и запустим ноду:

sudo systemctl daemon-reload && \
sudo systemctl enable ironfishd && \
sudo systemctl restart ironfishd 

Просмотр логов:

sudo journalctl -f -u ironfishd

Скачать снапшот для быстрой синхронизации:

sudo systemctl stop ironfishd
sudo ironfish chain:download
sudo systemctl restart ironfishd

Проверка работы ноды:

ironfish status -f

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

Для обновления нужно остановить ноду, обновить пакеты и перезапустить.

sudo systemctl stop ironfishd
sudo npm update -g [email protected]
ironfish migrations:start
sudo systemctl restart ironfishd

Теперь проверим, что нода работает:

ironfish status -f

Выполнение заданий

В текущем тестнете очки начисляются за работу ноды и выполнения 3х заданий раз в неделю: минт, бёрн и отправка.

Автоматическое выполнение заданий

Скрипт написал Cyberomanov, thx

https://github.com/cyberomanov/ironfish-mbs

Скачаем скрипт и сделаем его исполняемым:

cd && wget -O bms.sh https://raw.githubusercontent.com/starnodes/ironfish-mbs/main/mbs.sh
chmod u+x bms.sh

Создадим файлы для проверки логов:

touch /root/bms.log
touch /root/faucet.log

Выполним пробный запуск:

./bms.sh

Для автоматизации добавим задания в cron: (1я строчка запрос токенов из крана, 2я строчка выполнение заданий скриптом каждый день в 23:10)

crontab -e

Добавляем вниз строку, не забываем указать вашу почту и оставить в самом конце пустую строку, чтобы крон сохранился!!!

0 */5 * * * echo "[email protected]" | ironfish faucet | tee -a /root/faucet.log
10 23 * * * bash /root/bms.sh | tee -a /root/bms.log
# нажми CTRL+O for nano save
# нажми CTRL+X for nano exit

Перезапускаем cron:

sudo systemctl enable cron && \
sudo systemctl restart cron && \
sudo systemctl status cron

Смотрим логи выполнения команд:

cat /root/bms.log
cat /root/faucet.log

Если по какой-то причине у вас не работает автозапуск через крон, то просто запускайте скрипт вручную раз в неделю (если неудачно, то повторяйте на следующий день).

Для проверки набранных очков перейдите в leaderboard!

Живем и радуемся!

Полезные команды:

Просмотр статуса ноды:

ironfish status -f

Остановить ноду:

systemctl stop ironfishd

Узнать адрес кошелька:

ironfish wallet:address

Проверка баланса:

ironfish wallet:balance $IRONFISH_WALLET

Посмотреть выполненные транзакции:

ironfish wallet:transactions

Импортировать кошелек:

ironfish wallet:import -d /home/$IRONFISH_WALLET.json

Экспортировать (забэкапить) кошелек:

ironfish wallet:export $IRONFISH_WALLET -d /home/$IRONFISH_WALLET.json

@starnodes_ru - наш канал в Telegram с новостями и гайдами по тестнетам.

@starnodes_chat - канал, куда можно обратиться за помощью.