Bitcoin Core hat am 15. August PR #35531 zusammengeführt, das die optionale -txindex-Datenbank neu gestaltet, mit der Knoten Transaktionen über ihre vollständige Transaktions-ID nachschlagen können. Im Mainnet-Test des Beitragenden sank der neu aufgebaute Index von rund 66 GB auf 26 GB, eine Reduktion um 61 %. Die Nachschlagezeiten blieben bei etwa 0,2 Millisekunden stabil, und der Neuaufbau selbst dauerte 1 Stunde 19 Minuten statt 1 Stunde 50 Minuten im bisherigen Format.
Warum es wichtig ist
Das alte Format speicherte jede 32-Byte-Transaktions-ID als Datenbankschlüssel, zusammen mit der Festplattenposition der Transaktion. Das neue Design komprimiert diesen Schlüssel auf ein 5-Byte-SipHash-Präfix plus ein 6-Byte-Suffix, das die Blocksequenz und den Offset der Transaktion innerhalb des Blocks kodiert. Bitcoin Core überprüft weiterhin die vollständige Transaktions-ID, bevor eine Übereinstimmung zurückgegeben wird, durchsucht Einträge mit gemeinsamem Präfix und prüft jeden Kandidaten gegen den Blockindex. Bitcoin Optech bezeichnete Kollisionen als zusätzliche Lese- und Prüfarbeit, wobei die Voll-ID-Prüfung vor falschen Treffern schützt. Die Leistung blieb im Wesentlichen unverändert.
Auswirkungen auf den Markt
Die Einsparungen beschränken sich auf -txindex, eine optionale Komponente, und schließen die Blockchain selbst sowie das übrige Datenverzeichnis eines Knotens aus. Bestehende Indizes bleiben nach einem Upgrade lesbar, behalten aber auch ihren größeren Speicherbedarf, sodass das Erreichen des 40-GB-Benchmarks eine Neuerstellung der Datenbank erfordert. Ein Downgrade bringt einen zweiten Migrationsaufwand mit sich: Die zusammengeführte Versionsnotiz erklärt, dass ältere Versionen die im kompakten Format geschriebenen Einträge nicht lesen können, sodass ein Zurückrollen einen weiteren Neuaufbau erzwingt. Stabile Binärdateien mit dieser Änderung folgen dem separaten Veröffentlichungsprozess von Bitcoin Core, wobei die erste ausgelieferte Version noch nicht feststeht. Betreiber sollten vor der Planung des Neuaufbaus auf versionsspezifische Migrationshinweise warten.
Häufig gestellte Fragen
-
Was macht Bitcoin Cores -txindex eigentlich?
Es führt eine optionale Datenbank, mit der ein Knoten Transaktionen anhand ihrer vollständigen 32-Byte-Transaktions-ID nachschlagen kann, getrennt von der Blockchain selbst und nur von Betreibern genutzt, die das Flag aktivieren.
-
Wie groß war der alte txindex und wie klein ist der neue?
Im Mainnet-Test eines Beitragenden sank der neu aufgebaute Index von rund 66 GB auf 26 GB, eine Reduktion um 61 %, nachdem das Redesign mit kompaktem Schlüssel aus PR #35531 am 15. August zusammengeführt wurde.
-
Wie verhindert das neue kompakte Schlüsselformat falsche Treffer?
Bitcoin Core verwendet ein 5-Byte-SipHash-Präfix plus ein 6-Byte-Suffix und überprüft die vollständige Transaktions-ID gegen Kandidateneinträge, bevor eine Übereinstimmung zurückgegeben wird, sodass Kollisionen nur zusätzliche Lesearbeit verursachen, keine falschen Ergebnisse.
-
Müssen Betreiber neu aufbauen, um die Einsparung von 40 GB zu erzielen?
Bestehende -txindex-Datenbanken bleiben nach dem Upgrade lesbar, behalten aber den größeren Speicherbedarf. Das Erreichen der Benchmark-Einsparung erfordert eine Neuerstellung des Index von Grund auf.
-
Was passiert, wenn man nach dem Neuaufbau ein Downgrade durchführt?
Ältere Bitcoin-Core-Versionen können die im kompakten Format geschriebenen Einträge nicht lesen, sodass eine Rückkehr zu einer früheren Version einen zweiten Neuaufbau im Legacy-Layout erzwingt, bevor der Index wieder funktioniert.