IBD — больше, чем загрузка файлов. Full Node строит проверенный набор UTXO из истории; проверки старых скриптов зависят также от assumevalid.
Узел находит адреса других узлов и синхронизирует заголовки. Заголовок связывает историю и содержит Proof of Work, но сам не доказывает допустимость всех транзакций блока. [Bitcoin Developer Guide — Initial Block Download] [Satoshi Nakamoto — Bitcoin whitepaper]
Накопленная работа определяет ветвь-кандидата для проверки. Ни наибольшее число заголовков, ни утверждение другого узла не заменяют работу и полные проверки блоков. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation] [Satoshi Nakamoto — Bitcoin whitepaper]
Блоки можно загружать параллельно от нескольких узлов. Подключение к допустимой цепи учитывает прежнее состояние: выходы нельзя проверить без необходимой истории. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation]
Full Node проверяет структуру, Merkle root, правила расходования и пределы эмиссии, среди прочего. Правила консенсуса применяются по высоте и активациям; заголовки не являются полной валидацией. [Bitcoin Core — validation] [Bitcoin Core — chainstate]
Подключение блоков удаляет потраченные выходы и добавляет новые UTXO. База отражает текущие возможности расходования, а не все исторические транзакции или балансы адресов. [Bitcoin Core — validation] [Bitcoin Core — chainstate]
При достаточно глубокой известной истории и необходимых условиях assumevalid может пропускать старые проверки скриптов. Это не принятие произвольной истории без проверки; assumevalid=0 отключает оптимизацию. [Bitcoin Core — validation]
Обрезка удаляет старые файлы блоков после обработки и сохраняет UTXO и нужные метаданные. Она экономит постоянное место, но не отменяет получение и обработку истории при обычном IBD. [Bitcoin Core — validation] [Bitcoin Core — chainstate]
Bitcoin Core v29.0 учитывает возраст вершины, минимальную работу и состояние загрузки; после завершения флаг не возвращается к true в этом процессе. Это рабочая эвристика, не доказательство знания последней глобальной вершины. [Bitcoin Core — validation] [Bitcoin Core — getblockchaininfo]
Время зависит от процессора, памяти, диска, сети и доступных узлов. verificationprogress из getblockchaininfo оценивает работу проверки, а не гарантированное время завершения или только долю загруженных байтов. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — getblockchaininfo]
AssumeUTXO может использовать поддерживаемый снимок UTXO для ранней работы у вершины. История проверяется в фоне, результат сравнивается со снимком; ранняя пригодность не означает завершённую проверку истории. [Bitcoin Core — validation] [Bitcoin Core — AssumeUTXO design]
Для полной картины прочитайте эту статью вместе с Pruned node, AssumeUTXO, Block propagation, Compact block relay. На эту статью также ссылаются Pruned node, AssumeUTXO.