Я пытаюсь понять структуру базовой цепочки блоков, хранящейся в основной реализации (или, скорее, просто файлы BLK, используемые полным узлом). Мой вопрос ; хранит ли цепочка блоков полную древовидную структуру, т. е. все встреченные разветвления? Или он очищает записи после разрешения форка.
Если бы я читал файлы blk последовательно, могу ли я предположить, что каждый прочитанный блок правильно упорядочен и нет разветвлений?
Спасибо!
файлы BLK не являются API. Вы не должны напрямую читать эти файлы. Что вам нужно сделать, так это запросить заголовки/блок через интерфейс JSON RPC (или интерфейс REST).
Вы можете получить хэш блока генезиса через:
bitcoin-cli getblockhash 0
Тогда можно получить блок (без транзакций):
bitcoin-cli getblock <hash>
Затем получите следующий блок, просмотрев nextblockhash
элемент в ответе блока JSON и т. д.
Также рассмотрите возможность использования интерфейса REST. Там вы можете получить двоичные ответы, которые намного быстрее (без накладных расходов на кодирование/декодирование JSON).
Питер Уилле
Бобо
Денис Леонов
Питер Уилле