Nœuds et clients Ethereum : un guide complet

Dans le monde informatique, un « client » fait référence à tout type de logiciel téléchargé sur votre ordinateur et vous aide à interagir avec un autre type de logiciel ou de service fourni par un serveur. Par exemple, Gmail est un logiciel client qui se connecte à un serveur de messagerie et permet aux utilisateurs d’envoyer et de recevoir des e-mails.

Un client Ethereum est le logiciel nécessaire pour permettre aux nœuds Ethereum de lire des blocs sur la blockchain Ethereum et les contrats intelligents basés sur Ethereum. Un « nœud » est la partie en cours d’exécution du logiciel client. Pour exécuter un nœud, vous devez d’abord télécharger une application cliente Ethereum.

Que sont les nœuds Ethereum ?

Un « nœud » est un ordinateur qui exécute une certaine fonction sur le réseau Ethereum et exécute un logiciel client pour le faire. Selon vos besoins spécifiques, qu’il s’agisse d’une application décentralisée (dapp) ou d’un portefeuille, il existe trois types de nœuds différents qui peuvent être exécutés par n’importe quel client : les nœuds complets, les nœuds légers et les nœuds d’archive. Chaque nœud interprétera les données différemment et offrira différentes méthodes de synchronisation – cela fait référence à la rapidité avec laquelle votre nœud est capable de récupérer des informations mises à jour pour que votre client les interprète.

  • Les nœuds complets sont pleins de données ; ils stockent et peuvent distribuer toutes les données de la blockchain du réseau Ethereum. Un nœud complet participera en plus à la validation de bloc (c’est-à-dire vérifier tous les blocs et états sur le réseau).

Un avantage de la mise en œuvre d’un nœud complet est qu’il peut interagir directement avec n’importe quel contrat intelligent sur la blockchain publique. Les nœuds complets peuvent également déployer directement des contrats intelligents dans la blockchain publique.

Cependant, l’utilisation et le stockage complets des données, ainsi que la fonctionnalité directe de contrat intelligent, ont un coût. Les nœuds complets peuvent épuiser les ressources matérielles et de bande passante de votre ordinateur. La récupération des données complètes peut également prendre beaucoup de temps, prenant parfois plusieurs jours pour synchroniser vos données lors du premier déploiement du nœud. Ensuite, le nœud doit être maintenu, mis à niveau et maintenu en ligne afin de ne pas avoir à répéter le processus de synchronisation complet.

  • Les nœuds légers sont similaires au nœud complet mais gèrent moins d’informations. Le nœud léger stocke les informations de la chaîne d’en-tête (informations de base stockées dans un bloc telles qu’un horodatage et le hachage du bloc précédent), mais ne recevra des informations supplémentaires que sur demande. Ils sont capables de vérifier la validité des données mais ne participent pas pleinement à la validation des blocs. Les nœuds légers sont presque toujours implémentés au sein de clients distants. Étant donné que ces nœuds ne prennent pas en charge des processus de stockage et d’écriture de données plus intensifs, ils se sont avérés utiles pour les appareils de faible capacité comme les smartphones.
  • Les nœuds d’archives sont des nœuds qui stockent toutes les informations qu’un nœud complet fait et créent une archive des états historiques de la blockchain. Les nœuds d’archive conserveront les données historiques même après qu’un client a terminé la synchronisation. Les nœuds complets et légers, en revanche, « élagueront » les données historiques de la blockchain, ce qui signifie qu’ils peuvent reconstruire, mais ne conservent pas ces informations.

Bien que les nœuds d’archives puissent ne pas être utiles pour l’utilisateur moyen, ils se sont avérés efficaces dans l’application des explorateurs de blocs, des fournisseurs de portefeuilles et des analyses de chaîne.

Qu’est-ce qu’un client Ethereum ?

Les clients peuvent être utiles aux développeurs car ils leur permettent d’interagir avec le réseau et d’autres nœuds du réseau à l’aide de divers langages de programmation. La Fondation Ethereum gère plusieurs clients différents pour différents langages de programmation, notamment Go, Rust, Java et C#. Divers développeurs tiers ont également créé des clients Ethereum pour une prise en charge linguistique supplémentaire.

Les utilisations les plus courantes des clients Ethereum incluent les interfaces de transaction et d’exploration de données, mais ses cas d’utilisation peuvent aller bien au-delà des interactions de base de la blockchain.

