Ethereum - Kurzanleitung

Ein großer Erfolg von Bitcoin weckte das Interesse mehrerer, ihre eigenen Währungen zu schaffen. Angesichts der Vorteile von Bitcoin - einer digitalen Währung - wollten die Benutzer das Konzept der Blockchain in ihren eigenen Anwendungen verwenden. Die Menschen wollten von ihren physischen Verträgen zu intelligenten digitalen Verträgen übergehen, bei denen verschiedene Probleme wie Ablehnung, Transparenz, Sicherheit usw. automatisch angegangen würden. Das Ergebnis dieser Bemühungen war die Schaffung von Ethereum - einer beliebten Plattform für die Erstellung verteilter Blockchain-Anwendungen, die intelligente Verträge unterstützen.

In diesem Tutorial erfahren Sie, wie Sie eine verteilte Anwendung (DAPP) auf der Ethereum-Plattform erstellen. Insbesondere lernen Sie, wie Sie einen Vertrag schreiben, ihn in einer lokalen Blockchain testen und schließlich in einer externen Blockchain für eingehende Tests und kommerzielle Zwecke bereitstellen. Du wirst benutzenSolidity, eine objektorientierte Sprache für die Vertragsentwicklung. Sie werden auch verwendenRemix, eine Open-Source-IDE zum Entwickeln und Testen von Verträgen. Um den getesteten Vertrag in einer externen Blockchain bereitzustellen, verwenden SieGanache. Für die Interaktion mit dem Vertrag benötigen Sie eine Client-Anwendung. Wir werden verwendenMyEtherWalletfür jeden dieser Kunden eine Brieftasche zu erstellen. Der Vertragsersteller veröffentlicht den Vertrag. Jeder andere Kunde überprüft den Kontaktwert über die im Vertrag vorgesehene Schnittstelle und sendet dem Ersteller etwas Geld für die Ausführung eines Teils des Vertrags.

Beginnen wir also mit dem Schreiben des Vertrags.

Zum Entwickeln und Testen von Verträgen stehen verschiedene Tools zur Verfügung. Eines der einfachsten Tools finden Sie auf der offiziellen Ethereum-Website. Das Tool wird aufgerufenRemixwerden wir dies für unsere Vertragsentwicklung nutzen.

Remix für die Vertragsentwicklung

Öffnen Sie die Remix-IDE, indem Sie die folgende URL in Ihrem Browser eingeben.

https://remix.ethereum.org

Der folgende Bildschirm wird angezeigt.

Im mittleren Fenster sehen Sie einen Standardcode, bei dem es sich um einen Beispiel-Solidity-Code handelt. Sie geben Ihren Vertragscode in diesen Code-Editor ein. Ihr Code wird möglicherweise automatisch kompiliert. Nach erfolgreicher Kompilierung des Codes können Sie den Code in derselben IDE ausführen. Wenn Sie die Vertragsmethoden ausführen, werden die Ergebnisse im selben IDE-Fenster angezeigt. Es gibt Möglichkeiten, den Code zu debuggen und Ihr Projekt zu testen. Diese sind in der Menüleiste oben rechts zu sehen, wie im IDE-Screenshot unten gezeigt. Sie werden diese Optionen in Kürze verwenden.

Sie beginnen nun mit dem Schreiben Ihres Vertrags.

Solidity ist eine objektorientierte Sprache, die speziell für das Schreiben von Verträgen entwickelt wurde. Es ist eine Hochsprache, die Merkmale von C ++, Python und JavaScript erbt. Der Solidity-Compiler kompiliert Ihren Quellcode in Bytecode, der auf der Ethereum Virtual Machine (EVM) ausgeführt wird.

Informationen zum schnellen Verständnis der Solidity-Syntax finden Sie im Beispielcode in der IDE.

