Theorie: quel role joue un node?



Mis à jour le Jan. 24, 2022, 8:08 a.m.


 

Quel est le rôle d'un nœud complet Bitcoin ?


 

Bonjour à vous mes chers crypto-curieux.

 

Dans l'article précédent de cette section, nous avons examiné une vue d'ensemble de l'architecture de Bitcoin en tant que système monétaire décentralisé fonctionnant sur un réseau peer-to-peer. En restant au plus haut niveau, nous avons divisé l'architecture en deux grands composants. Les règles qui définissent le fonctionnement de Bitcoin en tant que système monétaire, livré sous la forme d'un logiciel et d'une hiérarchie de participants au réseau qui le font fonctionner.

Dans cet article, nous détaillerons les fonctions essentielles du système, puis nous nous intéresserons au premier des participants au réseau, le Full Node. Les nœuds complets jouent un rôle crucial en remplissant les fonctions essentielles de Bitcoin et en permettant à d'autres de se connecter au réseau.



Les principales fonctions du système monétaire de Bitcoin


Afin de fournir un système monétaire fonctionnel, sans médiateur central, Bitcoin doit réaliser ce qui suit :

      •     Maintenir un grand livre historique précis des transactions et des soldes non dépensés.
      •     Valider les nouvelles transactions qui sont conformes aux règles (mécanisme de consensus)
      •     Ajouter ces transactions au registre historique, dans l'ordre de date et le format de données corrects.
      •     Émettre de nouveaux bitcoins au taux défini - actuellement 6,25BTC par nouveau bloc.
      •     Permettre aux portefeuilles de dépenser et de recevoir des transactions et de se synchroniser avec le grand livre.
      •     Agir en tant que service pour les utilisateurs/services externes afin de référencer les données transactionnelles.
      •     acheminer les informations entre les participants de son réseau peer-to-peer.

Satoshi Nakamoto a encapsulé ces fonctions dans le code de référence original qu'il a écrit en 2008.  Il a depuis été mis à jour et est disponible dans un client de référence, le plus couramment utilisé étant Bitcoin Core.

 

Participants au réseau Bitcoin
Le réseau Bitcoin n'a pas de hiérarchie, mais comporte différents types de nœuds remplissant plus ou moins les fonctions requises.

    Nœuds complets : Toutes les fonctions sauf la création de nouveaux bitcoins

      •     Nœuds légers : Routage et portefeuille ( 5 & 7)
      •     Mineurs : Émission/commande ; routage et registre complet (3,4 et 7)
      •     Clients API - Fournissant des connexions prêtes à l'emploi à Bitcoin Core (6)
      •     Services tiers : Se connectant à Bitcoin Core via les clients API ou directement aux nœuds complets pour alimenter des services externes.



Chacune des parties du réseau Bitcoin représente une opportunité pour vous de participer activement au fonctionnement et à l'expansion de son écosystème, mais le Full Node est le plus crucial, il fait fonctionner Bitcoin Core et emboîte toutes les fonctions (sauf le Mining) par défaut.


Exécution d'un Full Node

En exécutant Bitcoin Core, toute personne disposant d'une configuration informatique modeste et de compétences peut devenir un nœud sur le réseau Bitcoin, en aidant à remplir les fonctions importantes et en fournissant une passerelle à ceux qui souhaitent créer des services pour développer l'écosystème et l'adoption par les utilisateurs.

Il s'agit d'un logiciel open source maintenu et développé par une équipe bénévole, connu, de manière confuse, sous le même nom : Bitcoin Core.

Il est écrit en C++ et peut être téléchargé gratuitement sur Bitcoin.org. La synchronisation prendra plusieurs jours car elle comprend une copie du registre des transactions, connu sous le nom de Bitcoin Blockchain.

La blockchain Bitcoin complète représente actuellement plus de 350 Go, mais une fois le téléchargement terminé - appelé téléchargement initial de la blockchain (IBD) - vous pouvez commencer à jouer un rôle direct dans le soutien de l'écosystème Bitcoin.

L'exécution d'un nœud complet implique le maintien d'un enregistrement constamment mis à jour du grand livre des transactions en bitcoins, connu sous le nom de blockchain Bitcoin. Cela signifie que l'exécution d'un nœud complet nécessite une bande passante importante.

    Un nœud complet est chargé d'inspecter l'authenticité de chaque signature numérique avant d'ajouter un nouveau bloc à la blockchain.

    Un nœud complet a le pouvoir de rejeter les transactions ou les blocs qui ne respectent pas le protocole.

