121 / 691IBD

Počáteční stažení bloků

IBD je první synchronizace nového uzlu s historií Bitcoin. Zahrnuje získání dat, ověřování bloků a vytvoření stavu neutracených výstupů, ne jen přenos souborů.

IBD není pouhé stažení souborů. Full Node buduje ověřený UTXO set z historie; chování starých skriptových kontrol závisí také na nastavení assumevalid.

Uzel zjistí adresy peerů a synchronizuje hlavičky. Hlavička propojuje historii a obsahuje Proof of Work, ale sama neprokazuje platnost všech transakcí uvnitř bloku. [Bitcoin Developer Guide — Initial Block Download] [Satoshi Nakamoto — Bitcoin whitepaper]

Kumulovaná práce určuje kandidátní větev k ověření. Největší počet hlaviček ani tvrzení peera nenahrazují práci a úplné kontroly bloků. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation] [Satoshi Nakamoto — Bitcoin whitepaper]

Bloky lze získávat paralelně od více peerů. Připojení k platnému řetězci respektuje předchozí stav: transakční výstupy nelze ověřit bez potřebné historie. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation]

Full Node kontroluje mimo jiné strukturu, Merkle root, pravidla utrácení a emisní omezení. Konsenzuální pravidla se uplatňují podle příslušné výšky a aktivací; hlavičky nejsou plná validace. [Bitcoin Core — validation] [Bitcoin Core — chainstate]

Při připojování bloků mizí utracené výstupy a přibývají nové UTXO. Tato databáze zachycuje aktuální možnost utrácení, nikoli seznam všech historických transakcí nebo účetních zůstatků adres. [Bitcoin Core — validation] [Bitcoin Core — chainstate]

Nastavení assumevalid může za podmínek dostatečně hluboké známé historie vynechat staré skriptové kontroly. Neznamená přijetí libovolné historie bez kontroly; assumevalid=0 tuto optimalizaci vypíná. [Bitcoin Core — validation]

Pruning maže staré blokové soubory až po jejich zpracování a ponechává UTXO set i potřebná metadata. Šetří trvalé místo, nikoli nutnost získat a zpracovat historii při běžném IBD. [Bitcoin Core — validation] [Bitcoin Core — chainstate]

Bitcoin Core v29.0 používá stáří špičky, minimální práci a stav načítání; po dokončení se příznak v daném procesu nevrací na true. Jde o heuristiku provozu, ne důkaz nejnovější globální špičky. [Bitcoin Core — validation] [Bitcoin Core — getblockchaininfo]

Čas závisí na procesoru, paměti, disku, síti i dostupnosti peerů. Procento verificationprogress z getblockchaininfo je odhad ověřovací práce, ne závazný čas dokončení ani samotný podíl stažených bajtů. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — getblockchaininfo]

AssumeUTXO může použít podporovaný snapshot UTXO setu pro dřívější provoz na špičce. Historie se ověřuje na pozadí a výsledek se porovná se snapshotem; rychlejší použitelnost není dokončená historická validace. [Bitcoin Core — validation] [Bitcoin Core — AssumeUTXO design]

Pro nejúplnější obraz čtěte toto heslo společně s Ořezaný uzel, AssumeUTXO, Šíření bloků, Kompaktní přenos bloků. Opačným směrem na něj odkazují také Ořezaný uzel, AssumeUTXO.

DOC · 001Bitcoin Developer Guide — Initial Block DownloadDokumentaceDOC · 002Bitcoin Core — validationDokumentaceDOC · 003Bitcoin Core — chainstateDokumentaceDOC · 004Bitcoin Core — AssumeUTXO designDokumentaceDOC · 005Bitcoin Core — getblockchaininfoDokumentaceDOC · 006Satoshi Nakamoto — Bitcoin whitepaperPrimární zdroj
Primární zdroje · Nejde o investiční doporučení