Ein brandneuer Full Node muss jeden Block seit 2009 herunterladen und prüfen, bevor er den aktuellen Zustand kennt. Das ist der Initial Block Download (IBD) und die schwerste Arbeit, die ein Node je leistet.
Headers zuerst
Der Node lädt zuerst nur Block-Header, je 80 Bytes, bis zu 2.000 pro Nachricht. Er prüft ihren Proof of Work und wählt die Kette mit der meisten Arbeit. Bitcoin Core verlangt auch ein Mindestmaß an Gesamtarbeit (nMinimumChainWork) und prüft zuerst die Header eines Peers, bevor es sie speichert, damit gefälschte Ketten mit wenig Arbeit seinen Speicher nicht verschwenden.
Blöcke parallel
Mit bekannter Header-Kette holt der Node Blöcke von mehreren Peers zugleich, bis zu 16 in Flight pro Peer, in einem gleitenden Fenster von 1.024 Blöcken. Blöcke werden dann der Reihe nach verbunden. Jeder aktualisiert den Chainstate.
Abkürzung 1: assumevalid
Jede Signatur zu prüfen ist der langsamste Teil. Jede Bitcoin-Core-Version enthält einen aktuellen Block-Hash. Mit assumevalid werden Script- und Signaturprüfungen für diesen Block und seine Vorfahren übersprungen, wenn er in der synchronisierten Kette liegt. Bitcoin Core 31.1 nutzt Block 938.343. Alles andere wird weiterhin verifiziert, und das UTXO-Set wird vollständig aufgebaut. Um jede Signatur zu prüfen, starte mit -assumevalid=0.
Abkürzung 2: assumeutxo
Statt das UTXO-Set von Grund auf zu bauen, kann ein Node einen Snapshot mit loadtxoutset laden. Der Snapshot wird abgelehnt, wenn sein Hash nicht einem im Quellcode entspricht. Bitcoin Core 31.1 listet Snapshots für Höhen 840.000, 880.000, 910.000 und 935.000. Der Node ist nahe der Tip schnell nutzbar, während er die volle Geschichte ab Genesis im Hintergrund prüft.
Was IBD schneller macht
- Eine SSD statt einer Spindelplatte.
- Ein größeres
-dbcache. Seit Version 31.0 ist der Standard 1.024 MiB auf Maschinen mit mindestens 4.096 MiB RAM. - Eine gute Netzverbindung.
Vertrauen
Beide Abkürzungen beruhen auf Werten, die öffentlich im Open-Source-Code geprüft werden. Sie lassen einen Node keine Kette mit weniger Arbeit akzeptieren, und beide können abgeschaltet werden.