Maintien de la blockchain bitcoin

La blockchain bitcoin est, comme son nom l'indique, une chaîne reliée de transactions bitcoin historiques enregistrées dans des blocs de données successifs horodatés. Elle fournit l'historique précis des règlements dont tout système monétaire a besoin.

Les blocs sont liés entre eux à l'aide d'horodatages et de hachages cryptographiques et sont créés (via le processus de minage) à des intervalles d'environ 10 minutes, qui ajuste sa difficulté toutes les deux semaines pour y parvenir (détaillé ci-dessous).

Chaque bloc de transactions possède un hachage permettant de valider l'intégrité du précédent, assurant ainsi un modèle séquentiel de blocs appelé la blockchain.

Le premier bloc du réseau Bitcoin est appelé bloc Genesis car il ne fait référence à aucun bloc précédent. Au lieu de cela, il a été codé en dur dans le code source par Satoshi.

La taille de chaque bloc ne dépasse pas 1 Mo, avec une capacité d'environ 4 000 transactions (la taille de chaque transaction est en moyenne de 250 octets). La limitation de la taille est cruciale pour l'objectif de décentralisation, car toute augmentation du stockage rend le DIB plus grand.

S'il est trop grand, il limite les possibilités de participation, ce qui est l'antithèse de l'ouverture et de l'inclusion. Cela prendra tout son sens à mesure que nous entrerons dans les détails des participants au système qui produisent les blocs, valident et vérifient les transactions.

De la même manière qu'une base de données est modélisée, le réseau Bitcoin fonctionne comme une base de données répliquée où chacun contient la même liste de transactions Bitcoin précédentes. Les nœuds complets propagent ces "données de transaction" (paiements) et ces "données de bloc" (ajouts au grand livre).

La complexité de l'architecture Bitcoin réside dans le fait que les nœuds agissent indépendamment les uns des autres tout en maintenant un réseau hautement sécurisé et anonyme. Bien que toutes les crypto-monnaies ne suivent pas l'architecture du réseau Bitcoin, il s'agit du premier réseau de crypto-monnaies réussi et actuellement le plus important, et il a été utilisé comme modèle pour de nombreuses crypto-monnaies ultérieures, qui ont adapté ses règles et ses fonctions.
Acheminement et stockage des transactions

Un nœud complet valide toute transaction qui lui est envoyée car il inclut une copie complète de la blockchain Bitcoin - présentée ci-dessus. Une fois qu'une transaction bitcoin est envoyée à un nœud connecté au réseau bitcoin, la transaction sera validée par ce nœud.

La validation est cruciale pour maintenir l'intégrité de l'ensemble du système, c'est pourquoi l'exécution d'un nœud complet soutient activement Bitcoin. La validation consiste à assurer un consensus sur :

    Le nombre de bitcoins que chaque bloc peut créer. (Actuellement 6,25 BTC)
    Les transactions ayant des signatures correctes pour les bitcoins à dépenser.
    Les transactions/blocs se déroulant dans le format de données correct.
    Aucune sortie de transaction n'est dépensée deux fois dans la blockchain.

S'il est valide, chaque nœud propagera les transactions aux autres nœuds auxquels il est connecté, et un message de succès ou d'échec sera renvoyé de manière synchrone à l'initiateur, en fonction de la validité des nouvelles transactions.

Une fois que la validité de la transaction a été prouvée, le nœud la propage aux autres nœuds, puis elle est récupérée par un mineur et, après que la preuve de travail requise a été effectuée, elle est ajoutée au bloc suivant.

Cette structure empêche le spamming, les attaques par déni de service ou d'autres attaques nuisibles contre le système bitcoin. En un mot, chaque nœud valide indépendamment chaque transaction avant de la propager plus loin.


Communiquer avec Bitcoin Core et contrôler les fonctions

Bitcoin Core agit comme un serveur, ce qui signifie que toutes les fonctions imbriquées - énumérées ci-dessus - peuvent être accédées et contrôlées par le client. Les nœuds complets le font en utilisant des commandes définies au format JSON-RPC (Remote Procedure Calls) qui sont disponibles dans toute une série de langages. Il y a donc de fortes chances que, si vous avez des compétences en programmation, vous puissiez communiquer avec Bitcoin Core et créer des fonctions.

Étant donné que Bitcoin Core inclut l'intégralité de la blockchain - le registre historique complet des transactions et des soldes en bitcoins - les utilisations possibles de ces informations ne sont limitées que par votre imagination et vos compétences en programmation.

