Seed nodes
Les seed nodes sont des nœuds connus utilisés en fallback si les DNS seeds échouent. Liste codée en dur dans Bitcoin Core. Permettent au réseau de redémarrer même si les DNS sont attaqués. Maintenance réservée aux mainteneurs.
Définition
Les seed nodes (parfois appelés "hard-coded seeds" ou "fixed seeds") sont une liste d'adresses IP de nœuds Bitcoin connus, intégrée directement dans le code source de Bitcoin Core. Ils servent de filet de sécurité ultime pour bootstrapper un nœud lorsque tous les autres mécanismes de découverte de pairs échouent.
Le mécanisme de bootstrap
Quand un nouveau nœud Bitcoin démarre pour la première fois, il doit trouver des pairs auxquels se connecter. Bitcoin Core essaie dans l'ordre :
- Adresses connues : si le nœud a déjà tourné, il a un fichier
peers.datavec des pairs récents. - Manual addresses :
-addnode,-connect, ouaddnodevia RPC. - DNS seeds : interrogation de quelques noms de domaine (par ex.
seed.bitcoin.sipa.be). - Seed nodes : si les DNS seeds échouent ou si l'option
-dnsseed=0est active.
Les seed nodes sont en quelque sorte le "carnet d'adresses des urgences" du protocole.
Pourquoi en avoir
Les DNS seeds peuvent être :
- Bloqués par un FAI ou un État (censorship).
- Indisponibles temporairement (panne).
- Empoisonnés par une attaque DNS spoofing.
Sans backup, un nœud frais isolé du réseau ne pourrait jamais rejoindre la chaîne. Les seed nodes garantissent un redémarrage possible même si toute l'infrastructure DNS est compromise.
Où les trouver dans le code
Dans Bitcoin Core, c'est le fichier src/chainparamsseeds.h, généré par un script à partir de contrib/seeds/. La liste comporte plusieurs centaines d'IPv4/IPv6 et est mise à jour à chaque release par les mainteneurs.
| Type d'adresse | Nombre approximatif | |----------------|---------------------| | IPv4 mainnet | ~700 | | IPv6 mainnet | ~250 | | Testnet | ~150 | | Signet | ~30 |
Critères de sélection
Pour être inclus, un nœud doit :
- Être stable et atteignable sur plusieurs semaines.
- Servir le protocole standard (full node, services NODE_NETWORK).
- Ne pas être trop concentré géographiquement.
- Être détecté automatiquement par des crawlers comme
bitcoin-seeder(Pieter Wuille).
C'est le mainteneur de release (Wladimir van der Laan historiquement, désormais Andrew Chow et d'autres) qui valide la liste avant le tag.
Limites
- Centralisation modérée : les mainteneurs choisissent les seeds.
- Statisme : la liste fige au moment de la release ; les IPs peuvent disparaître entre deux versions.
- Pas de garantie d'honnêteté : un seed compromis peut tenter d'isoler un nœud sur une chaîne alternative (mitigé par la nécessité d'avoir 8+ connexions diverses).
À retenir
Les seed nodes sont la couche la plus profonde du mécanisme de découverte de pairs Bitcoin. Invisibles en usage normal, ils garantissent que le réseau peut redémarrer même dans un scénario d'attaque DNS coordonnée — l'un de ces petits détails de résilience qui font la robustesse du protocole.
Termes lies
- DNS seedsLes DNS seeds sont des serveurs DNS retournant des adresses IP de nœuds Bitcoin. Bootstrap initial pour qu'un nouveau nœud trouve des pairs. Maintenus par quelques contributeurs majeurs (Pieter Wuille, Luke Dashjr...). Liste codée en dur dans Bitcoin Core.
- Bitcoin CoreBitcoin Core est l'implémentation de référence du protocole Bitcoin, descendante directe du code de Satoshi. Open-source, maintenue par des centaines de contributeurs. Représente >95 % des nœuds. Le « consensus » du code Bitcoin.
- P2P (peer-to-peer)Le réseau Bitcoin est pair-à-pair : chaque nœud se connecte à d'autres pour échanger blocs et transactions. Pas de serveur central. Robuste et résistant à la censure. Décrit dans le white paper de Satoshi.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.