pragma solidity >=0.4.22 <0.6.0;
contract Ballot {

Die erste Zeile ist eine Anweisung an den Compiler. Die zweite Zeile beginnt mit der Definition des Vertrags. Innerhalb des Vertrages deklarieren Sie Variablen wie -

address chairperson;

Sie können auch Strukturen wie definieren Proposalund erstellen Sie ein Array dieser Strukturelemente. Untersuchen Sie dies im Codefenster.

Sie können dann einen Konstruktor definieren, der zum Zeitpunkt der Instanziierung eines Vertrags aufgerufen wird.

constructor(uint8 _numProposals) public {

Nach dem Konstruktor definieren Sie mehrere Methoden, die Vertragsmethoden sind. Im MustervertraggiveRightToVote ist eine solche Methode mit der folgenden Syntax:

function giveRightToVote(address toVoter) public {

Das public Das Schlüsselwort macht diese Methode für jeden Kunden, der Zugriff auf den Vertrag hat, öffentlich aufrufbar.

Ebenso definiert der Mustervertrag drei weitere Methoden delegate, vote, und winningProposal. Untersuchen Sie diese auf Ihr eigenes Verständnis der Solidity-Syntax. Dies sind die Voraussetzungen, um Ihren eigenen Vertrag zu schreiben. Das Erläutern der vollständigen Syntax von Solidity geht über den Rahmen dieses Lernprogramms hinaus.

Wir werden unseren Vertrag benennen MyContract wie in der folgenden Erklärung -

contract MyContract {

Wir werden zwei Variablen wie folgt deklarieren:

uint amount;
uint value;

Die Variable amounthält das angesammelte Geld, das von den Vertragsausführenden an den Vertragsersteller gesendet wurde. DasvalueFeld enthält den Vertragswert. Während die Testamentsvollstrecker den Vertrag ausführen, wird dievalue Das Feld wird geändert, um den ausgeglichenen Auftragswert widerzuspiegeln.

Im Vertragskonstruktor legen wir die Werte dieser beiden Variablen fest.

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

Da der auf dem Vertrag gesammelte Betrag anfänglich Null ist, setzen wir den amount Feld auf 0. Wir setzen den Vertrag value auf eine beliebige Zahl, in diesem Fall 1000. Der Vertragsersteller entscheidet über diesen Wert.

Um den gesammelten Betrag zu einem bestimmten Zeitpunkt zu untersuchen, bieten wir eine öffentliche Auftragsmethode namens an getAmount wie folgt definiert -

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

Um den ausgeglichenen Kontraktwert zu einem bestimmten Zeitpunkt zu erhalten, definieren wir getBalance Methode wie folgt -

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

Schließlich schreiben wir eine Vertragsmethode (Send). Es ermöglicht den Kunden, etwas Geld an den Vertragsersteller zu senden -

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

Die Ausführung der send Methode wird beide ändern value und amount Vertragsfelder.

Der vollständige Vertragscode ist unten angegeben -

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;
   }
}

Sobald Sie den vollständigen Vertragscode geschrieben haben, ist das Kompilieren in dieser IDE trivial. Klicken Sie einfach auf dieAutocompile Kontrollkästchen in der IDE wie im folgenden Screenshot gezeigt -

Alternativ können Sie den Vertrag kompilieren, indem Sie auf die Schaltfläche mit dem Titel klicken “Start to compile”.

Wenn es einen Tippfehler gibt, beheben Sie ihn im Codefenster. Stellen Sie sicher, dass der Code vollständig und fehlerfrei kompiliert ist. Jetzt können Sie den Vertrag bereitstellen.

In diesem Kapitel erfahren Sie, wie Sie Verträge auf Ethereum bereitstellen. Klicken Sie auf die Menüoption Ausführen, um den Vertrag bereitzustellen. Der folgende Bildschirm wird angezeigt.

Der Vertragsname wird im hervorgehobenen Listenfeld angezeigt. Darunter sehen Sie dieDeployKlicken Sie auf die Schaltfläche, um den Vertrag bereitzustellen. Der Vertrag wird in der in Remix integrierten Blockchain bereitgestellt. Sie können den bereitgestellten Vertrag am unteren Bildschirmrand sehen. Sie können dies im hervorgehobenen Teil des Screenshots unten sehen.

Beachten Sie, dass in diesem hervorgehobenen Bereich drei Methodennamen vorhanden sind. Als Nächstes interagieren Sie mit dem Vertrag, indem Sie die Vertragsmethoden ausführen.

Wenn Sie auf den bereitgestellten Vertrag klicken, werden die verschiedenen öffentlichen Methoden angezeigt, die vom Vertrag bereitgestellt werden. Dies ist im folgenden Screenshot dargestellt.

Die erste Methode sendenthält ein Bearbeitungsfeld davor. Hier geben Sie die für die Vertragsmethode erforderlichen Parameter ein. Die beiden anderen Methoden akzeptieren keine Parameter.

Geld senden

Geben Sie nun einen Betrag wie 100 vor dem ein sendFunktion im Vertragsfenster. Drücke densendTaste. Dadurch wird der Vertrag ausgeführtsend Methode, den Wert des Vertrags zu reduzieren value Feld und Erhöhung des Wertes der amount Feld.

Vertragswert prüfen

Der Vorherige send money action hat den Vertragswert um 100 reduziert. Sie können dies jetzt überprüfen, indem Sie das aufrufen getBalanceVertragsmethode. Sie sehen die Ausgabe, wenn Sie auf klickengetBalance Schaltfläche wie im Screenshot unten gezeigt -

Der Vertrag value ist jetzt auf 900 reduziert.

Gesammelten Betrag prüfen

In diesem Abschnitt werden wir den Geldbetrag untersuchen, der bisher für diesen Vertrag gesammelt wurde. Klicken Sie dazu auf diegetAmountTaste. Der folgende Bildschirm wird angezeigt.

Das amount Feldwert hat sich von 0 auf 100 geändert.

Probieren Sie ein paar aus send Operationen und prüfen Sie den Vertrag value und die amount Felder, um zu schließen, dass der bereitgestellte Vertrag wie erwartet ausgeführt wird.

Die Remix-IDE, die Sie bisher verwendet haben, ist gut genug für die Entwicklung und das erste Testen Ihres Vertrags. Bei realen Verträgen müssen Sie Ihre Funktionalität anhand verschiedener Parameter testen. Remix kann keine echten (nicht getesteten) Benutzerkonten erstellen, um Geld zwischen ihnen zu überweisen. Sie haben keine Kontrolle über die Konfiguration der von Remix erstellten Blockchain. Sie können nicht einmal die Ausführung der Transaktionen überwachen.

Remix verpasst einige fortgeschrittene Operationen. Daher müssen wir unseren Vertrag auf einer komplexeren Blockchain bereitstellen, die all diese Funktionen bietet. Eine solche Blockchain istGanache Das erfahren Sie in unserem nächsten Kapitel.

Ganache wird zum Einrichten einer persönlichen Ethereum-Blockchain zum Testen Ihrer Solidity-Verträge verwendet. Es bietet im Vergleich zu Remix mehr Funktionen. Sie werden die Funktionen kennenlernen, wenn Sie mit Ganache trainieren. Bevor Sie Ganache verwenden, müssen Sie zuerst die Blockchain herunterladen und auf Ihrem lokalen Computer installieren.

Ganache herunterladen

Sie können Ganache von der folgenden URL herunterladen:

https://truffleframework.com/ganache

Ganache ist auf mehreren Plattformen verfügbar. Wir haben dieses gesamte Tutorial auf einem Mac entwickelt und getestet. Daher zeigen die folgenden Screenshots die Mac-Installation. Wenn Sie die oben angegebene Installations-URL öffnen, wird das Betriebssystem Ihres Computers automatisch erkannt und Sie werden zur entsprechenden Binärinstallation weitergeleitet. Der folgende Screenshot zeigt die Mac-Installation.

Wenn Sie auf die Schaltfläche DOWNLOAD klicken, wird die DMG-Datei für die Mac-Installation heruntergeladen.

Ganache installieren

Suchen Sie die Datei "Ganache-2.0.0.dmg" in Ihrem Download-Ordner und doppelklicken Sie darauf, um Ganache zu installieren. Nach erfolgreicher Installation wird der folgende Bildschirm angezeigt:

Ziehen Sie das Ganache-Symbol in den Anwendungsordner. Jetzt ist Ganache als Anwendung auf Ihrem Mac verfügbar.

Wenn Sie ein anderes Betriebssystem verwenden, befolgen Sie die Anweisungen für eine erfolgreiche Installation.

Ganache starten

Suchen Sie nun Ganache Doppelklicken Sie in Ihrem Anwendungsordner auf das entsprechende Symbol, um Ganache zu starten.

Ganache Desktop

Wenn Ganache gestartet wird, wird der Ganache-Bildschirm wie folgt angezeigt:

Klicken Sie auf QUICKSTART, um Ganache zu starten. Sie sehen die Ganache-Konsole wie unten gezeigt -

Die Konsole im obigen Screenshot zeigt zwei Benutzerkonten mit einem Kontostand von 100 ETH (Ether - eine Währung für Transaktionen auf der Ethereum-Plattform). Außerdem wird für jedes Konto eine Transaktionsanzahl von Null angezeigt. Da der Benutzer bisher keine Transaktionen durchgeführt hat, ist diese Anzahl offensichtlich Null.

Wir erhalten nun einen Überblick über einige wichtige Bildschirme von Ganache, die für uns von unmittelbarer Relevanz sind.

Klicken Sie oben rechts auf dem Bildschirm auf das Einstellungssymbol (siehe Abbildung unten).

Der Bildschirm mit den Servereinstellungen wird wie folgt angezeigt:

Hier können Sie die Werte der Serveradresse und die Portnummer für Ihren Ganache-Server festlegen. Überlassen Sie diese vorerst ihren Standardwerten. Die Netzwerk-ID ist eine interne Blockchain-ID des Ganache-Servers. Belassen Sie den Standardwert. DasAutomineDie Schaltfläche befindet sich im Status EIN und zeigt an, dass die Transaktionen sofort verarbeitet werden. Wenn Sie dies ausgeschaltet haben, werden Sie aufgefordert, die Zeit in Sekunden einzugeben, nach der die Blöcke abgebaut werden sollen.

Konto und Schlüssel

Wenn Sie auf klicken Accounts & Keys Menüoption sehen Sie den folgenden Bildschirm -

Hier könnten Sie setdas Standardguthaben für jedes Konto. Der Standardwert ist 100. Dies erklärt nun, warum im Desktop-Screenshot für jedes Konto 100 ETH angezeigt wurden. Sie können auch die Anzahl der Konten auf diesem Bildschirm festlegen. Der in diesem Screenshot angezeigte Wert ist 2 und deshalb wurden auf dem Desktop nur zwei Konten angezeigt.

Nun werden wir mit dem Bildschirm der beiden Einstellungen arbeiten. das Wissen darüber, wie diese beiden funktionieren würden, würde ausreichen. Starten Sie den Server neu, indem Sie auf klickenRESTARTSchaltfläche auf der rechten Seite des Bildschirms. Sie kehren nun zum Desktop-Bildschirm zurück. Versuchen Sie, verschiedene Werte in die beiden oben genannten Felder einzugeben, starten Sie den Server neu und sehen Sie, wie er sich auswirkt.

Wir werden nun kurz verstehen, was auf dem Ganache-Desktop verfügbar ist. Oben auf dem Desktop befinden sich mehrere Menüoptionen, von denen einige für uns unmittelbar relevant sind. Die Menüleiste ist im folgenden Screenshot hervorgehoben -

Klicken Sie auf die TRANSACTIONSDas Menü zeigt alle bisher durchgeführten Transaktionen an. Sie werden sehr bald Transaktionen durchführen. Kehren Sie nun zum obigen Bildschirm zurück und überprüfen Sie die Transaktionen von Zeit zu Zeit. Ein typischer Transaktionsbildschirm ist wie folgt:

Ebenso, wenn Sie auf die klicken BLOCKSMenü sehen Sie die verschiedenen abgebauten Blöcke. Betrachten Sie den folgenden Screenshot, um zu verstehen, wie das BLOCKS-Menü aussieht:

Klick auf das LOGSSpeisekarte. Es öffnet das Systemprotokoll für Sie. Hier können Sie die verschiedenen Vorgänge untersuchen, die Sie an der Ethereum-Blockchain ausgeführt haben.

Nachdem Sie verstanden haben, wie Ganache zum Einrichten einer privaten Ethereum-Blockchain verwendet wird, werden Sie nun einige Clients erstellen, die diese Blockchain verwenden würden.

Für die Client-Anwendung verwenden Sie MyEtherWallet.

Herunterladen MyEtherWallet Software von der folgenden URL -

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

Entpacken Sie bei Bedarf die heruntergeladene Datei und öffnen Sie sie index.html. Sie sehen die folgende Oberfläche zum Erstellen einer neuen Brieftasche.

In diesem Kapitel erfahren Sie, wie Sie eine Ethereum-Brieftasche erstellen. Um eine neue Brieftasche zu erstellen, geben Sie ein Passwort Ihrer Wahl ein und klicken Sie dann auf „Create New Wallet" Taste. Wenn Sie dies tun, wird eine Brieftasche erstellt. Eine digitale Geldbörse ist im Wesentlichen die Generierung eines öffentlichen / privaten Schlüsselpaars, das Sie an einem sicheren Ort aufbewahren müssen. Die Brieftaschenerstellung führt zu folgendem Bildschirm:

Klick auf das “Download Keystore File (UTC / JSON)”Schaltfläche zum Speichern der generierten Schlüssel. Klicken Sie nun auf die“I understand. Continue”Taste. Ihr privater Schlüssel wird auf dem Bildschirm angezeigt (siehe Abbildung unten).

Klick auf das “Print Paper Wallet”Klicken Sie auf die Schaltfläche, um den privaten Schlüssel Ihrer Brieftasche physisch aufzuzeichnen. Sie benötigen dies später, um die Brieftasche zu entsperren. Sie sehen den folgenden Bildschirm. Verlieren Sie diese Ausgabe nicht.

Um Ihre Brieftasche zu entsperren, klicken Sie auf “Save Your Address”Taste. Sie sehen den folgenden Bildschirm.

Die Brieftasche kann mit der Option Privater Schlüssel entsperrt werden, wie im obigen Bildschirm hervorgehoben. Schneiden Sie den privaten Schlüssel aus dem vorherigen Screenshot aus und klicken Sie auf die Schaltfläche Entsperren. Ihre Brieftasche wird entsperrt und am unteren Bildschirmrand wird eine Meldung angezeigt. Da die Brieftasche derzeit nichts enthält, ist das Entsperren der Brieftasche für uns derzeit nicht wirklich nützlich.

Sie haben jetzt eine Brieftasche erstellt. Diese Brieftasche ist eine Client-Schnittstelle zur Blockchain. Wir werden die Brieftasche an die Ganache-Blockchain anhängen, die Sie in der vorherigen Lektion begonnen haben. Klicken Sie dazu auf dieNetwork Dropdown-Box wie im Screenshot unten gezeigt -

Gehen Sie zum Ende der Liste. Sie sehen eine Option für“Add Custom Network / Node”. Wählen Sie diesen Punkt.

Nun wird ein Bildschirm angezeigt, in dem Sie nach der Ganache-Serveradresse und dem Port gefragt werden, den sie abhört.

Geben Sie Ihre Ganache-Serverdetails ein - http://127.0.0.1 und Hafen: 8545. Dies sind die Werte, die Sie im Ganache-Server-Setup festgelegt haben. Gib einnameIhrer Wahl zu diesem Knoten. Klick auf das“Save & Use Custom Node”Taste. Sie sehen die verbundene Nachricht am unteren Bildschirmrand. Zu diesem Zeitpunkt ist Ihre Brieftasche erfolgreich mit der Ganache Blockchain verbunden.

Sie können den Vertrag jetzt für diese verbundene Blockchain bereitstellen.

Um den Vertrag bereitzustellen, wählen Sie die Option Contracts Menüoption wie im Screenshot unten gezeigt -

Auf diesem Bildschirm müssen Sie den Bytecode des Vertrags eingeben. Denken Sie daran, dass beim Kompilieren Ihres Solidity-Vertragscodes ein Bytecode generiert wurde, der auf EVM ausgeführt wird. Sie müssen diesen Bytecode jetzt von erhaltenRemix IDE.

Gehen Sie zum Remix-IDE-Bildschirm. Ihr zuvor eingegebener Vertrag sollte sich dort im Codefenster befinden. Wenn nicht, geben Sie den Vertrag erneut in das Codefenster ein. Klicken Sie auf die Schaltfläche Bytecode, wie im folgenden Screenshot gezeigt -

Der Bytecode für Ihre kompilierte Quelle wird zusammen mit einigen anderen Informationen in die Zwischenablage kopiert. Fügen Sie den kopierten Code in Ihren bevorzugten Texteditor ein. Es folgt der Screenshot des Texteditors -

Der Wert des objectTag enthält den gewünschten Bytecode. Kopieren Sie dies sorgfältig und stellen Sie sicher, dass Sie die beiliegenden Anführungszeichen nicht kopieren. Der Bytecode ist sehr lang. Stellen Sie daher sicher, dass Sie bis zum letzten Byte einschließlich kopieren. Fügen Sie nun diesen Bytecode in das Feld einDeploy Contract Bildschirm wie unten gezeigt -

Das Gas Limit Feld wird automatisch gesetzt.

Unter dem Feld Gas Limit finden Sie die Auswahl für den Zugriff auf die Brieftasche.

Greifen Sie jetzt mit der Taste auf die Brieftasche zu Private Keydes Ganache-Kontos, auf dem dieser Vertrag bereitgestellt wird. Um diesen privaten Schlüssel zu erhalten, gehen Sie zurück zuGanacheFenster. Klick auf daskeys Symbol des ersten Kontos wie unten gezeigt -

Sie sehen den privaten Schlüssel des Benutzerkontos Nr. 1, wie im folgenden Screenshot gezeigt -

Kopieren Sie diesen privaten Schlüssel und fügen Sie ihn wie unten gezeigt in den Abschnitt "Einfügen Ihres privaten Schlüssels" ein.

Sie werden das sehen “Unlock”Schaltfläche am unteren Bildschirmrand. Nach dem Entsperren wird am unteren Bildschirmrand eine Erfolgsmeldung angezeigt. Zu diesem Zeitpunkt ist Ihre Brieftasche an Konto Nr. 1 der Ganache-Blockchain angehängt.

Jetzt können Sie den Vertrag unterzeichnen und bereitstellen. Klick auf das“Sign Transaction” Schaltfläche wie im Screenshot unten gezeigt -

Durch das Signieren der Transaktion werden beide generiert und angezeigt Raw und SignedTransaktionen. Klick auf das“Deploy Contract”Klicken Sie auf die Schaltfläche, um den Vertrag in der Ganache-Blockchain bereitzustellen. Denken Sie daran, dass der Vertrag vom Benutzer Nr. 1 der Ganache Blockchain bereitgestellt wird. Daher wird der Benutzer des Kontos Nr. 1 zum Vertragsersteller. Bevor der Vertrag bereitgestellt wird, werden Sie aufgefordert, die Transaktion zu bestätigen, da dies Sie echtes Geld kosten kann, wenn Sie diesen Vertrag in einer öffentlichen echten Ethereum-Blockchain bereitstellen. Keine Sorge, für die aktuelle private Blockchain, die auf Ihrem lokalen Computer ausgeführt wird, ist kein echtes Geld erforderlich. Klick auf dasMake transaction Schaltfläche wie im Screenshot unten gezeigt -

Untersuche die Ganache-Konsole. Sie werden sehen, dass sich der ETH-Kontostand in Konto 1 verringert hat, wie im folgenden Screenshot gezeigt -

Klicken Sie nun auf die TRANSACTIONS Menü wie im Screenshot unten gezeigt -

Sie sehen die Transaktionsdetails.

Auf diesem Bildschirm finden Sie die veröffentlichte Adresse des Vertrags. Die Adresse ist im obigen Screenshot markiert. Sie werden diese Adresse öffentlich verbreiten, um anderen mitzuteilen, dass Ihr Vertrag unter der angegebenen Adresse verfügbar ist, mit der sie die Vertragsmethoden verbinden und ausführen können, z. B. Geld an Sie - den Vertragsersteller - senden. Kopieren Sie diese Vertragsadresse als Referenz, da Sie sie im nächsten Schritt benötigen.

Jetzt können Sie mit dem von Ihnen bereitgestellten Vertrag interagieren. Kehren Sie zum MyEtherWallet-Desktop zurück und klicken Sie auf die Registerkarte "Mit Vertrag interagieren" (siehe Abbildung unten).

Fügen Sie die Vertragsadresse ein, die Sie zuvor in die kopiert haben “Contract Address”Feld. Sie müssen auch die einfügen“ABI / JSON Interface” des Vertrages auf dem obigen Bildschirm.

Um das zu bekommen ABI, geh zum Remix Fenster und klicken Sie auf das ABI Schaltfläche wie im folgenden Screenshot gezeigt.

Die ABI / JSON-Schnittstelle wird in die Zwischenablage kopiert. Fügen Sie dies in Ihren bevorzugten Editor ein, um die generierte Oberfläche zu untersuchen, die unten gezeigt wird -

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"
   }
]

