Initiez-vous avec les Dapps d’Ethereum


Création de l’environnement de travail: Dans cet exemple de Dapps d’Ethereum on va utiliser: PythonGethweb3.py et web3.js.

  • Installation de Python: Il suffit d’installer le binaire de ce lien et ajouter Python à votre variable d’environnement si vous utilisez Windows. Sinon, généralement, Python est installé par défaut sur votre machine si vous utilisez Gnu\Linux, OS X et *BSD.
  • Installation de Geth: Il suffit d’installer Geth via ce lien puis l’ajouter à votre variable d’environnement. Si vous utilisez une distribution basée sur Debian, faites ceci:
Puis à la fin du document, il suffit d’ajouter:
Puis enregistrer et relancer une autre instance du terminal shell/bash et vérifier:
Vous allez obtenir un résultat similaire à celui là:
  • Installation de web3py: Nous allons utiliser pip le package manager de Python: Tout d’abord vérifiez si web3 est dans les dépôts de pip
Vous allez avoir un résultat similaire à :
Ce qui nous intéresse est: web3(4.0.0b6) qui est la dernière version de web3 présente dans les dépôts à ce jour (vous pouvez avoir une autre version, tout dépend de l’existence d’une nouvelle version ou non). Donc, pour l’installer:
  • Installation de web3.js: Vous pouvez l’installer avec npm ou bien utiliser le framework truffle.
  • Bonus: Il existe aussi d’autres environnements de travail, comme l’utilisation des frameworks : parity ou truffle

NB: Dans cet exemple on va utiliser Python, Geth et web3.py. Si, vous optez pour un autre environnement de travail, pensez à Node.js, Geth et web3.js ou bien truffle et Geth ou bien Parity et web3.js.

Run the beast!

L’exemple de ce tutoriel se décomposera en trois parties:

  • Création d’une chaîne privée de la blockhain d’Ethereum
  • Création, compilation et déploiement d’un Smart Contract
  • Interaction avec le Smart Contract d’Ethereum

1- Création d’une chaîne privée de la blockchain d’Ethereum:

Tout d’abord, on va créer un nouveau compte d’Ethereum:

Vous allez avoir un message similaire à celà:

Entrez votre mot de passe, puis confirmez le et assurez vous de ne pas l’oublier !

Vous allez avoir une réponse similaire à ce qui suit:

Donc, notre nouveau compte a cette adresse Ethereum:  0x53a4579eb6d5e48642fd2b4909fe3f762b1608b0 en Hexadécimal, ou d’une manière simplifiée: 53a4579eb6d5e48642fd2b4909fe3f762b1608b0.

Puis, on va créer notre propre chaîne privée de la blockchain d’Ethereum. Nous aurons besoin de créer un Genesis Block dans la nouvelle blockchain. Voici un exemple de Genesis Block:

customGenesisBlock.json

NB: Changez l’adresse Ethereum avec la votre, et vous aurez un solde initial de 1000000000000000000 wei = 1 ether.

Puis, placez vous dans le dossier où vous avez le fichier customGenesisBlock.json, et créez la nouvelle blockchain avec le nouveau Genesis Block :

Vous aurez une réponse comme suit:

PS: Si vous lisez bien le message du retour, les fichiers de configuration de notre compte Ethereum et les informations de la nouvelle blockchain privée sont enregistrées dans ce dossier: /home/user/.ethereum

Maintenant, on va miner quelques blocs dans notre nouvelle blockchain:

Vous allez avoir une réponse comme suit (vous devez entrer le mot de passe de votre compte Ethereum que vous avez créé tout au début de ce tutoriel):

Patientez un peu pour la génération des fichiers ethash et des fichiers DAG.

Vous allez avoir une réponse similaire à ceci:

Ce qui signifie que vous avez miné quelques blocs, et que ces blocs ont été validés et enregistrés dans notre blockchain privée.

Maintenant, quittons la console de minage en appuyant sur CTRL+C et commençons le développement de notre premier smart contract.

2- Création, compilation et déploiement d’un ‘Ethereum Smart Contract’:

Tout d’abord, nous aurons besoin du compilateur solc qui va compiler notre Smart Contract, d’un noeud/Mineur de notre blockchain privée et des ethers qui seront le carburant de notre blockchain.

  • Installation du compilateur solc: Sur Ubuntu et théoriquement sur toutes les distributions basées sur Ubuntu il suffit de faire comme suit:
Si vous utilisez un autre OS que Ubuntu, suivez les démarches sur ce lien de documentation.

Puis, on va installer un wrapper sur Python qui va se charger de communiquer avec solc directement depuis la machine virtuelle de Python:

On aura:

On va installer py-solc(2.1.0), la dernière version:

  • Un simple Smart Contract:

hello.sol

  • Notre script Python va compiler, déployer et interagir avec le smart contract

compile_deploy.py

 

interaction_with_contract.py

Ceci dit, exécutez compile_deploy.py en ouvrant Geth avec cette commande:

Puis:

On aura une réponse similaire à ceci:

Et on va remarquer que dans la console où Geth exécute les tâches de minage, on trouvera une information similaire à ceci:

Ceci dit, notre smart contract à été bien déployé et il sera miné dans le prochain bloc si le Gas utilisé dans la transaction est assez suffisant pour la miner dans les plus bref délais.

Puis, si on exécute interaction_with_contract.py:

On aura comme résultat:

Au final, on a créé un Smart Contract avec le langage de programmation des smart contract d’Ethereum nommé Solidity. On a créé notre propre blockchain privée avec Geth. On a compilé et deployé le smart contract avec solc qui est le compilateur de solidity proposé par Ethereum, et on a pu interagir avec les composants qu’Ethereum introduit avec le wrapper de solc qui est py-solc, un wrapper de web3.js nommé web3.py et on a, au final, interagit avec le smart contract lui même avec les fonctions définies dans son code.

À la prochaine pour un nouveau tutoriel et pour plus de perspectives de développement.

Liens utiles:

Tags

Articles liés

Laisser un commentaire

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

Rejoignez notre chaîne Telegram