Bitcoin Core a fusionné le PR #35531 le 15 août, repensant la base de données -txindex optionnelle qui permet aux nœuds de retrouver des transactions via leur identifiant complet. Dans le test mainnet du contributeur, l'index reconstruit est passé d'environ 66 Go à 26 Go, soit une réduction de 61 %. Les recherches sont restées stables à environ 0,2 milliseconde, et la reconstruction elle-même s'est terminée en 1 heure 19 minutes, contre 1 heure 50 minutes avec l'ancien format.
Pourquoi c'est important
L'ancien format stockait chaque identifiant de transaction de 32 octets comme clé de la base, aux côtés de la position disque de la transaction. La nouvelle conception compresse cette clé en un préfixe SipHash de 5 octets plus un suffixe de 6 octets encodant la séquence de bloc et le décalage de la transaction au sein du bloc. Bitcoin Core vérifie toujours l'identifiant complet de la transaction avant de renvoyer un résultat, en parcourant les entrées partageant le préfixe et en confrontant chaque candidat à l'index de bloc. Bitcoin Optech a qualifié les collisions de travail de lecture et de vérification supplémentaire, la vérification de l'identifiant complet garantissant l'absence de faux positifs. Les performances sont restées essentiellement stables.
Impact sur le marché
Les gains se limitent à -txindex, un composant optionnel, et excluent la blockchain elle-même ou le reste du répertoire de données d'un nœud. Les index existants restent lisibles après une mise à niveau, mais ils conservent aussi leur empreinte plus importante, donc obtenir le gain de référence de 40 Go exige de recréer la base. Une rétrogradation entraîne un second coût de migration : la note de version fusionnée indique que les anciennes versions ne peuvent pas lire les entrées écrites au format compact, donc revenir en arrière force une nouvelle reconstruction. Les binaires stables intégrant le changement suivent le processus de version séparé de Bitcoin Core, la première version livrée restant non précisée. Les opérateurs devraient attendre les notes de migration spécifiques à la version avant de planifier la reconstruction.
Questions fréquemment posées
-
Que fait réellement le -txindex de Bitcoin Core ?
Il maintient une base de données optionnelle qui permet à un nœud de retrouver des transactions via leur identifiant complet de 32 octets, distincte de la blockchain elle-même et utilisée uniquement par les opérateurs activant cette option.
-
Quelle était la taille de l'ancien txindex et quelle est celle du nouveau ?
Dans le test mainnet d'un contributeur, l'index reconstruit est passé d'environ 66 Go à 26 Go, soit une réduction de 61 % après la fusion le 15 août de la refonte à clé compacte du PR #35531.
-
Comment le nouveau format à clé compacte évite-t-il les faux positifs ?
Bitcoin Core utilise un préfixe SipHash de 5 octets plus un suffixe de 6 octets, puis vérifie l'identifiant complet de la transaction par rapport aux entrées candidates avant de renvoyer un résultat, donc les collisions n'ajoutent que du travail de lecture, pas de mauvais résultats.
-
Les opérateurs doivent-ils reconstruire pour obtenir les 40 Go d'économie ?
Les bases -txindex existantes restent lisibles après la mise à niveau, mais elles conservent leur empreinte plus importante. Obtenir le gain de référence exige de recréer l'index de zéro.
-
Que se passe-t-il si vous rétrogradez après la reconstruction ?
Les anciennes versions de Bitcoin Core ne peuvent pas lire les entrées écrites au format compact, donc revenir à une version antérieure force une seconde reconstruction dans l'ancien format avant que l'index ne fonctionne à nouveau.