Nachdem Sie diesen JSON in das Feld eingefügt haben MyEtherWallet Schnittstelle werden Sie feststellen, dass die ACCESS-Schaltfläche unter der JSON-Schnittstelle jetzt aktiviert ist, wie unten gezeigt -

Klicken Access Schaltfläche, um auf den Vertrag zuzugreifen.

Beim Klicken auf die AccessAuf der Schaltfläche wird die Dropdown-Liste für Vertragsadresse und Funktionsauswahl wie im Remix-Editor auf dem Bildschirm angezeigt. Dies wird im folgenden Screenshot gezeigt -

Sie können die verschiedenen Funktionen des Vertrags wie im Fall der Remix-Bereitstellung überprüfen. Beachten Sie, dass der Kontakt jetzt in einer externen Ganache-Blockchain bereitgestellt wird. Überprüf dengetAmountFunktion; Sie erhalten den Betragswert von Null und dengetBalance zeigt einen Saldo von 1000.

Versuchen Sie nun, etwas Geld zu senden. Es wird Ihnen eine präsentierentexteditKontrolle zur Eingabe des Betrags. Wenn Sie den Vertrag schreiben, wird etwas „Gas“ verwendet und Sie werden aufgefordert, die Transaktion zu bestätigen, bevor Sie sie in die Blockchain schreiben. Die Transaktion wird in kurzer Zeit ausgeführt, abhängig von dem Mining-Timing, das Sie auf dem Ganache-Server festgelegt haben. Danach können Sie die erneut überprüfenvalue und die amount Vertragsfelder, um zu überprüfen, ob diese tatsächlich geändert wurden.

