Восстановление узла Qtum Core может занимать часы и даже дни — особенно при повторной индексации блокчейна, сканировании кошелька или первичной синхронизации с сетью. Без системного мониторинга легко принять нормальный процесс за зависание или, наоборот, пропустить деградацию диска, нехватку памяти и потерю соединений с пирами. Ниже — практический подход к контролю прогресса восстановления Qtum Core через RPC, журналы, системные метрики и алерты.
Что считать восстановлением
Под восстановлением Qtum Core обычно понимают один или несколько процессов:
- повторную индексацию цепочки блоков с параметром
-reindex; - сканирование кошелька для поиска недостающих транзакций с
-rescan; - обычную синхронизацию с сетью после простоя узла;
- восстановление из резервной копии кошелька или снапшота данных;
- повторную загрузку и проверку блоков после аварийного завершения.
Важно разделять эти сценарии: у них разные индикаторы прогресса и разные признаки проблем.
Ключевые метрики прогресса
Для Qtum Core полезно отслеживать набор метрик, которые доступны через RPC и журналы:
blocksиheaders— текущая высота блокчейна и высота известных заголовков;verificationprogress— доля проверенной цепочки, приблизительно от 0 до 1;initialblockdownload— признак первичной загрузки блоков;connectionsиconnections_in/connections_out— количество пиров;size_on_disk— размер данных цепочки на диске;txcountв информации о кошельке — число транзакций после rescan;mempool— размер мемпула и число транзакций;- системные показатели: загрузка CPU, потребление RAM, свободное место и очередь дискового ввода-вывода.
RPC-команды для контроля

Базовый набор команд для регулярной проверки:
qtum-cli getblockchaininfo
qtum-cli getblockcount
qtum-cli getpeerinfo
qtum-cli getmempoolinfo
qtum-cli getwalletinfo
qtum-cli getnetworkinfo
qtum-cli uptime
Для быстрого цикла мониторинга можно использовать простой скрипт:
for i in $(seq 1 10); do
date
qtum-cli getblockchaininfo | jq '.blocks, .headers, .verificationprogress, .initialblockdownload'
qtum-cli getpeerinfo | jq 'length'
sleep 60
done
Если blocks растёт, verificationprogress постепенно увеличивается, а число пиров стабильно, восстановление идёт нормально. Если высота блоков не меняется длительное время, а verificationprogress стоит на месте, следует проверить журналы, диск и сетевые соединения.
Анализ журналов
Файл debug.log остаётся основным источником деталей. В нём полезно искать сообщения о загрузке блоков, повторной индексации, сканировании кошелька, ошибках базы данных и подключении к пирам. Не стоит читать журнал целиком вручную: лучше использовать фильтрацию по ключевым словам и временным меткам.

Практические рекомендации:
- отслеживайте частоту появления новых записей о блоках;
- ищите предупреждения о нехватке места, повреждении индекса или таймаутах;
- при rescan кошелька следите за ростом
txcountи сообщениями о прогрессе сканирования; - не выполняйте повторный запуск с
-reindexили-rescanбез явной необходимости.
Мониторинг ресурсов
Восстановление Qtum Core требовательно к диску. Даже при нормальном прогрессе узкое место может находиться в подсистеме хранения. Полезно контролировать:
- свободное место через
df -h; - интенсивность дискового ввода-вывода через
iostatилиvmstat; - потребление памяти процессом Qtum Core;
- загрузку CPU и время ожидания ввода-вывода;
- состояние службы через
systemctl status.
Если свободное место приближается к критическому уровню, восстановление может остановиться или завершиться ошибкой. Для больших узлов лучше заранее предусмотреть запас диска и отдельный том для данных цепочки.
Метрики для Grafana и алертов
Для долговременного наблюдения удобно экспортировать RPC-метрики в Prometheus и строить графики в Grafana. Даже простой собственный exporter, который периодически вызывает getblockchaininfo, getpeerinfo и getwalletinfo, даёт полезные панели:
- высота блока и заголовков;
- скорость роста высоты блоков;
verificationprogress;- число входящих и исходящих соединений;
- размер цепочки на диске;

- число транзакций кошелька;
- время работы узла.
Разумные алерты:
- высота блоков не растёт более 30–60 минут при активной синхронизации;
verificationprogressне увеличивается в течение длительного периода;- число пиров падает ниже заданного порога;
- свободное место на диске меньше 10–15 процентов;
- служба Qtum Core перезапускается или завершается с ошибкой;
- в журнале появляются повторяющиеся ошибки базы данных.
Типовые сценарии восстановления
При -reindex главный индикатор — рост blocks и уменьшение отставания headers - blocks. При -rescan ключевым признаком служит рост txcount и сообщения в журнале о сканировании. При обычной синхронизации важно наблюдать за verificationprogress, числом пиров и стабильностью дискового ввода-вывода. После восстановления из резервной копии кошелька следует убедиться, что баланс, транзакции и ключи отображаются корректно, а узел продолжает синхронизацию.
Рекомендации
- Перед восстановлением делайте резервные копии кошелька и проверяйте их целостность.
- Не прерывайте reindex или rescan без крайней необходимости.
- Ведите журнал действий: время запуска, параметры, версия Qtum Core, наблюдаемые метрики.
- Настройте ротацию
debug.log, чтобы не исчерпать диск. - Проверяйте синхронизацию времени на сервере.
- Для экспериментов используйте отдельный тестовый узел.
- После завершения восстановления сравните высоту блока с публичными обозревателями сети и проверьте состояние кошелька.
Вывод
Мониторинг восстановления Qtum Core должен сочетать RPC-метрики, анализ журналов и наблюдение за ресурсами сервера. Такой подход позволяет вовремя отличить нормальную длительную синхронизацию от зависания, нехватки диска или сетевой проблемы и завершить восстановление узла предсказуемо.