Voici une liste des moyens de communiquer avec Bitcoin Core.

Python ; Ruby ; Erlang ; PHP ; JAVA ; Perl ; Go ; .Net ; JS ; Deno ; Ligne de commande ; C ; Clojure ; C##.

Tous les détails peuvent être trouvés sur le Bitcoin Wiki: BITCOIN WIKI

Il existe cependant un raccourci fourni par la couche intermédiaire (parfois appelée couche client) d'API préconstruites qui feront le gros du travail pour vous.

Avantages de l'exécution d'un nœud bitcoin

L'exécution d'un nœud bitcoin complet n'est pas récompensée par des pièces de monnaie, mais elle s'accompagne d'avantages intangibles. Ces avantages sont les suivants

    L'exécution d'un nœud bitcoin complet augmente la sécurité d'une transaction. Si vous effectuez plusieurs transactions BTC par jour, vous pouvez accéder à des informations actualisées concernant vos transactions directement à partir de la blockchain de Bitcoin.

    En exécutant un nœud complet, vous pouvez appliquer les règles de consensus de Bitcoin et avoir le pouvoir de rejeter une transaction qui enfreint les règles. De plus, plus il existe de copies de la blockchain Bitcoin, plus la plateforme est résiliente. Ainsi, vous ne contribuez pas seulement à améliorer la sécurité, mais aussi à renforcer le réseau Bitcoin.

    Si vous êtes un négociant ou un détenteur, vous aurez un accès immédiat aux grandes transactions qui peuvent faire bouger le marché. En fait, un document de recherche publié par Lennart Ante recommande aux traders d'exécuter eux-mêmes un nœud Bitcoin pour évaluer le marché.

    En dehors des nœuds, les transactions en bitcoin sont traitées par un tiers. Les personnes qui sont très soucieuses de leur vie privée devraient gérer leurs propres nœuds Bitcoin afin de profiter pleinement du système de confidentialité de Bitcoin.

    En cas de hard fork, les nœuds Bitcoin complets ont la possibilité de choisir la chaîne à rejoindre. Ainsi, si vous gérez un nœud Bitcoin complet, vous pouvez participer à la gouvernance du protocole Bitcoin. Pour en savoir plus sur les forks, cliquez ici.



Gestion d'un nœud

En gérant un nœud, vous pouvez participer activement à la révolution cryptographique en aidant à façonner un système monétaire alternatif. Avant d'entamer le processus, vous devez connaître les risques et les exigences associés à la gestion d'un nœud Bitcoin. Nous allons nous plonger dans ce sujet.

1) Sécurisez votre portefeuille

Lorsque vous exécutez un nœud Bitcoin, vous pouvez stocker vos bitcoins dans le portefeuille central Bitcoin, mais prenez des mesures de sécurité comme vous le feriez pour tout autre portefeuille de crypto-monnaie.

2) Configuration minimale pour un nœud complet

    Ordinateur de bureau ou portable avec des versions à jour du logiciel d'exploitation

    200 Go d'espace disque libre, avec une vitesse de lecture/écriture minimale de 100 mb/s.

    2 Go de mémoire vive

    Une connexion internet rapide avec une vitesse minimale de 500 kb/seconde

    Une connexion non mesurée ou une connexion avec des limites de téléchargement élevées, ainsi qu'une connexion sans limites de téléchargement.

    Un minimum de six heures par jour pour le fonctionnement de votre nœud.

Remarque : assurez-vous que votre ordinateur portable ou de bureau fonctionne de manière optimale, car la plupart des systèmes d'exploitation permettent à vos ordinateurs de passer en mode basse consommation dès que l'économiseur d'écran est activé. Cela arrêtera ou ralentira le trafic.

3) Problèmes que vous pouvez rencontrer

    Légaux : Assurez-vous que votre pays n'a pas interdit le bitcoin.

    Limitation de la bande passante : vérifiez la bande passante de votre connexion Internet auprès de votre fournisseur d'accès. L'objectif est de faire fonctionner le nœud Bitcoin.

    Accès au pare-feu : Comme pour n'importe quelle blockchain, les spammeurs essaient également de nuire à la blockchain Bitcoin. Mais soyez assuré que le réseau Bitcoin est sûr et n'affectera pas votre matériel. Certains programmes antivirus peuvent rendre difficile l'exécution du nœud Bitcoin. Vérifiez donc les logiciels antivirus de votre système avant de commencer le processus.

    Risques ciblés : Les pirates ou les spammeurs qui souhaitent miner le réseau Bitcoin sont constamment à l'affût pour attaquer un nœud bitcoin complet. Prenez donc des précautions supplémentaires pour vous assurer que votre matériel ne sera pas attaqué.

