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, Обзор плагинов.