Sie können jetzt den Ganache-Desktop untersuchen, um die Transaktionen anzuzeigen, die Sie bisher ausgeführt haben. Eine Beispielausgabe ist unten dargestellt -

Bisher waren Sie sowohl Vertragsschöpfer als auch Vertragsabwickler. Dies ist wenig sinnvoll, da Sie erwarten, dass andere Ihren Vertrag nutzen. Dazu erstellen wir einen weiteren Client für unsere Ganache Blockchain und senden etwas Geld vom neu erstellten Konto Nr. 2 an den Vertragsersteller auf Konto Nr. 1.

In diesem Kapitel erfahren Sie, wie Sie Vertragsbenutzer auf Ethereum erstellen. Um einen Benutzer für unseren veröffentlichten Vertrag zu erstellen, erstellen wir einen anderenMyEtherWalletClient, der an dieselbe Ganache-Blockchain angehängt ist, die Sie in den vorherigen Schritten verwendet haben. Gehe zumMyEtherWallet Bildschirm und erstellen Sie eine neue Brieftasche.

Klick auf das contracts Menü und wählen Sie die “Interact with Contract”Option wie im vorherigen Fall. Beachten Sie, dass dieser neue Benutzer einfach mit dem bereits veröffentlichten Vertrag interagiert und keinen eigenen Vertrag bereitstellt. Geben Sie die Vertragsadresse und die ABI an, die Sie im vorherigen Fall verwendet haben.

