121 / 691IBD

Initial block download

IBD — перша синхронізація нового вузла з історією Bitcoin. Вона охоплює отримання даних, перевірку блоків і побудову стану невитрачених виходів, а не лише передавання файлів.

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.

DOC · 001Bitcoin Developer Guide — Initial Block DownloadДокументація ↗DOC · 002Bitcoin Core — validationДокументація ↗DOC · 003Bitcoin Core — chainstateДокументація ↗DOC · 004Bitcoin Core — AssumeUTXO designДокументація ↗DOC · 005Bitcoin Core — getblockchaininfoДокументація ↗DOC · 006Satoshi Nakamoto — Bitcoin whitepaperПервинне джерело ↗
Спочатку джерела · Не інвестиційна порада