Настройка Снарк Стоппера
v1.2.4
Описание
Скрипт будет полезен тем, кто запускает Производителя блоков и Снарк Воркера на одном сервере. Воркер использует все ваши ядра процессора на 100%, что негативно сказывается на производителе блоков. Скрипт позволяет остановить Снарк Воркера за 3 минуты до производства блока и включит его опять через 10 минут.
Подготовка
Установка JSON
sudo apt install jq -yУстанавливаем пакет git, если он не установлен на сервере:
yes | sudo apt install gitПроверьте файл конфигурации. Есть несколько вариантов, которые вы можете переназначить.
Разблокируем приватную сеть:
sudo iptables -D OUTPUT -d 172.16.0.0/12 -j DROP1. Установка без Докера:
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-stopper2. Установка с Докером:
Скачиваем файл с конфигом:
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-stopper3. Решения ошибок
Если снарк-стоппер не может подключиться к порту 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-stopper4. Обновление
Удаляем файл с конфигом и контейнер и скачиваем новый образ:
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 -afLast updated
Was this helpful?