Klicken Sie nun auf Access Schaltfläche und aufrufen send Methode. Wenn Sie dazu aufgefordert werden, geben Sie einen Wert ein, z. B. 100 ETH, der gesendet werden soll. Senden Sie die Transaktion. Nach dem Absenden wird der folgende Bildschirm angezeigt.

Um diesen neuen Client an unsere Ganache-Blockchain anzuhängen, rufen Sie die Ganache-Konsole auf. Klicken Sie auf das Schlüsselsymbol von Konto 2, wie im folgenden Screenshot gezeigt -

Sie erhalten den privaten Schlüssel für Konto 2.

Kopieren Sie den Schlüssel, den Sie erhalten, und verwenden Sie ihn wie hier gezeigt in Ihrer neu erstellten Brieftasche.

Klick auf das Unlock Taste zum Anbringen der Brieftasche.

Wenn die Brieftasche erfolgreich entsperrt wurde, schreiben Sie die gewünschte Sendetransaktion.

Generieren Sie die Transaktion, indem Sie auf klicken “Generate Transaction” Taste.

Makedie Transaktion und warten Sie einige Zeit, bis sie in der Blockchain angezeigt wird. Jetzt ausführen“getAmount”sollte der angezeigte Betrag jetzt 200 sein.

Ausführen “getBalance”. Dasvalue Feld sollte jetzt 800 sein.