La Fondation Ethereum entretient les clients suivants :

  • Geth (Aller)
  • OpenEthereum (rouille)
  • Nethermind (C#, .NET)
  • Besu (Java)
  • Érigon (Aller/Multi)

Ceux-ci offrent aux développeurs des options pour mettre en œuvre leurs projets basés sur Ethereum. Si votre langue préférée n’est pas officiellement prise en charge par la Fondation Ethereum, de nombreux clients Ethereum tiers existent pour fournir une prise en charge linguistique supplémentaire.

La raison pour laquelle tous ces différents clients sont possibles est qu’Ethereum est défini par une spécification formelle (c’est-à-dire le « Papier Jaune »). Les spécifications formelles qui composent Ethereum distinguent la blockchain de Bitcoin. Là où Ethereum définit des comportements standard à suivre pour tous les clients Ethereum, Bitcoin Core n’a pas de telles définitions. En fournissant une documentation cohérente et un langage clair, les spécifications d’Ethereum ont permis à la blockchain de permettre des implémentations logicielles indépendantes, mais interopérables, d’un client Ethereum.

Types de clients Ethereum

Client complet

Les clients complets stockent l’intégralité de la blockchain Ethereum ; un processus qui peut prendre plusieurs jours pour se synchroniser et nécessite une énorme quantité d’espace disque – plus d’un téraoctet pour être exact, selon les derniers chiffres. Les clients complets permettent aux nœuds connectés d’effectuer toutes les tâches sur le réseau, y compris l’exploration, la validation des transactions et des en-têtes de bloc et l’exécution de contrats intelligents.

Client léger

Les clients Ethereum peuvent être implémentés en tout ou en partie. L’aperçu ci-dessus explique le fonctionnement d’un client « complet », mais il est important de savoir que vous n’avez pas toujours besoin d’exécuter un client complet. Généralement, lorsque le stockage et la vitesse des données sont en cause, les développeurs choisissent d’utiliser ce qu’on appelle des « clients légers ».

Les clients légers offrent un sous-ensemble des fonctionnalités d’un client complet. Les clients légers peuvent fournir des vitesses plus rapides et libérer la disponibilité du stockage de données car, contrairement aux clients complets, ils ne stockent pas la blockchain Ethereum complète.

La portée des fonctionnalités d’un client léger est adaptée aux objectifs du client Ethereum. Par exemple, les clients légers sont fréquemment utilisés pour les clés privées et la gestion des adresses Ethereum au sein d’un portefeuille. De plus, ils ont tendance à gérer les interactions de contrats intelligents et les diffusions de transactions. Les autres utilisations des clients distants incluent les instances web3 dans les objets JavaScript, les navigateurs dapp et la récupération des données de taux de change.

Client distant

Il existe un troisième type de client appelé client distant qui est similaire à un client léger. La principale différence étant qu’un client distant ne stocke pas sa propre copie de la blockchain, ni ne valide les transactions ou bloque les en-têtes. Au lieu de cela, les clients distants s’appuient entièrement sur un client complet ou léger pour leur fournir un accès au réseau blockchain Ethereum. Ces types de clients sont principalement utilisés comme portefeuille pour envoyer et recevoir des transactions.

La différence entre les nœuds et les clients

Les nœuds et les clients fonctionnent côte à côte et les deux termes sont souvent utilisés de manière interchangeable. Cependant, ils fonctionnent tous les deux séparément pour accéder au réseau Ethereum.

Pensez aux nœuds et aux clients fonctionnant comme un ordinateur accédant à Internet : le nœud est un système d’exploitation, comme Windows ou iOS, et le client est l’ordinateur lui-même. L’ordinateur client donne à un utilisateur la possibilité d’accéder au système d’exploitation du nœud, qui à son tour, vous donne la possibilité d’accéder à Internet. Différents ordinateurs pourront vous donner accès au même système d’exploitation et les différents systèmes d’exploitation vous donneront accès au même Internet.

MétaMasque

Pour voir comment les clients Ethereum fonctionnent dans le monde réel, nous pouvons prendre MetaMask comme exemple. MetaMask est un portefeuille basé sur un navigateur, un client d’appel de procédure à distance (RPC) et un explorateur de contrat de base. Tout ordinateur avec Chrome, Firefox, Opera ou Brave Browser est capable d’exécuter MetaMask.

MetaMask est une implémentation d’un client distant qui interagit avec la blockchain via un client léger. Afin d’éviter tout problème de sécurité, MetaMask exploite son propre client léger pour communiquer avec le client distant afin d’assurer une sécurité efficace et la certitude des transactions.

MetaMask est unique par rapport aux autres portefeuilles basés sur un navigateur, car il applique une instance Web3 au lecteur JavaScript d’un navigateur, donnant également accès au réseau principal Ethereum et à d’autres réseaux de test, notamment Ropsten testnet, Kovan testnet et l’instance locale d’un nœud RPC. Même avec sa fonctionnalité unique, MetaMask exécute toujours un client distant comme le font la plupart des autres portefeuilles de navigateur. Le client distant permet la fonctionnalité de stockage de portefeuille, la diffusion de transactions et les injections JavaScript web3.

Crédit: Lien source


Publié

dans

par

Étiquettes :

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *