Teil 2 – Stellen Sie den Vertrag für die lokale Blockchain bereit


Im vorherigen Artikel haben wir einen einfachen intelligenten Vertrag erstellt und einige Komponententests mit der Truffle-Suite durchgeführt. In diesem Beitrag werde ich Sie durch die einzelnen Schritte führen, um ein lokales Ethereum-Netzwerk zu simulieren, unseren intelligenten Vertrag bereitzustellen und die Methoden des bereitgestellten Vertrags aufzurufen.

Wir werden Ganache, ein Simulationswerkzeug in Truffle Suite, verwenden, um ein lokales Blockkettennetzwerk in unserem Entwicklungs-PC zu simulieren. Laden Sie zunächst dieses Tool herunter und installieren Sie es auf Ihrem PC.

Nach der Installation Ganachekönnen Sie es ausführen und wählen SCHNELLSTART. Diese Option wird lassen Ganache Starten Sie ein simuliertes Netzwerk mit den Standardeinstellungen. Das ist in diesem Moment gut genug für uns.

Ganache UI

Warte bis Ganache Beenden Sie das Setup und wählen Sie Einstellung> Server, Du wirst sehen Port-Nummer und Netzwerk ID Auflistung dort draussen. Öffne das truffle-config.js In unserem Projekt entfernen Sie das Kommentarzeichen Entwicklung Abschnitt und aktualisieren Sie die Werte in folgen Informationen aufgeführt auf Ganache:

Entwicklung: {
Host: "127.0.0.1", // Localhost (Standard: keine)
Port: 7545, // Standard-Ethereum-Port (Standard: keiner)
network_id: 5777, // Beliebiges Netzwerk (Standard: keine)
},

Das ist es. Jetzt können wir unseren Vertrag im lokalen Netzwerk bereitstellen:

Trüffelmigration - Netzwerkentwicklung
Ausgabe der Trüffelmigration

Sie können die Bereitstellungstransaktion am überprüfen Ganache im Transaktion Tab.

Nach dem Einsatz des Smart Contract zu Ganachekönnen Sie damit interagieren Trüffelkonsole. Geben Sie zum Starten den folgenden Befehl ein:

Standardmäßig, Ganache erstellt 10 Testaccounts, von denen jeder 100ETH hat. Der Befehl Trüffel wandern Oben wird der Vertrag für eines dieser 10 Konten an Ganache test net weitergegeben (Standard ist das erste). Sie können die Transaktionsdetails für diese Erstellung (Absender, erstellte Vertragsadresse, verwendetes Gas, Gaspreis, Gaslimit, im Block abgebaut usw.) am anzeigen Ganache auch.

Lass uns ein bisschen mit der Konsole spielen. Erstens müssen wir die Instanz erhalten SimpleStorage dass wir gerade eingesetzt haben. Die Instanz muss die Methode des Vertrags später aufrufen:

let instance = warte auf SimpleStorage.deployed ()

Geben Sie den folgenden Befehl ein und lesen Sie die Detailinformationen der Beispiel Objekt:

Beispiel

Die Konsole listet alle Eigenschaften des Smart-Vertrags auf. Es gibt 2 wichtige Infos: abi und Adresse. abi ist ein Prototyp des Vertrags, der seine Methoden und Argumente definiert. Andere können diesem Prototyp folgen, um Methoden des Vertrages aufzurufen. Adresse ist die öffentliche Adresse dieses Vertrags im Netzwerk. Wissen Adresseund abi eines Vertrags ist ein Muss für andere Benutzer, um mit dem Vertrag zu interagieren.

abi:
[{Konstante:wahr[{constant:true
Eingänge: [],
name: 'savedData',
Ausgänge: [Array],
zahlbar: falsch,
stateMutability: 'view',
Typ: "Funktion",
Signatur: '0x2a1afcd9'},
{konstant: wahr,
Eingänge: [],
Name: "Eigentümer",
Ausgänge: [Array],
zahlbar: falsch,
stateMutability: 'view',
Typ: "Funktion",
Signatur: '0x8da5cb5b'},
{Eingänge: [],
zahlbar: falsch,
stateMutability: 'nicht zahlbar',
Typ: "Konstruktor",
Konstante: undefined},
{konstant: falsch,
Eingänge: [Array],
name: 'set',
Ausgänge: [],
zahlbar: falsch,
stateMutability: 'nicht zahlbar',
Typ: "Funktion",
Signatur: '0x60fe47b1'},
{konstant: wahr,
Eingänge: [],
name: 'get',
Ausgänge: [Array],
zahlbar: falsch,
stateMutability: 'view',
Typ: "Funktion",
Signatur: '0x6d4ce63c'},
{konstant: falsch,
Eingänge: [],
Name: "töten",
Ausgänge: [],
zahlbar: falsch,
stateMutability: 'nicht zahlbar',
Typ: "Funktion",
Signatur: '0x41c0e1b5'}],
Adresse: '0x8e360d2e0d794e87a8c876051DD9d3D03ca38edA',

Eine andere Möglichkeit, den Vertrag zu instanziieren, ist das Aufrufen web3.eth.Contract mit abi und Adresse:

let instance = new web3.eth.Contract (abi, address)

Jetzt können wir Methoden von aufrufen SimpleStorage über diese Instanz. Sie können den folgenden Befehl in Ihrer Trüffelkonsole ausführen. Beachten Sie, dass der Wert als Hexadezimalzahl gespeichert ist. Sie müssen ihn in eine Dezimalzahl konvertieren, um den von uns festgelegten Wert zu erhalten.

instance.get.call ()
instance.set (9999)
instance.get.call () // Ausgabe:
instance.get.call (). then (value => console.log (parseInt (value, 10))) // Ausgabe: 9999

In diesem Artikel simulieren wir ein Ethereum-Netzwerk auf unserem lokalen PC, stellen einen Smart Contract darauf bereit und versuchen, einige Methoden mithilfe der Web3-Bibliothek aufzurufen. Im nächsten Artikel werde ich Ihnen zeigen, wie Sie den Vertrag für RinkeBy, ein beliebtes Testnetz von Ethereum, bereitstellen können.

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

Werbung: Immobilienmakler HeidelbergMakler Heidelberg

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close