Réseau

Découverte des pairs

Lorsqu’un client Bitcoin est lancé, il va se connecter à un ensemble de pairs pour télécharger les transactions qui ont été validées pendant son absence (autrement dit, télécharger les derniers blocs de la blockchain) et va ensuite participer au réseau — écouter les connections entrantes qui signalent de nouvelles transactions, celles qui demandent la liste des transactions effectuées pendant leur absence, etc. Pour trouver des pairs, les clients ont différentes méthodes:

  1. Plusieurs pairs fiables sont enregistrés dans des enregistrements DNS [1]. Un client obtient les adresses IP de ces pairs en lançant un nslookup et avec un peu de chance l’une d’entre elles marchera.

  2. Au besoin, une liste pairs est hard-codée dans le client [2].

  3. Lorsqu’au moins un pair a été trouvé, le client peut envoyer une requête getaddr à ce pair pour récupérer la liste des pairs qu’il connait et qui sont en ligne.

Liste complète des méthodes utilisées:
Satoshi Client Node Discovery

Pour aller plus loin:
Fallback Nodes

Synchronisation de la blockchain

Pour aller plus loin:
Entêtes
Bitcoin P2P Network
Protocol documentation / RPC API Reference.

Relai des transactions

Pour aller plus loin:
OpCheckSig
Protocol rules: tx

Mempool

Minage

Validation du bloc

Pour vérifier que le bloc est bien valide, les noeuds vérifient les conditions suivantes (non exhaustif):

Si au moins 51% du réseau valide le bloc, alors un consensus a été atteint, et le bloc est considéré comme confirmé.

Pour aller plus loin:
Protocol rules: block

Conflits

Pour aller plus loin:
Confirmation

Forks de la blockchain

Pour aller plus loin:
Hard Fork vs Soft Fork Explained