Отладка
Узел VIZ Ledger предоставляет несколько инструментов отладки: утилиты подписания транзакций для криптографической диагностики, логирование P2P-плагина с цветовыми кодами ANSI для анализа сети, а также шаблон конфигурации отладки.
Утилиты подписания транзакций
sign_transaction
Читает JSON-запросы на подписание из stdin (по одному в строку), вычисляет дайджест транзакции и подпись, и выводит результаты:
echo '{"ref_block_num":1234,"ref_block_prefix":5678,...}' | ./sign_transactionВывод включает: digest, sig_digest, key (публичный ключ) и signature.
Диагностика сбоев подписания:
- Вычислите
sig_digestс помощьюsign_transaction. - Сравните с
sig_digest(chain_id)из кошелька. - Убедитесь, что WIF-ключ соответствует заявленному ключу подписи.
sign_digest
Подписывает сырой SHA-256 дайджест с помощью WIF-ключа:
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:
[logger.sync]
level = info
appenders = stderrСообщения P2P-узла используют логгер "p2p" (не логгер по умолчанию):
[logger.p2p]
level = info
appenders = stderrКонфигурация отладки
share/vizd/config/config_debug.ini — шаблон конфигурации, оптимизированный для отладки:
- Увеличенные размеры разделяемой памяти и пороги роста для длительных реплеев.
- Единственный поток записи для детерминированной генерации блоков.
- Настроенные счётчики повторов блокировок чтения/записи.
Ключевые настройки:
shared-file-size = 12G
shared-file-full-threshold = 97
shared-file-scale-rate = 3
chainbase-check-locking = 0Рабочие процессы отладки
Сбой валидации транзакции
- Запустите
sign_transactionна JSON проблемной транзакции. - Сравните вычисленный
sig_digestсо значением из кошелька. - Убедитесь, что WIF-ключ соответствует authority аккаунта.
- Проверьте логи блоков на наличие исключений валидации.
Стопор консенсуса
- Проверьте белые логи на пропуски при приёме блоков.
- Осмотрите расписание валидаторов через
database_api.get_validator_schedule. - Проверьте **оранжевые/красные логи» на предмет отключений пиров, влияющих на синхронизацию.
Проблемы с сетевым подключением
- Проверьте голубые логи по количеству пиров и состоянию соединений.
- Проверьте белые логи по задержке приёма блоков и пропускам.
- Проверьте серые логи по состоянию DLT-синхронизации при синхронизации снапшотов.
- Проверьте оранжевые/красные логи по событиям завершения соединений и блокировке пиров.
- Сопоставьте исключения при применении блоков с конкретными номерами блоков в логах.
Реплей блоков
Реплей блоков из снимка для воспроизведения проблем:
./vizd --replay-from-snapshot --snapshot-auto-latest --plugin snapshot --data-dir /data/vizdСм. также: Сборка, Тестирование, Обзор P2P, Обзор плагинов.