Skip to content

Отладка

Узел VIZ Ledger предоставляет несколько инструментов отладки: утилиты подписания транзакций для криптографической диагностики, логирование P2P-плагина с цветовыми кодами ANSI для анализа сети, а также шаблон конфигурации отладки.


Утилиты подписания транзакций

sign_transaction

Читает JSON-запросы на подписание из stdin (по одному в строку), вычисляет дайджест транзакции и подпись, и выводит результаты:

bash
echo '{"ref_block_num":1234,"ref_block_prefix":5678,...}' | ./sign_transaction

Вывод включает: digest, sig_digest, key (публичный ключ) и signature.

Диагностика сбоев подписания:

  1. Вычислите sig_digest с помощью sign_transaction.
  2. Сравните с sig_digest(chain_id) из кошелька.
  3. Убедитесь, что WIF-ключ соответствует заявленному ключу подписи.

sign_digest

Подписывает сырой SHA-256 дайджест с помощью WIF-ключа:

bash
echo '{"digest":"abc123...","wif":"5K..."}' | ./sign_digest

Полезна для подтверждения корректности chain ID и изоляции проблем пластичности подписи.


Отладка сети (P2P-логи)

P2P-плагин использует ANSI-цветовые коды для визуального разграничения в консольном выводе:

ЦветANSI-кодСодержимое
Белый\033[97mОбработка блоков: количество транзакций, задержка
Голубой\033[96mСтатистика пиров: количество соединений, байты, RTT
Серый\033[90mДетальный контекст отладки: DLT-режим, состояние синхронизации
ОранжевыйПредупреждения о соединениях и уведомления об отключении
КрасныйКритические события завершения соединения

Чтение P2P-логов:

  • Белый: Быстрая оценка активности обработки блоков и объёма транзакций.
  • Голубой: Мониторинг количества пиров и состояния соединений в реальном времени.
  • Серый: Исследование DLT-режима и деталей протокола синхронизации.
  • Оранжевый/Красный: Выявление сбоев соединений и событий блокировки пиров.

Отдельный логгер сети

Сообщения согласования синхронизации идут через логгер "sync". Включение в config.ini:

ini
[logger.sync]
level = info
appenders = stderr

Сообщения P2P-узла используют логгер "p2p" (не логгер по умолчанию):

ini
[logger.p2p]
level = info
appenders = stderr

Конфигурация отладки

share/vizd/config/config_debug.ini — шаблон конфигурации, оптимизированный для отладки:

  • Увеличенные размеры разделяемой памяти и пороги роста для длительных реплеев.
  • Единственный поток записи для детерминированной генерации блоков.
  • Настроенные счётчики повторов блокировок чтения/записи.

Ключевые настройки:

ini
shared-file-size = 12G
shared-file-full-threshold = 97
shared-file-scale-rate = 3
chainbase-check-locking = 0

Рабочие процессы отладки

Сбой валидации транзакции

  1. Запустите sign_transaction на JSON проблемной транзакции.
  2. Сравните вычисленный sig_digest со значением из кошелька.
  3. Убедитесь, что WIF-ключ соответствует authority аккаунта.
  4. Проверьте логи блоков на наличие исключений валидации.

Стопор консенсуса

  1. Проверьте белые логи на пропуски при приёме блоков.
  2. Осмотрите расписание валидаторов через database_api.get_validator_schedule.
  3. Проверьте **оранжевые/красные логи» на предмет отключений пиров, влияющих на синхронизацию.

Проблемы с сетевым подключением

  1. Проверьте голубые логи по количеству пиров и состоянию соединений.
  2. Проверьте белые логи по задержке приёма блоков и пропускам.
  3. Проверьте серые логи по состоянию DLT-синхронизации при синхронизации снапшотов.
  4. Проверьте оранжевые/красные логи по событиям завершения соединений и блокировке пиров.
  5. Сопоставьте исключения при применении блоков с конкретными номерами блоков в логах.

Реплей блоков

Реплей блоков из снимка для воспроизведения проблем:

bash
./vizd --replay-from-snapshot --snapshot-auto-latest --plugin snapshot --data-dir /data/vizd

См. также: Сборка, Тестирование, Обзор P2P, Обзор плагинов.