Crunch bot - автоматические выплаты наград
🪓 Telegram канал UTSA 🪓 Telegram чат UTSA
Crunch - это интерфейс командной строки (CLI) для простой автоматизации выплат вознаграждений за стейкинг в цепочках на основе Substrate
- запрашивать награды за стейкинг для одного или списка валидаторов в конце каждой эпохи или каждые X часов
- получать уведомления о сумме и ставке общих наград за стейкинг, полученных каждым валидатором и его номинаторами
- получать статистику для каждого валидатора. Например - коэффициент включения, коэффициент заявленных наград, тенденция очков эпохи, активность для текущей эпохи
- проверить любые невостребованные эпохи для заданного валидатора
Со всеми возможностями Crunch можно ознакомиться на официальной странице github
Установка crunch-bot
Создаем каталог и скачиваем бинарный файл
mkdir $HOME/.kusama/crunch-bot && cd $HOME/.kusama/crunch-bot wget https://github.com/turboflakes/crunch/releases/download/v0.18.1/crunch chmod +x $HOME/.kusama/crunch-bot/crunch cp $HOME/.kusama/crunch-bot/crunch /usr/local/bin/
crunch --version #crunch 0.18.1
При запуске на ubuntu 22.04 может возникнуть ошибка библиотеки openssl
Вы можете установить ее самостоятельно
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb dpkg -i libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb
Настройка .env
Создаем основной конфигурационный файл .env и настраиваем его. В примере ниже предоставлен упрощенный конфигурационный файл, в котором используется 1 кошелек stash валидатора Kusama. Вы можете ознакомиться с полной функциональностью здесь
По умолчанию crunch попытается подключиться к ws://IP:9944
Если Вы используете RPC для подключения, то добавьте следующий флаг CRUNCH_SUBSTRATE_WS_URL=ws://IP:9944
- CRUNCH_STASHES на stash Вашего валидатора
- CRUNCH_MATRIX_USER на Ваш основной аккаунт matrix
- CRUNCH_MATRIX_BOT_USER на Ваш дополнительный аккаунт matrix, который Вам необходимо будет создать заранее и от которого Вы будете получать сообщения
- CRUNCH_MATRIX_BOT_PASSWORD на Ваш пароль от дополнительного аккаунта matrix
nano $HOME/.kusama/crunch-bot/.env
# ---------------------------------------------------------------- # crunch CLI configuration variables # ---------------------------------------------------------------- # CRUNCH_STASHES=JHRygZAwLR5oScvgF6QcLLR3sFx9GFZWYzirx2cvgF6QcLL CRUNCH_LIGHT_CLIENT_ENABLED=false CRUNCH_MAXIMUM_PAYOUTS=4 CRUNCH_MAXIMUM_HISTORY_ERAS=4 CRUNCH_MAXIMUM_CALLS=3 # # ---------------------------------------------------------------- # Matrix configuration variables # ---------------------------------------------------------------- # CRUNCH_MATRIX_DISABLED=false CRUNCH_MATRIX_PUBLIC_ROOM_DISABLED=true CRUNCH_MATRIX_USER=@matrix:matrix.org CRUNCH_MATRIX_BOT_USER=@matrix_bot:matrix.org CRUNCH_MATRIX_BOT_PASSWORD="password_bot" # # ---------------------------------------------------------------- # Nomination Pools configuration variables # ---------------------------------------------------------------- CRUNCH_POOL_IDS=2 # 1 DOT = 10000000000 PLANCKS # 1 KSM = 1000000000000 PLANCKS CRUNCH_POOL_COMPOUND_THRESHOLD=1000000000000 CRUNCH_POOL_ONLY_OPERATOR_COMPOUND_ENABLED=true
Нам необходимо создать отдельный кошелек, с которого будет производиться оплата транзакций. Пополняем его и вписываем Seed фразу от кошелька в .private.seed
echo "utsa utsa utsa utsa utsa utsa utsa utsa utsa utsa utsa utsa">> .private.seed
Запуск crunch-bot
Теперь мы можем в информационном виде посмотреть какие награды из последних 84 эпох были востребованы, а какие не востребованы
# для Kusama crunch kusama view
'era' - запуск crunch сразу после срабатывания события EraPaid в цепочке
'daily' - повторение задачи crunch каждые 24 часа
'turbo' - повторение задачи crunch каждые 6 часов
'once' - пытается выполнить выплату один раз и выйти
tee /etc/systemd/system/crunch.service > /dev/null <<EOF [Unit] Description=Kusama Crunch Bot [Service] User=$USER ExecStart=/usr/local/bin/crunch kusama --config-path $HOME/.kusama/crunch-bot/.env rewards daily --seed-path $HOME/.kusama/crunch-bot/.private.seed Restart=always RestartSec=15 [Install] WantedBy=multi-user.target EOF
systemctl daemon-reload systemctl enable crunch systemctl restart crunch && journalctl -u crunch -f -o cat
Полезные команды
journalctl -u crunch -f -o cat
systemctl stop crunch systemctl disable crunch rm /etc/systemd/system/crunch.service systemctl daemon-reload cd $HOME rm -rf .kusama/crunch-bot