Un Pruned Node est un Full Node qui vérifie lui-même les règles de Bitcoin, sans conserver indéfiniment tous les anciens blocs. Il économise de l’espace en échange d’un accès plus limité à l’historique. Il ne retire aucun bitcoin de vos fonds et ne remplace pas une sauvegarde du portefeuille.
Anna veut utiliser Bitcoin sans laisser un serveur tiers décider si ses paiements sont valides. Mais son ordinateur n’a pas la place de garder une archive complète des blocs, ces ensembles de transactions confirmées. Un Pruned Node peut lui convenir. Pendant un Initial Block Download classique (la première synchronisation du nœud), il télécharge et vérifie progressivement l’historique, puis supprime les anciens fichiers déjà traités. Il n’a pas besoin de tout conserver en même temps, mais doit quand même parcourir cette histoire lors de la synchronisation. [2] [5]
Le pruning consiste à retirer des données anciennes de manière contrôlée. Bitcoin Core supprime les fichiers de blocs admissibles et les données undo associées, qui servent à annuler les changements apportés par un bloc. Imaginez des documents de travail que l’on retire après en avoir intégré les résultats à un état tenu à jour. Les copies locales disparaissent, mais les effets des paiements valides restent. D’autres nœuds peuvent toujours conserver les mêmes blocs. [3] [7]
L’ensemble UTXO est essentiel : il réunit les sorties de transactions qui n’ont pas encore été dépensées. Chaque sortie précise un montant et les conditions permettant de le dépenser. Le nœud met cet ensemble à jour et peut ainsi repérer une tentative de dépenser une sortie déjà utilisée. Il conserve aussi un index des blocs avec leurs en-têtes, de courts enregistrements qui relient les blocs. L’ensemble UTXO n’est ni une liste de comptes ni l’historique de tous les paiements. [2] [6]
Le réseau peut suivre brièvement deux branches valides, puis continuer sur une autre branche ayant accumulé davantage de travail. Ce changement s’appelle une réorganisation. Le travail accumulé mesure la difficulté de trouver des blocs valides, représentée par leur Proof of Work, la preuve d’un travail de calcul. Le nœud doit pouvoir annuler les effets de certains blocs : il garde donc une réserve de blocs récents et de données undo. Un retour au-delà des données conservées peut exiger de récupérer des données ou de reconstruire l’état. Une limite de stockage ne rend pas les anciens paiements absolument irréversibles. [5] [7]
La cible de pruning automatique de Bitcoin Core concerne les fichiers de blocs et undo, pas tout le dossier de données du nœud. Les bases de données, les portefeuilles et d’autres fichiers occupent de la place en plus. La suppression porte sur des fichiers entiers et doit préserver la réserve nécessaire : la cible n’est donc pas un plafond strict. Prévoyez cet espace supplémentaire ; la limite de l’archive n’est pas la taille totale du nœud. [1] [4] [7]
Full dans Full Node désigne la vérification indépendante des règles, pas l’obligation de garder chaque bloc pour toujours. Un nœud d’archive et un nœud avec pruning ayant les mêmes paramètres de validation rejettent les mêmes blocs invalides. Le pruning lui-même ne désactive aucune vérification. Une signature numérique prouve l’autorisation d’un paiement à l’aide d’une clé privée, une valeur numérique secrète, sans révéler cette clé. assumevalid, par exemple, permet sous certaines conditions d’omettre une partie des vérifications historiques de signatures, mais c’est un réglage distinct. Il peut concerner les deux types de nœuds, indépendamment de la taille du disque. [5] [6]
Le nœud d’Anna continue de recevoir et de vérifier les nouvelles transactions et les blocs disponibles, et peut les relayer. Il ne peut toutefois pas envoyer un ancien bloc dont il a supprimé le fichier. Les archives complètes restent donc importantes pour les nœuds qui démarrent. Un Pruned Node n’est ni déconnecté ni une simple application légère qui se fie à des vérifications externes ; son service de données historiques est seulement plus limité. [10]
Anna restaure ensuite un portefeuille utilisé des années auparavant. Un portefeuille est une application ou un appareil permettant de recevoir et d’envoyer des bitcoins. Pour retrouver ses transactions, le logiciel parcourt les blocs concernés ; c’est un rescan. Si ces blocs manquent localement, importer une clé ou un descriptor ne les fait pas réapparaître. Le descriptor décrit la construction des adresses et des conditions de dépense. La restauration peut alors nécessiter de récupérer à nouveau l’historique. L’absence d’un ancien paiement à l’écran ne signifie donc pas, à elle seule, que les bitcoins sont perdus. [8] [9]
Les applications reliées au nœud comptent aussi. Un explorateur de tout l’historique n’a pas les mêmes besoins qu’un portefeuille suivant les nouveaux paiements. Bitcoin Core v29.0 interdit par exemple l’association du pruning avec txindex, un index auxiliaire permettant de retrouver les transactions dans les blocs stockés. Cela n’interdit pas tous les index. Vérifiez les besoins de votre logiciel avant de choisir le mode ; augmenter ensuite la limite ne recrée pas les fichiers supprimés. [1]
Un Pruned Node convient pour vérifier Bitcoin vous-même sans consulter constamment toute l’archive. Il ne dispense pas du téléchargement initial classique de l’historique ; AssumeUTXO utilise un autre mécanisme pour rendre le nœud utilisable plus tôt. Surtout, ni les blocs ni l’ensemble UTXO ne sauvegardent les clés privées qui autorisent les dépenses. Une sauvegarde du portefeuille et une procédure de restauration éprouvée restent nécessaires, quelle que soit la taille de l’archive. [2] [9]
Pour une vision complète, lisez aussi Initial Block Download, AssumeUTXO, Block Propagation, vByte, Bitcoin, Bitcoin Core. Cette entrée est également citée par Initial Block Download, AssumeUTXO, Utreexo, Compact Block Filters.