Блок-сирота — это блок, у которого нет известного родителя в самой длинной цепочке блоков.
Насколько я понимаю, это означает, что потерянный блок не имеет ссылки на него как на «предыдущий хэш блока» в любом новом блоке. Верно?
Если да, я провожу некоторые исследования и не понимаю, почему я получаю какие-то странные результаты.
Итак, я извлекаю все хэши блоков из необработанных файлов данных. Затем я извлекаю все данные «предыдущего хэша блока» из необработанных файлов данных. В результате у меня есть 2 массива: хэши блоков (массив A) и родительские ссылки (массив B). Затем, если я вычту B из A, я получу список потерянных блоков.
Это правильный способ получить потерянный черный список или нет?
PS Я получаю такие результаты после парсинга dat файлов от blk00000.dat
до blk00953.dat
(я выбрал два блока из скомпилированного списка):
000000000000000003D57B69D1AC77F64287C893C16ADBC1816C6D7386CCC3C0 – orphaned
0000000000000000011523D7477DD274B7E0DCC2C616B2E2F584FFDEC20237D3 - main chain
main chain
и orphaned
являются статусом, основанным на сайтах обозревателя блоков.
В этих двух блоках нет ссылок на «предыдущие» в необработанных файлах данных. Я в замешательстве - "почему?"
В результате у меня есть 2 массива: хэши блоков (массив A) и родительские ссылки (массив B). Затем, если я вычту B из A, я получу список потерянных блоков.
Нет, это даст вам список устаревших блоков (которые обычно называют блоками-сиротами). Что вы делаете, так это получаете все блоки, которые не являются родителями чего-либо, а не блоки, у которых нет родителей.
000000000000000003D57B69D1AC77F64287C893C16ADBC1816C6D7386CCC3C0 – orphaned
Термин «осиротевший» здесь означает, что блок не имеет потомков. Это второе значение термина «сиротский блок». Этот результат ожидается, поскольку вы удаляете из своего списка хэшей блоков список родительских блоков, а этот блок не является родительским.
0000000000000000011523D7477DD274B7E0DCC2C616B2E2F584FFDEC20237D3 - main chain
Этот блок находится в основной цепочке. Вероятно, он есть в вашем списке, потому что это то, с чем был синхронизирован ваш узел, и это был его последний блок.
\blocks\blk*.dat
файлы) не одинакова для всех, кто устанавливает биткойн-клиент?-1
.blk*.dat
в каталоге blocks
одинаковы для всех, кто подключен к биткойну?
Питер Уилле
Денис Леонов
Питер Уилле
Денис Леонов