121 / 691IBD

Initial block download

IBD to pierwsza synchronizacja nowego węzła z historią Bitcoin. Obejmuje pobieranie danych, walidację bloków i budowę stanu niewydanych wyjść, a nie tylko przesyłanie plików.

IBD to więcej niż pobranie plików. Full Node buduje zweryfikowany zbiór UTXO z historii; kontrole dawnych skryptów zależą także od assumevalid.

Węzeł odkrywa adresy partnerów i synchronizuje nagłówki. Nagłówek łączy historię i zawiera Proof of Work, ale sam nie dowodzi poprawności wszystkich transakcji w bloku. [Bitcoin Developer Guide — Initial Block Download] [Satoshi Nakamoto — Bitcoin whitepaper]

Skumulowana praca wskazuje gałąź kandydacką do sprawdzenia. Ani największa liczba nagłówków, ani twierdzenie partnera nie zastępuje pracy i pełnych kontroli bloków. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation] [Satoshi Nakamoto — Bitcoin whitepaper]

Bloki można pobierać równolegle od wielu partnerów. Przyłączanie do poprawnego łańcucha uwzględnia wcześniejszy stan: wyjść nie da się sprawdzić bez potrzebnej historii. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation]

Full Node sprawdza między innymi strukturę, Merkle root, reguły wydawania i limity emisji. Reguły konsensusu obowiązują według wysokości i aktywacji; nagłówki nie są pełną walidacją. [Bitcoin Core — validation] [Bitcoin Core — chainstate]

Przyłączanie bloków usuwa wydane wyjścia i dodaje nowe UTXO. Baza opisuje bieżące możliwości wydawania, nie wszystkie dawne transakcje czy salda adresów. [Bitcoin Core — validation] [Bitcoin Core — chainstate]

Przy dostatecznie głębokiej znanej historii i wymaganych warunkach assumevalid może pomijać stare kontrole skryptów. Nie akceptuje dowolnej historii bez kontroli; assumevalid=0 wyłącza optymalizację. [Bitcoin Core — validation]

Przycinanie usuwa stare pliki bloków po przetworzeniu i zachowuje UTXO oraz potrzebne metadane. Oszczędza trwałe miejsce, lecz nie usuwa potrzeby pobrania i przetworzenia historii przy zwykłym IBD. [Bitcoin Core — validation] [Bitcoin Core — chainstate]

Bitcoin Core v29.0 używa wieku końca łańcucha, minimalnej pracy i stanu ładowania; po zakończeniu flaga nie wraca do true w tym procesie. To heurystyka działania, nie dowód najnowszego globalnego końca. [Bitcoin Core — validation] [Bitcoin Core — getblockchaininfo]

Czas zależy od procesora, pamięci, dysku, sieci i dostępności partnerów. verificationprogress z getblockchaininfo szacuje pracę weryfikacyjną, nie termin zakończenia ani sam udział pobranych bajtów. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — getblockchaininfo]

AssumeUTXO może użyć obsługiwanego zrzutu UTXO, by wcześniej działać przy końcu łańcucha. Historia jest sprawdzana w tle, a wynik porównywany ze zrzutem; wcześniejsza użyteczność nie oznacza zakończenia walidacji historii. [Bitcoin Core — validation] [Bitcoin Core — AssumeUTXO design]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Pruned node, AssumeUTXO, Block propagation, Compact block relay. Do tego hasła prowadzą również odsyłacze z Pruned node, AssumeUTXO.

DOC · 001Bitcoin Developer Guide — Initial Block DownloadDokumentacja ↗DOC · 002Bitcoin Core — validationDokumentacja ↗DOC · 003Bitcoin Core — chainstateDokumentacja ↗DOC · 004Bitcoin Core — AssumeUTXO designDokumentacja ↗DOC · 005Bitcoin Core — getblockchaininfoDokumentacja ↗DOC · 006Satoshi Nakamoto — Bitcoin whitepaperŹródło pierwotne ↗
Najpierw źródła · To nie jest porada inwestycyjna