Ethereum - Guide rapide

Un énorme succès de Bitcoin a suscité l'intérêt de plusieurs pour créer leurs propres devises. En regardant les avantages offerts par Bitcoin - une monnaie numérique, les gens voulaient utiliser le concept de Blockchain dans leurs propres applications. Les gens voulaient passer de leurs contrats physiques à des contrats numériques intelligents où plusieurs problèmes tels que la répudiation, la transparence, la sécurité, etc. seraient automatiquement traités. Le résultat de cet effort a abouti à la création d'Ethereum - une plate-forme populaire pour la création d'applications Blockchain distribuées prenant en charge les contrats intelligents.

Dans ce didacticiel, vous apprendrez à créer une application distribuée (DAPP) sur la plateforme Ethereum. Plus précisément, vous apprendrez à rédiger un contrat, à le tester sur une Blockchain locale et enfin à le déployer sur une Blockchain externe pour des tests approfondis et une utilisation commerciale. Vous utiliserezSolidity, un langage orienté objet pour le développement de contrats. Vous utiliserez égalementRemix, un IDE open source pour développer et tester des contrats. Pour déployer le contrat testé sur une Blockchain externe, vous utiliserezGanache. Pour interagir avec le contrat, vous aurez besoin d'une application client. Nous utiliseronsMyEtherWalletpour créer un portefeuille pour chacun de ces clients. Le créateur du contrat publiera le contrat. Tout autre client examinera la valeur du contact en utilisant l'interface fournie par le contrat et enverra de l'argent au créateur pour l'exécution d'une partie du contrat.

Alors commençons par rédiger le contrat.

Il existe plusieurs outils disponibles pour développer et tester des contrats. L'un des outils les plus simples est fourni sur le site officiel d'Ethereum lui-même. L'outil s'appelleRemix, nous allons l'utiliser pour le développement de nos contrats.

Remix pour le développement de contrats

Ouvrez l'IDE Remix en saisissant l'URL suivante dans votre navigateur.

https://remix.ethereum.org

L'écran suivant va apparaitre.

Dans la fenêtre centrale, vous verrez un code par défaut, qui est un exemple de code Solidity. Vous saisirez votre code de contrat dans cet éditeur de code. Votre code peut être compilé automatiquement. Après une compilation réussie du code, vous pourrez exécuter le code dans le même IDE. Lorsque vous exécutez les méthodes de contrat, les résultats seront affichés dans la même fenêtre IDE. Il existe des fonctionnalités pour déboguer le code et pour tester l'unité de votre projet. Ceux-ci peuvent être vus dans la barre de menu en haut à droite, comme indiqué dans la capture d'écran IDE ci-dessous. Vous utiliserez ces options sous peu.

Vous allez maintenant commencer à rédiger votre contrat.

Solidity est un langage orienté objet spécialement développé pour la rédaction de contrats. C'est un langage de haut niveau, qui hérite des traits de C ++, Python et JavaScript. Le compilateur Solidity compile votre code source en bytecode qui s'exécute sur Ethereum Virtual Machine (EVM).

Pour une compréhension rapide de la syntaxe Solidity, consultez l'exemple de code dans l'EDI.