Untersuchen Sie das Transaktionsprotokoll, um die verschiedenen Transaktionen anzuzeigen, die von verschiedenen Benutzern ausgeführt werden.

Sie haben gelernt, wie Sie in Solidity Ihren eigenen digitalen Vertrag schreiben. Sie haben die Vertragsschnittstelle in der Remix-IDE entwickelt und getestet. Für weitere Mehrbenutzertests haben Sie diesen Vertrag in Ganache Blockchain bereitgestellt. In Ganache haben Sie zwei Benutzerkonten erstellt. Das erste Konto wurde zur Veröffentlichung des Vertrags verwendet. Das zweite Konto wurde zum Konsumieren des Vertrags verwendet.

Was kommt als nächstes?

Die Ganache-Blockchain, die Sie in diesem gesamten Prozess verwendet haben, ist privat und lokal für Ihren Computer. Sobald Sie mit der Funktionsweise des Vertrags vollständig zufrieden sind, können Sie ihn in einer realen Ethereum-Blockchain veröffentlichen. Dazu müssten Sie jedoch echtes Geld ausgeben. In der Demo-Anwendung haben wir für jedes Benutzerkonto in Ganache standardmäßig 1000 ETH verwendet. Wenn Sie Ihren Vertrag in einer realen Blockchain bereitstellen, müssen Sie die ETH kaufen, indem Sie die Währung Ihres Landes in die ETH umrechnen. Diese Währung wird in Ihrer Brieftasche gespeichert und Sie können sie nach Ihren Wünschen ausgeben.