Настройка Снарк Стоппера

v1.2.4

Описание

Скрипт будет полезен тем, кто запускает Производителя блоков и Снарк Воркера на одном сервере. Воркер использует все ваши ядра процессора на 100%, что негативно сказывается на производителе блоков. Скрипт позволяет остановить Снарк Воркера за 3 минуты до производства блока и включит его опять через 10 минут.

Данный скрипт создан пользователем @whataday2day#1271 https://github.com/c29r3/mina-snark-stopper

Подготовка

Установка JSON

sudo apt install jq -y

Устанавливаем пакет git, если он не установлен на сервере:

yes | sudo apt install git

Ваш snark worker должен быть ЗАПУЩЕН.

Проверьте файл конфигурации. Есть несколько вариантов, которые вы можете переназначить.

Разблокируем приватную сеть:

sudo iptables -D OUTPUT -d 172.16.0.0/12 -j DROP

1. Установка без Докера:

Запускать нужно в новой сессии TMUX

sudo apt-get update \
&& sudo apt-get install python3-venv tmux git -y \
&& git clone https://github.com/c29r3/mina-snark-stopper.git \
&& cd mina-snark-stopper \
&& python3 -m venv venv \
&& source ./venv/bin/activate \
&& pip3 install -r requirements.txt

Теперь нужно добавить в конфиг стоппера ваш публичный ключ и комиссию Воркера. Открываем конфиг командой:

nano $HOME/mina-snark-stopper/config.yml

В строке WORKER_PUB_KEY: YOUR_PUBLIC_KEY измените YOUR_PUBLIC_KEY на $MINA_PUBLIC_KEY В строке WORKER_FEE: 1 замените значение комиссии например с 1 на 0.25

1.1 Запуск

tmux new -s snark-stopper -d venv/bin/python3 snark-stopper.py

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

tmux attach -t snark-stopper

2. Установка с Докером:

Скачиваем файл с конфигом:

curl -s https://raw.githubusercontent.com/c29r3/mina-snark-stopper/master/config.yml > config.yml; \
touch snark_stopper.log

Теперь нужно добавить в конфиг стоппера ваш публичный ключ и комиссию Воркера. Открываем конфиг командой:

nano $HOME/config.yml

В строке WORKER_PUB_KEY: YOUR_PUBLIC_KEY измените YOUR_PUBLIC_KEY на $MINA_PUBLIC_KEY В строке WORKER_FEE: 1 замените значение комиссии например с 1 на 0.25

Запускаем контейнер:

touch snark_stopper.log; \
chmod 666 snark_stopper.log; \
sudo docker run -d \
--volume $(pwd)/config.yml:/mina/config.yml \
--volume $(pwd)/snark_stopper.log:/mina/snark_stopper.log \
--net=host \
--restart always \
--name snark-stopper \
c29r3/snark-stopper

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

sudo docker logs -f snark-stopper

3. Решения ошибок

Если снарк-стоппер не может подключиться к порту 3085:

Нужно проверить доступность порта:

nc -t -vv localhost 3085

Результат должен быть примерно таким: Connection to localhost 3085 port [tcp/*] succeeded!

Если соединение зависает, то возможны следующие варианты:

  • Доступ к порту 3085 заблокирован через ufw\iptables

  • Вы не добавили флаг контейнера докеров -p 127.0.0.1:3085:3085

  • Узел еще не синхронизирован. По этой причине стоппер не может подключиться

Порт отвечает, но стоппер по-прежнему не может подключиться:

sudo iptables -D OUTPUT -d 172.16.0.0/12 -j DROP

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

Обновить образ докера

После выполнения приведенной ниже команды перейдите к шагу 2.

sudo docker rm -f snark-stopper \
&& sudo docker pull c29r3/snark-stopper

4. Обновление

Удаляем файл с конфигом и контейнер и скачиваем новый образ:

sudo docker rm -f snark-stopper; \
curl -s https://raw.githubusercontent.com/c29r3/mina-snark-stopper/master/config.yml > config.yml; \
sudo docker pull c29r3/snark-stopper

Далее продолжаем с пункта 1 или 2.

5. Удаление

rm -rf mina-snark-stopper \
&& sudo docker rm -f snark-stopper \
&& sudo docker system prune -af

Last updated