3) Options d'exécution du nœud Bitcoin

Il existe trois options pour exécuter un nœud Bitcoin complet :

i) L'exécuter sur un réseau privé virtuel (VPN).

ii) L'exécuter sur une solution "prête à l'emploi", comme Lighting In A Box, Raspiblitz, Nodl, Casa Node, etc.

iii) L'exécuter sur une solution personnalisée, comme Raspberry PI 4- un mini-ordinateur qui a la capacité d'exécuter des nœuds complets sur le réseau Bitcoin.

4) Maintenant, le processus pour exécuter un nœud Bitcoin sur un ordinateur en utilisant le VPN

Étape 1 : La première étape consiste à préparer votre matériel pour exécuter le nœud Bitcoin.

Étape 2 : Choisissez le système d'exploitation que vous souhaitez utiliser pour exécuter le nœud Bitcoin. Vous pouvez choisir parmi les distributions Windows (7, 8 ou 10), les distributions Linux (Debian, Ubuntu, etc.) et Mac OS.

Étape 3 : installez Bitcoin sur votre matériel en suivant ces instructions étape par étape.

Étape 4 : Suivez ces étapes pour configurer votre routeur afin d'autoriser le port 8333 :

a) Connectez-vous à votre routeur, et recherchez la section de transfert de port (serveur virtuel). Vous la trouverez sous la section "NAT".

b) Entrez votre adresse IP...

c) Tapez '8333' à la fois sur Internal Port Start et External Port Start.

d) Sélectionnez TCP/UDP dans la section "Protocol".

e) Cliquez sur Appliquer/Enregistrer


Aider à construire et à maintenir Bitcoin Core

Si votre intérêt n'est pas tant de participer à l'écosystème que de construire l'infrastructure qui le sous-tend, vous n'avez pas besoin de permission.

Bitcoin Core est maintenu par une équipe volontaire de contributeurs, et chacun est libre de proposer des changements, de tester le code, de le réviser et de faire des commentaires. Les changements majeurs apportés à Bitcoin Core sont proposés dans ce que l'on appelle des BIP (Bitcoin Improvement Proposals). Celles-ci nécessitent un processus formel de proposition, de discussion et d'approbation. Certaines des plus grandes chances de Bitcoin, y compris Segwit - résultant de la soi-disant guerre de la taille des blocs - sont venues par le biais de BIPs.

Les corrections de bugs plus petits et la maintenance ne sont pas tenues de passer par le processus formel des BIP, car en de rares occasions, il s'agit de corrections de vulnérabilités importantes. Ce fut le cas en 2018, lorsqu'un correctif a été nécessaire, qui aurait pu conduire à la création de bitcoins au-delà du plafond d'approvisionnement fixe, ce qui aurait détruit la confiance dans l'ensemble du système.

Vous n'avez pas nécessairement besoin d'être un développeur pour aider à améliorer Bitcoin Core. Vous pouvez aider à améliorer la documentation, la traduction, suggérer des changements de processus ou des améliorations de l'interface utilisateur.

Comme alternative à la construction et à la maintenance de Bitcoin Core, il existe des implémentations complètement séparées du protocole Bitcoin, telles que Libbitcoin, qui agissent comme des collections de bibliothèques C++ open source pour la construction d'applications bitcoin.

Pour en savoir plus sur la contribution à Bitcoin Core, veuillez noter qu'il s'agit d'un canal de soutien pour Bitcoin. Dans le prochain article, nous verrons le rôle que jouent les mineurs dans le soutien du réseau Bitcoin et comment vous pouvez participer au processus de minage.

 

Bien à vous mes chers crypto-curieux,
Cryptonymous

    Theorie: Qu'est-ce que la crypto?

    Theorie: Qu'est ce que le bitcoin?

    Theorie: Qu'est-ce que l'architecture Bitcoin?

    Theorie: quel role joue un node?

    Theorie: quel role joue un mineur?

    Theorie: La blockchain c'est quoi?

    Theorie: un stable coin c'est quoi?

    Theorie: Ethereum Kezako?

    Theorie: un NFT c'est quoi?

    Theorie: La DEFI c'est quoi

    Théorie: analyse fondamentale

    Théorie: Fonctionnement des transactions