Утилита мониторинга рассинхронизации

Специальная утилита, которая позволяет узнать, не произошло ли рассинхронизации БД на указанных нодах. Утилита может работать в качестве демона или быть вызвана однократно. Принцип работы основан на следующем: В каждый блок записывается хэш от всех изменений, сделанными всеми транзакциями блока.Затем у указанных нод берется максимальный общий блок, блок с этим ID запрашивается у всех нод, сравнивается хэш изменений, если он различается, то на заданный email посылается сообщение о рассинхронизации.

Где находится

tools/desync_monitor/

Флаги

Утилита имеет следующие флаги командной строки:

  • confPath - путь до файла конфигурации. По умолчанию config.toml.
  • nodesList - список хостов опрашиваемых нод, через запятую. По умолчанию 127.0.0.1:7079.
  • daemonMode - запуск в виде демона, применяется если нужен опрос каждые N секунд. По умолчанию false.
  • queryingPeriod - если осуществлен запуск в виде демона, раз в сколько секунд опрашивать ноды. По умолчанию 1 cекунда.
  • alertMessageTo - на какой email отправлять сообщение с ошибкой. По умолчанию alert@apla.io.
  • alertMessageSubj - тема сообщения об рассинхронизации. По умолчанию problem with nodes synchronization.
  • alertMessageFrom - от кого будет получено сообщение. По умолчанию monitor@apla.io.
  • smtpHost - хост SMTP сервера через который будет отправлен email. По умолчанию «».
  • smtpPort - порт SMTP сервера через который будет оправлен email. По умолчанию 25.
  • smtpUsername - имя пользователя, для подключения к SMTP. По умолчанию «».
  • smtpPassword - пароль для подключения к SMTP. По умолчанию «».

Конфигурация

Утилита также имеет конфигурационный файл в формате toml. По умолчанию ищется файл config.toml в папке в которой запущен бинарник. Переопределить путь к файлу можно с помощью флага configPath

Пример конфигурационного файла

nodes_list = ["http://127.0.0.1:7079", "http://127.0.0.1:7002"]

[daemon]
daemon = false
querying_period = 1

[alert_message]
to = "genesis@genesis.space"
subject = "problem with genesis nodes"
from = "monitor@genesis.space"

[smtp]
host = ""
port = 25
username = ""
password = ""
  • nodes_list - список хостов опрашиваемых нод

[daemon]

Настройки режима демона.

  • daemon_mode - работать в виде демона, периодически опрашивая указанный список хостов нод.
  • querying_period - с каким периодом проводить опрос в секундах.

[alert_message]

Настройки отправляемого сообщения.

  • to - на какой адрес слать сообщение об рассинхронизации блокчейна.
  • subject - тема сообщения об рассинхронизации.
  • from - от кого будет получено сообщение.

[smtp]

Настройки SMTP сервера, через который сообщение об рассинхронизации блокчейна будет отправлено.

  • host - хост SMTP серевера, через который будет отправлен email.
  • port - порт SMTP сервера, через который будет отправлен email.
  • username - имя пользователя, для подключения к SMTP.
  • password - пароль для подключения к SMTP.