4 min de lecture
Aperçu
Très répandu dans les applications web et doté d'une syntaxe simple, Ruby est utilisé par un grand nombre de personnes. Ce guide explique comment créer une adresse Ethereum en Ruby à l'aide du gem/package ruby-eth.
Prérequis
- Ruby est installé sur votre système (Ruby 2.x ou version ultérieure)
- Gestionnaire d'environnement Ruby (RBEnv)
- Un éditeur de texte
Qu'est-ce qu'une adresse Ethereum ?
Lorsque vous vous connectez à une plateforme sur Internet, vous devez vous authentifier à l’aide d’une combinaison d’identifiants. Considérez votre adresse Ethereum comme votre nom d’utilisateur et la clé privée correspondante comme votre mot de passe. Alors que votre adresse Ethereum est publique et peut être partagée, la clé privée doit toujours rester secrète. Cette combinaison vous permet d’interagir avec la blockchain Ethereum. Une adresse Ethereum correspond à votre identité sur la blockchain ; elle se présente sous la forme suivante : « 0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE ». Il est indispensable de disposer d’une adresse Ethereum valide pour :
- Recevoir/envoyer des Ethereum
- Signature/Envoi de transactions
- Connexion aux applications décentralisées
Comment une adresse Ethereum est générée :
- Une clé privée aléatoire de 64 caractères (hexadécimaux) (256 bits / 32 octets) est d'abord générée.
Par exemple :
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
- Une clé publique de 128 caractères (hexadécimaux) (64 octets) est ensuite dérivée de la clé privée générée à l'aide de l'algorithme de signature numérique à courbe elliptique (ECDSA).
Par exemple :
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe
- La fonction de hachage Keccak-256 est ensuite appliquée à la clé publique (128 caractères / 64 octets) afin d'obtenir une chaîne de hachage de 64 caractères (32 octets). Les 40 derniers caractères / 20 derniers octets de cette chaîne, préfixés par 0x, constituent l'adresse Ethereum finale.
Par exemple :
0xd5e099c71b797516c10ed0f0d895f429c2781142
Remarque: dans la notation binaire, « 0x » indique que le nombre ou la chaîne de caractères est exprimé en hexadécimal.
Qu'est-ce que Ruby ?
Ruby est un langage de haut niveau interprété et open source. Il a été conçu en s'inspirant de Perl, Smalltalk, Eiffel, Ada et Lisp, les langages préférés de Yukihiro « Matz » Matsumoto. Ruby est entièrement orienté objet ; même les types de données les plus élémentaires, comme les entiers, comportent des méthodes et des variables d'instance. Cela permet le chaînage de méthodes, grâce auquel plusieurs lignes de code peuvent être regroupées en une seule. Ruby on Rails, un framework Ruby, a contribué à la popularité de ce langage dans le domaine de la programmation web, son principal attrait résidant dans le fait que les programmeurs n’ont pas à passer beaucoup de temps à créer des fichiers.
Pour atteindre notre objectif, qui est de créer une adresse Ethereum, nous allons utiliser un gem Ruby appelé « ruby-eth ».
Qu'est-ce que ruby-eth ?
Ruby-eth est une bibliothèque qui facilite la signature des transactions et la génération de clés. Elle permet de créer et de diffuser des transactions Ethereum via n'importe quel nœud. Ce gem permet de dissocier les clés des nœuds. Signez vos transactions et gérez vos clés partout où vous pouvez exécuter Ruby, puis diffusez vos transactions via le point de terminaison du nœud de votre choix.
Installation des dépendances
Avant d'installer les gems, vérifions que Ruby est bien installé. Ouvrez un terminal et exécutez la commande suivante :
$ ruby -v
Pour Linux/UNIX: vous pouvez utiliser le système de gestion des paquets de votre distribution en suivant le guide disponible ici ou en utilisant des outils tiers tels que rbenv ou RVM.
Pour macOS: vous pouvez utiliser des outils tiers tels que rbenv ou RVM.
Sous Windows: vous pouvez utiliser RubyInstaller.
Nous allons utiliser rbenv pour gérer la version de Ruby de notre projet. Pour commencer, pour vérifier si rbenv est installé ou non, tapez :
$ rbenv -v
Cette commande doit afficher la version actuelle de rbenv installée sur votre système ; si ce n'est pas le cas, téléchargez-la en suivant les instructions fournies ici. Rendez-vous ensuite dans votre terminal et tapez la commande suivante pour activer une version spécifique de Ruby dans ce répertoire.
$ rbenv install 2.6.5
$ rbenv local 2.6.5
Une fois que nous nous sommes assurés que Ruby est bien installé et qu'il s'agit de la bonne version (2.6.5 dans le cas présent), passons à l'installation des gems nécessaires. Vous pouvez les installer depuis la ligne de commande à l'aide de RubyGems, le gestionnaire de paquets de Ruby :
$ gem install eth
Si vous utilisez macOS, vous risquez de rencontrer un problème lié aux droits d'accès lors de l'installation de gem, car la version de Ruby fournie avec macOS est généralement réservée à l'usage interne d'Apple ; nous vous recommandons d'utiliser rbenv et RVM (Ruby Version Manager) pour gérer une version distincte de Ruby, qui sera installée dans un environnement isolé au sein de votre répertoire personnel, et sur laquelle vous pourrez apporter des modifications sans craindre d'altérer la version système de Ruby.
Création d'une adresse Ethereum.
Ouvrez votre éditeur de texte, créez un nouveau fichier Ruby nommé address.rb, puis copiez-collez-y le code suivant.
require "eth"
key = Eth::Key.new
key.public_hex
puts "SAVE BUT DO NOT SHARE THIS (Private Key): 0x#{key.private_hex}"
puts "Address: #{key.address}"
Explication du code ci-dessus
Ligne 1 : Importation du gem/package « eth ».
Ligne 2 : Instanciation de l'objet Eth, création d'une nouvelle clé et stockage de celle-ci dans la variable key.
Ligne 3 : Génération d'une clé publique hexadécimale à partir de la clé à l'aide de la méthode `public_hex`.
Ligne 4 : Génération d'une clé privée hexadécimale à partir de la clé à l'aide de la méthode `private_key`, en y ajoutant le préfixe « 0x » ; puis affichage de celle-ci accompagné d'un avertissement.
Ligne 5 : Génération de l'adresse et affichage de celle-ci avec la chaîne « Adresse : »
Veuillez enregistrer le fichier et l'exécuter à l'aide de.
$ ruby address.rb
Si tout se passe bien et que le code s'exécute correctement, le résultat devrait ressembler à ceci.

Conclusion
Félicitations, vous disposez désormais de votre propre adresse Ethereum, que vous pouvez utiliser pour signer et envoyer des transactions, ainsi que pour interagir avec le réseau Ethereum. Consultez le guide intitulé « Comment se connecter à Ethereum avec Ruby (ethereum.rb) ».
Abonnez-vous à notre newsletter pour découvrir d'autres articles et guides sur Ethereum. Si vous avez des commentaires, n'hésitez pas à nous contacter sur Twitter. Vous pouvez également discuter avec nous sur notre serveur Discord, où vous rencontrerez certains des développeurs les plus géniaux qui soient :)