pragma solidity >=0.4.22 <0.6.0;
contract Ballot {

La première ligne est une directive au compilateur. La deuxième ligne commence la définition du contrat. Dans le contrat, vous déclarez des variables telles que -

address chairperson;

Vous pouvez également définir des structures telles que Proposalet créez un tableau de ces éléments de structure. Examinez ceci dans la fenêtre de code.

Vous pouvez ensuite définir un constructeur qui est appelé au moment de l'instanciation d'un contrat.

constructor(uint8 _numProposals) public {

Après le constructeur, vous définirez plusieurs méthodes, qui sont les méthodes contractuelles. Dans l'exemple de contrat,giveRightToVote est une de ces méthodes ayant la syntaxe suivante -

function giveRightToVote(address toVoter) public {

le public Le mot clé rend cette méthode invocable publiquement par tout client ayant accès au contrat.

De même, l'exemple de contrat définit trois autres méthodes appelées delegate, vote, et winningProposal. Examinez-les pour votre propre compréhension de la syntaxe Solidity. Ce sont les conditions préalables à la rédaction de votre propre contrat. Expliquer la syntaxe complète de Solidity dépasse le cadre de ce tutoriel.

Nous nommerons notre contrat MyContract comme dans la déclaration suivante -

contract MyContract {

Nous déclarerons deux variables comme suit -

uint amount;
uint value;

La variable amountdétiendra l'argent accumulé envoyé par les exécuteurs du contrat au créateur du contrat. levaluele champ contiendra la valeur du contrat. Lorsque les exécuteurs exécuteurs exécutent le contrat, levalue sera modifié pour refléter la valeur du contrat équilibré.

Dans le constructeur de contrat, nous définissons les valeurs de ces deux variables.

constructor (uint initialAmount, uint initialValue) public {
   amount = 0;
   value = 1000;
}

Comme initialement, le montant encaissé sur le contrat est nul, nous fixons le amount champ à 0. Nous définissons le contrat value à un nombre arbitraire, dans ce cas, il est de 1000. Le créateur du contrat décide de cette valeur.

Pour examiner le montant collecté à un moment donné, nous fournissons une méthode de contrat public appelée getAmount défini comme suit -

function getAmount() public view returns(uint) {
   return amount;
}

Pour obtenir la valeur du contrat équilibrée à un moment donné, nous définissons getBalance méthode comme suit -

function getBalance() public view returns(uint) {
   return value;
}

Enfin, nous écrivons une méthode contractuelle (Send). Il permet aux clients d'envoyer de l'argent au créateur du contrat -

function send(uint newDeposit) public {
   value = value - newDeposit;
   amount = amount + newDeposit;
}

L'exécution de la send la méthode modifiera les deux value et amount domaines du contrat.

Le code de contrat complet est donné ci-dessous -

contract MyContract {
   uint amount;
   uint value;

   constructor (uint initialAmount, uint initialValue) public {
      amount = 0;
      value = 1000;
   }
   function getBalance() public view returns(uint) {
      return value;
   }
   function getAmount() public view returns(uint) {
      return amount;
   }
   function send(uint newDeposit) public {
      value = value - newDeposit;
      amount = amount + newDeposit;
   }
}

Une fois que vous avez écrit le code de contrat complet, le compiler dans cet IDE est trivial. Cliquez simplement sur leAutocompile case à cocher dans l'IDE comme indiqué dans la capture d'écran ci-dessous -

Alternativement, vous pouvez compiler le contrat en cliquant sur le bouton avec le titre “Start to compile”.

S'il y a une faute de frappe, corrigez-la dans la fenêtre de code. Assurez-vous que le code est entièrement compilé sans erreurs. Vous êtes maintenant prêt à déployer le contrat.

Dans ce chapitre, nous apprendrons comment déployer un contrat sur Ethereum. Cliquez sur l'option de menu Exécuter pour déployer le contrat. L'écran suivant va apparaitre.

Le nom du contrat est affiché dans la zone de liste en surbrillance. En dessous, vous remarquerez leDeploybouton, cliquez dessus pour déployer le contrat. Le contrat sera déployé sur la blockchain intégrée Remix. Vous pourrez voir le contrat déployé en bas de l'écran. Vous pouvez le voir dans la partie en surbrillance de la capture d'écran ci-dessous.

Remarquez la présence de trois noms de méthodes dans cette région en surbrillance. Ensuite, vous interagirez avec le contrat en exécutant les méthodes contractuelles.

Lorsque vous cliquez sur le contrat déployé, vous verrez les différentes méthodes publiques fournies par le contrat. Ceci est montré dans la capture d'écran ci-dessous.

La première méthode sendcontient une zone d'édition devant lui. Ici, vous saisirez les paramètres requis par la méthode contractuelle. Les deux autres méthodes ne prennent aucun paramètre.

Envoi d'argent

Maintenant, entrez un montant tel que 100 devant le sendfonction vue dans la fenêtre du contrat. Clique lesendbouton. Cela exécutera le contratsend méthode, réduisant la valeur du contrat value champ et en augmentant la valeur du amount champ.

Examen de la valeur du contrat

La précédente send money a réduit la valeur du contrat de 100. Vous pouvez maintenant l'examiner en invoquant le getBalanceméthode du contrat. Vous verrez la sortie lorsque vous cliquez sur legetBalance bouton comme indiqué dans la capture d'écran ci-dessous -

Le contrat value est maintenant réduit à 900.

Examen du montant perçu

Dans cette section, nous examinerons le montant d'argent collecté jusqu'à présent sur ce contrat. Pour cela, cliquez sur legetAmountbouton. L'écran suivant va apparaitre.

le amount la valeur du champ est passée de 0 à 100.

Essayez quelques send opérations et examiner le contrat value et le amount champs pour conclure que le contrat déployé s'exécute comme prévu.

L'IDE Remix que vous avez utilisé jusqu'à présent est assez bon pour le développement et le test initial de votre contrat. Pour les contrats réels, vous devez tester vos fonctionnalités par rapport à divers paramètres. Remix ne peut pas créer de comptes utilisateurs réels (non testés) pour transférer des fonds entre eux. Vous n'avez aucun contrôle sur la configuration de la Blockchain créée par Remix. Vous ne pouvez même pas surveiller l'exécution des transactions.

Remix manque plusieurs opérations avancées. Ainsi, nous devons déployer notre contrat sur une Blockchain plus sophistiquée qui offre toutes ces fonctionnalités. Une telle blockchain estGanache que vous découvrirez dans notre prochain chapitre.

Ganache est utilisé pour mettre en place une blockchain Ethereum personnelle pour tester vos contrats Solidity. Il fournit plus de fonctionnalités par rapport à Remix. Vous en apprendrez davantage sur les fonctionnalités lorsque vous vous entraînerez avec Ganache. Avant de commencer à utiliser Ganache, vous devez d'abord télécharger et installer la Blockchain sur votre machine locale.

Téléchargement de Ganache

Vous pouvez télécharger Ganache à partir de l'URL suivante -

https://truffleframework.com/ganache

Ganache est disponible sur plusieurs plateformes. Nous avons développé et testé l'intégralité de ce tutoriel sur Mac. Ainsi, les captures d'écran ci-dessous montreront l'installation Mac. Lorsque vous ouvrez l'URL d'installation donnée ci-dessus, il détecte automatiquement le système d'exploitation de votre machine et vous dirige vers l'installation binaire appropriée. La capture d'écran ci-dessous montre l'installation Mac.

Lorsque vous cliquez sur le bouton TÉLÉCHARGER, il commencera à télécharger le fichier DMG pour l'installation Mac.

Installer Ganache

Localisez le «Ganache-2.0.0.dmg» dans votre dossier Téléchargements et double-cliquez dessus pour installer Ganache. Une fois l'installation réussie, l'écran suivant apparaîtra -

Faites glisser l'icône Ganache dans le dossier Application. Désormais, Ganache est disponible en tant qu'application sur votre Mac.

Si vous utilisez un autre système d'exploitation, suivez les instructions fournies pour une installation réussie.

Démarrer Ganache

Localisez maintenant Ganache dans votre dossier Application et double-cliquez sur son icône pour démarrer Ganache.

Bureau Ganache

Lorsque Ganache démarre, l'écran Ganache apparaîtra comme indiqué ci-dessous -

Cliquez sur QUICKSTART pour démarrer Ganache. Vous verrez la console Ganache comme indiqué ci-dessous -

La console dans la capture d'écran ci-dessus montre deux comptes d'utilisateurs avec un solde de 100 ETH (Ether - une devise pour les transactions sur la plate-forme Ethereum). Il montre également un nombre de transactions de zéro pour chaque compte. Comme l'utilisateur n'a effectué aucune transaction jusqu'à présent, ce décompte est évidemment nul.

Nous allons maintenant avoir un aperçu de quelques écrans importants de Ganache qui sont d'une pertinence immédiate pour nous.

Cliquez sur l'icône des paramètres en haut à droite de l'écran comme indiqué dans la capture d'écran ci-dessous -

L'écran des paramètres du serveur apparaîtra comme indiqué ci-dessous -

Ici, vous pourrez définir les valeurs de l'adresse du serveur et le numéro de port de votre serveur Ganache. Pour le moment, laissez-les à leurs valeurs par défaut. L'ID de réseau est un identifiant interne Blockchain du serveur Ganache; laissez ceci à sa valeur par défaut. leAutomineLe bouton est à l'état ON, indiquant que les transactions seraient traitées instantanément. Si vous l'avez désactivé, il vous demandera d'entrer le temps en secondes après lequel les blocs seraient minés.

Compte et clés

Lorsque vous cliquez sur le Accounts & Keys option de menu, vous verrez l'écran suivant -

Ici tu pourrais setle solde par défaut de chaque compte. La valeur par défaut est 100. Cela explique maintenant pourquoi vous avez vu 100 ETH affichés pour chaque compte dans la capture d'écran du bureau. Vous pouvez également définir le nombre de comptes sur cet écran. La valeur affichée dans cette capture d'écran est 2 et c'est pourquoi le bureau n'affiche que deux comptes.

Maintenant, nous allons travailler avec l'écran des deux paramètres; la connaissance de la façon dont ces deux fonctionnent suffirait. Redémarrez le serveur en cliquant sur leRESTARTbouton sur le côté droit de l'écran. Vous allez maintenant revenir à l'écran du bureau. Essayez de saisir des valeurs différentes dans les deux champs ci-dessus, redémarrez le serveur et voyez son effet.

Nous allons maintenant comprendre brièvement ce qui est disponible sur le bureau Ganache. Sur le bureau, en haut, nous avons plusieurs options de menu parmi lesquelles quelques-unes sont immédiatement pertinentes pour nous. La barre de menu est mise en évidence dans la capture d'écran ci-dessous -

En cliquant sur le TRANSACTIONSLe menu affiche toutes les transactions effectuées jusqu'à présent. Vous effectuerez des transactions très prochainement. Maintenant, revenez à l'écran ci-dessus et vérifiez les transactions de temps en temps. Un écran de transaction typique est illustré ci-dessous -

De même, lorsque vous cliquez sur le BLOCKSmenu, vous verrez les différents blocs extraits. Considérez la capture d'écran suivante pour comprendre à quoi ressemble le menu BLOCKS -

Clique sur le LOGSmenu. Il ouvrira le journal système pour vous. Ici, vous pouvez examiner les différentes opérations que vous avez effectuées sur la blockchain Ethereum.

Maintenant que vous avez compris comment utiliser Ganache pour mettre en place une Blockchain Ethereum privée, vous allez maintenant créer quelques clients qui utiliseraient cette Blockchain.

Pour l'application cliente, vous utiliserez MyEtherWallet.

Télécharger MyEtherWallet logiciel à partir de l'URL suivante -

https://github.com/kvhnuke/etherwallet/releases/tag/v3.21.06

Si nécessaire, décompressez le fichier téléchargé et ouvrez index.html. Vous verrez l'interface suivante pour créer un nouveau portefeuille.

Dans ce chapitre, nous allons apprendre à créer un portefeuille Ethereum. Pour créer un nouveau portefeuille, entrez un mot de passe de votre choix puis cliquez sur le bouton «Create New Wallet" bouton. Lorsque vous le faites, un portefeuille serait créé. Un portefeuille numérique est essentiellement la génération d'une paire de clés publique / privée que vous devez stocker dans un endroit sûr. La création du portefeuille se traduit par l'écran suivant -

Clique sur le “Download Keystore File (UTC / JSON)”bouton pour enregistrer les clés générées. Maintenant, cliquez sur le“I understand. Continue”bouton. Votre clé privée apparaîtra à l'écran comme le montre la capture d'écran ci-dessous -

Clique sur le “Print Paper Wallet”pour conserver un enregistrement physique de la clé privée de votre portefeuille. Vous en aurez besoin plus tard pour déverrouiller le portefeuille. Vous verrez l'écran suivant. Ne perdez pas cette sortie.

Pour déverrouiller votre portefeuille, cliquez sur le “Save Your Address”bouton. Vous verrez l'écran suivant.

Le portefeuille peut être déverrouillé à l'aide de l'option Clé privée, comme indiqué dans l'écran ci-dessus. Coupez-collez la clé privée de la capture d'écran précédente et cliquez sur le bouton Déverrouiller. Votre portefeuille sera déverrouillé et vous verrez un message apparaître en bas de l'écran. Comme le portefeuille ne contient rien pour le moment, le déverrouillage du portefeuille ne nous est pas vraiment utile à ce stade.

Vous avez maintenant créé un portefeuille; ce portefeuille est une interface client avec la Blockchain. Nous attacherons le portefeuille à la chaîne de blocs Ganache que vous avez commencée dans la leçon précédente. Pour ce faire, cliquez sur leNetwork liste déroulante comme indiqué dans la capture d'écran ci-dessous -

Allez au bas de la liste. Vous verrez une option pour“Add Custom Network / Node”. Sélectionnez cet élément.

Maintenant, un écran apparaîtra demandant l'adresse du serveur Ganache et le port sur lequel il écoute.

Tapez les détails de votre serveur Ganache - http://127.0.0.1 et port: 8545. Ce sont les valeurs que vous avez définies dans la configuration du serveur Ganache. Donne unnamede votre choix à ce nœud. Clique sur le“Save & Use Custom Node”bouton. Vous verrez le message connecté en bas de l'écran. À ce stade, votre portefeuille est connecté avec succès à la blockchain Ganache.

Vous êtes maintenant prêt à déployer le contrat sur cette Blockchain connectée.

Pour déployer le contrat, sélectionnez le Contracts option de menu comme indiqué dans la capture d'écran ci-dessous -

Vous devrez entrer le bytecode du contrat sur cet écran. N'oubliez pas que lorsque vous compilez votre code de contrat Solidity, il a généré un bytecode qui s'exécute sur EVM. Vous devrez maintenant obtenir ce bytecode auprès deRemix IDE.

Accédez à l'écran Remix IDE, votre contrat tapé précédemment devrait être là dans la fenêtre de code. Sinon, retapez le contrat dans la fenêtre de code. Cliquez sur le bouton Bytecode comme indiqué dans la capture d'écran suivante -

Le bytecode de votre source compilée est copié dans le presse-papiers avec d'autres informations. Collez le code copié dans votre éditeur de texte préféré. Voici la capture d'écran de l'éditeur de texte -

La valeur du objectLa balise contient le bytecode souhaité. Copiez-le soigneusement en veillant à ne pas copier les guillemets ci-joints. Le bytecode est vraiment long, alors assurez-vous que vous copiez jusqu'au dernier octet inclus. Maintenant, collez ce bytecode dans leDeploy Contract écran comme indiqué ci-dessous -

le Gas Limit le champ est automatiquement défini.

Sous le champ Limite de gaz, vous trouverez la sélection pour accéder au portefeuille.

Maintenant, accédez au portefeuille en utilisant le Private Keydu compte Ganache sur lequel ce contrat sera déployé. Pour obtenir cette clé privée, revenez à laGanachela fenêtre. Clique sur lekeys icône du premier compte comme indiqué ci-dessous -

Vous verrez la clé privée du compte utilisateur n ° 1 comme indiqué dans la capture d'écran ci-dessous -

Copiez cette clé privée et collez-la dans la section "Coller votre clé privée" comme indiqué ci-dessous -

Vous verrez le “Unlock”bouton en bas de l'écran. Après le déverrouillage, un message «succès» apparaîtra en bas de l'écran. À ce stade, votre portefeuille est attaché au compte n ° 1 de la blockchain Ganache.

Vous êtes maintenant prêt à signer et déployer le contrat. Clique sur le“Sign Transaction” bouton comme indiqué dans la capture d'écran ci-dessous -

La signature de la transaction génère et affiche les deux Raw et Signedtransactions. Clique sur le“Deploy Contract”bouton pour déployer le contrat sur la Blockchain Ganache. N'oubliez pas que le contrat est déployé par l'utilisateur du compte n ° 1 de la blockchain Ganache. Par conséquent, l'utilisateur du compte n ° 1 devient le créateur du contrat. Avant le déploiement du contrat, il vous sera demandé de confirmer la transaction car cela pourrait vous coûter de l'argent réel si vous deviez déployer ce contrat sur une blockchain Ethereum publique réelle. Ne vous inquiétez pas, pour la Blockchain privée actuelle fonctionnant sur votre machine locale, il n'y a pas d'argent réel impliqué. Clique sur leMake transaction bouton comme indiqué dans la capture d'écran ci-dessous -

Examinez la console Ganache. vous verrez que le solde ETH du compte n ° 1 a diminué comme le montre la capture d'écran ci-dessous -

Maintenant, cliquez sur le TRANSACTIONS menu comme indiqué dans la capture d'écran ci-dessous -

Vous verrez les détails de la transaction.

Sur cet écran, vous trouverez l'adresse publiée du contrat. L'adresse est indiquée dans la capture d'écran ci-dessus. Vous diffuserez cette adresse publiquement pour informer les autres que votre contrat est disponible à cette adresse spécifiée à laquelle ils peuvent se connecter et exécuter les méthodes contractuelles, telles que l'envoi d'argent à vous - le créateur du contrat. Copiez cette adresse de contrat pour votre propre référence car vous en aurez besoin à l'étape suivante.

Vous êtes maintenant prêt à interagir avec le contrat que vous avez déployé. Revenez sur le bureau MyEtherWallet et cliquez sur l'onglet «Interagir avec le contrat» comme indiqué dans la capture d'écran ci-dessous -

Collez l'adresse du contrat que vous avez précédemment copiée dans le “Contract Address”champ. Vous devez également coller le“ABI / JSON Interface” du contrat sur l'écran ci-dessus.

Pour obtenir le ABI, allez au Remix et cliquez sur la ABI bouton comme indiqué dans la capture d'écran ci-dessous.

L'interface ABI / JSON sera copiée dans le presse-papiers. Collez-le dans votre éditeur préféré pour examiner l'interface générée, qui est illustrée ci-dessous -

ABI / JSON Interface
[
   {
      "constant": false,
      "inputs": [
         {
            "name": "newDeposit",
            "type": "uint256"
         }
      ],
      "name": "send",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
   },
   {
      "inputs": [
         {
            "name": "initialAmount",
            "type": "uint256"
         },
         {
            "name": "initialValue",
            "type": "uint256"
         }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
   },
   {
      "constant": true,
      "inputs": [],
      "name": "getAmount",
      "outputs": [
         {
            "name": "",
            "type": "uint256"
         }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
   },
   {
      "constant": true,
      "inputs": [],
      "name": "getBalance",
      "outputs": [
         {
            "name": "",
            "type": "uint256"
         }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
   }
]

Après avoir collé ce JSON dans le MyEtherWallet interface, vous remarquerez que le bouton ACCESS sous l'interface JSON est maintenant activé, comme indiqué ci-dessous -

Cliquez sur Access bouton pour accéder au contrat.

En cliquant sur le Access, l'adresse du contrat et la liste déroulante de sélection de fonction apparaîtront à l'écran comme dans l'éditeur Remix. Ceci est montré dans la capture d'écran ci-dessous -

Vous pouvez vérifier les différentes fonctions du contrat comme dans le cas du déploiement Remix. Notez que le contact est désormais déployé sur une Blockchain Ganache externe. Vérifier lagetAmountfonction; vous obtiendrez la valeur Amount de zéro et legetBalance affichera un solde de 1000.

Maintenant, essayez d'envoyer de l'argent. Il vous présentera untexteditcontrôle pour saisir le montant. Lorsque vous rédigez le contrat, du «gaz» serait utilisé et il vous sera demandé de confirmer la transaction avant de l'écrire dans la Blockchain. La transaction serait exécutée dans un court laps de temps en fonction du timing de minage défini par vous sur le serveur Ganache. Après cela, vous pouvez réexaminer levalue et le amount champs du contrat pour vérifier que ceux-ci sont bien modifiés.

Vous pouvez maintenant examiner le bureau Ganache pour voir les transactions que vous avez effectuées jusqu'à présent. Un exemple de sortie est illustré ci-dessous -

Jusqu'à présent, vous étiez à la fois le créateur du contrat et l'exécuteur testamentaire. Cela n'a pas beaucoup de sens, car vous vous attendez à ce que d'autres utilisent votre contrat. Pour cela, nous allons créer un autre client pour notre Ganache Blockchain et envoyer de l'argent du nouveau compte n ° 2 au créateur du contrat sur le compte n ° 1.

Dans ce chapitre, nous allons apprendre la création d'utilisateurs contractuels sur Ethereum. Pour créer un utilisateur pour notre contrat publié, nous en créerons un autreMyEtherWalletclient attaché à la même chaîne de blocs Ganache que vous avez utilisée dans les étapes précédentes. Aller auMyEtherWallet écran et créez un nouveau portefeuille.

Clique sur le contracts et sélectionnez le “Interact with Contract”option comme dans le cas précédent. Notez que ce nouvel utilisateur va simplement interagir avec le contrat déjà publié et ne pas déployer son propre contrat. Spécifiez l'adresse du contrat et l'ABI que vous avez utilisés dans le cas précédent.

Maintenant, cliquez sur Access bouton et invoquer send méthode. Lorsqu'on vous le demande, entrez une valeur, par exemple 100 ETH à envoyer. Soumettez la transaction. Lors de la soumission, l'écran suivant apparaîtra.

Pour attacher ce nouveau client à notre Ganache Blockchain, accédez à Ganache Console. Cliquez sur l'icône des clés du compte n ° 2 comme indiqué dans la capture d'écran suivante -

Vous obtiendrez la clé privée du compte n ° 2.

Copiez la clé que vous recevez et utilisez-la dans votre portefeuille nouvellement créé comme indiqué ici -

Clique sur le Unlock bouton pour attacher le portefeuille.

Lorsque le portefeuille est déverrouillé avec succès, écrivez la transaction d'envoi souhaitée.

Générez la transaction en cliquant sur le “Generate Transaction” bouton.

Makela transaction et attendez un certain temps qu'elle se reflète dans la Blockchain. Maintenant, exécutez“getAmount”, le montant indiqué devrait être de 200 maintenant.

Exécuter “getBalance”. levalue le champ devrait maintenant être 800.

Examinez le journal des transactions pour voir les différentes transactions effectuées par différents utilisateurs.

Vous avez appris à rédiger votre propre contrat numérique dans Solidity. Vous avez développé et testé l'interface du contrat dans l'IDE Remix. Pour d'autres tests multi-utilisateurs, vous avez déployé ce contrat sur Ganache Blockchain. Sur Ganache, vous avez créé deux comptes utilisateurs. Le premier compte a été utilisé pour publier le contrat. Le deuxième compte a été utilisé pour consommer le contrat.

Quelle est la prochaine?

La chaîne de blocs Ganache que vous avez utilisée dans tout ce processus est privée et locale sur votre machine. Une fois que vous êtes pleinement satisfait du fonctionnement du contrat, vous pouvez procéder à sa publication sur une blockchain Ethereum réelle. Cependant, cela vous obligerait à dépenser de l'argent réel. Dans l'application de démonstration, nous avons utilisé 1000 ETH par défaut pour chaque compte utilisateur dans Ganache. Lorsque vous déployez votre contrat sur une blockchain réelle, vous devrez acheter l'ETH en convertissant la devise de votre propre pays en ETH. Cette devise sera stockée dans votre portefeuille et vous pourrez la dépenser comme vous le souhaitez.