Brownie Web3 – Entwickeln Sie Ethereum Smart Contracts mit Python

Teilen Sie grundlegendes Wissen über Brownie Web3 und erläutern Sie, wie Sie damit Ethereum-Smart-Verträge entwickeln können, die auf der Blockchain bereitgestellt werden

Für Web3.0-Smart-Contract-Entwickler erleichtert Brownies das Entwickeln, Importieren, Testen und Debuggen von Smart Contracts, die im Ethereum-Blockchain-Netzwerk bereitgestellt werden, erheblich. Darüber hinaus erleichtert es Ihnen die Einrichtung von Transaktionen, Methoden und Variablen für die Interaktion mit Ethereum.

Seitdem werde ich die Grundkenntnisse zu Brownie durchgehen und erläutern, wie man mit Brownie intelligente Ethereum-Verträge entwickelt und sie im Blockchain-Netzwerk bereitstellt.

Brownie Web3.0 – Zutaten zur Entwicklung intelligenter Ethereum-Verträge, die mit dem Kryptowährungsnetzwerk interagieren

Brownie, Python, Infura, OS, Ganache, MetaMask, ETH Goerli-Testnetzwerk

Inhaltsverzeichnis

Was ist Brownie?

Brownie ist ein benutzerfreundliches und benutzerfreundliches Framework für die Entwicklung intelligenter Ethereum-Verträge. Der Hauptwert seines Funktionsumfangs besteht aus 3 Aspekten:

Stellen Sie die erforderlichen Smart Contracts in Blockchain-Netzwerken bereit

Erstellen Sie verschiedene Arten und Zwecke von Smart Contracts und stellen Sie diese auf der Blockchain wie Ethereum bereit. Und Sie können alle Transaktionselemente erstellen und initiieren, die für die Interaktion mit der Blockchain von Bedeutung sind.

Interagieren Sie mit den Smart Contracts

Mit dem Brownie-Framework und dem Ordnerpfad können Sie Skripte schreiben oder die Brownie-Konsole verwenden, um mit den im Hauptnetz bereitgestellten Smart Contracts zu interagieren. Oder Sie können UAT in einer lokalen Blockchain-Umgebung implementieren, z. B. Ganache

Testen Sie die in der Entwicklung befindlichen Smart Contracts

Brownie bietet eine schnelle, benutzerfreundliche und benutzerfreundliche Testumgebung für die Entwicklung intelligenter Verträge und die damit verbundenen Funktionen zur Implementierung des Tests. Sie können beispielsweise detaillierte Informationen erhalten, wenn eine Transaktion rückgängig gemacht wird, um das Problem schnell zu lokalisieren.

Aktivieren Sie Brownie und installieren Sie die lokale Blockchain-Installation von Ganache

Schritt 1: Brownie-Installation

Nehmen Sie zum Beispiel die MacOS-Umgebung. Als Erstes müssen wir eine visuelle Umgebung für Brownie installieren, indem wir die folgende Codezeile in das Terminal eingeben.

Python3 -m pip install –user pipx

Python3 -m pipx ensure path

Schließen Sie nach Abschluss der Installation unbedingt das Terminal, um Konflikte zu vermeiden, oder aktivieren Sie die visuelle Umgebung.

Geben Sie dann bitte die folgende Codezeile ein, um Brownie zu installieren

Pips install eth-brownie

Um zu überprüfen, ob Sie es auf Ihrem Mac installiert haben, können wir den Befehl checker eingeben, der mit jedem anderen Paketcheck identisch ist.

Schritt 2: Erstellen Sie den ersten Brownie-Skriptordner und das erste Brownie-Projekt

Ich gehe davon aus, dass Sie in Ihrer Codierungssoftware einen neuen Ordner erstellt haben, z. B.: Visual Studio Code. Jetzt können wir versuchen, ein neues Brownie-Projekt zu erstellen. Hier ist der Code für die Initiierung wie folgt:

Brownie init

Sobald die Initiierung und die Reaktionsinstallation abgeschlossen sind, wird im Brownie-Ordner standardmäßig eine Liste von Ordnern angezeigt. Dabei handelt es sich um Ordner mit unterschiedlichen Funktionen:

  • Bauen
  • Verträge
  • Schnittstellen
  • Berichte
  • Skripte
  • Tests

Schritt 3: Installieren Sie die lokale Ganache-CLI

Brownie arbeitet standardmäßig mit der Ganache-CLI im Terminal, einer lokalen visuellen Blockchain-Umgebung. In unserem vorherigen Artikel stellt das Skript eine direkte Verbindung zur Web-UI-Version her. Dieses Mal müssen wir Ganache CLI installieren.

  • Laden Sie node.js herunter (hier ist die macOS-Version) und installieren Sie es auf dem Gerät
  • Befehl: npm install –global yarn . Wir müssen Garn installieren, einen Paketmanager, der es uns tatsächlich ermöglicht, Teile und Pakete wie die Ganache-CLI herunterzuladen. Fügen Sie unbedingt sudo hinzu, wenn Ihr Gerät möglicherweise antwortet, dass Sie keine Berechtigung zum Installieren von Garn haben.
  • Installieren Sie die Ganache-CLI mit den Befehlen: yarn global add ganache-cli . Stellen Sie auch hier sicher, dass Sie sudo hinzufügen, wenn Ihr Gerät dies erneut ablehnt.

Erstellen Sie den ersten Smart Contract und stellen Sie ihn auf der Ganache-CLI bereit

Fügen Sie den Smart Contract hinzu

In den Vertragsordnern von Brownie können Sie die Smart-Contract-Datei speichern, z. B. easy2digitalStore.sol . Nachdem Sie die Datei in diesem Ordner hinzugefügt haben, können Sie diese Codezeile wie folgt eingeben:

Brownie compile

Sobald Sie die angegebene Sol-Datei kompiliert haben, können Sie alle kompilierten Informationen sehen, die im Build-Ordner im Vertragsordner im JSON-Format gespeichert sind.

Bereitstellung auf der ETH-Blockchain

Als Erstes müssen wir eine neue Python-Datei im Skriptordner erstellen

Deployment.py

Im Skript müssen wir eine Brownie-Methode verwenden, nämlich accounts() , die für die Interaktion mit der lokalen visuellen Blockchain, Ganache CLI, dient. Hier sind die Codebeispiele:

Import brownie import accounts

def single_contract():

localGanacheAccount = accounts[0]

print(localGanacheAccount)

Def main():

single_contracct()

Und wir können den Brownie-Lauf verwenden, um das Python-Skript im Terminal zu aktivieren.

Fügen Sie ein neues Konto hinzu und verbinden Sie sich mit dem echten Testnetzwerk

Wir können ein neues Konto erstellen, anstatt das Ganache-CLI-Konto zu verwenden. Hier sind sowohl der Befehl als auch der Code wie folgt:

Im Terminal:

Brownie accounts new easy2digitalAccount-account

Anschließend müssen Sie einen privaten Schlüssel für dieses neue Konto hinzufügen. Wir können den privaten MetaMask-Schlüssel kopieren und hier einfügen.

Zu guter Letzt würde Brownie Ihren privaten Schlüssel mit einem Passwort verschlüsseln. Geben Sie also einfach ein beliebiges Passwort ein.

Wenn Sie versuchen, mit der Load-Methode nach dem neuen Konto zu suchen, das Sie gerade erstellt haben, sieht das Ergebnis wie folgt aus:

Stellen Sie eine Verbindung zu einem echten Testnetzwerk her

Brownie stellt eine Liste der deklarierten Netzwerke bereit. Wenn Sie dies überprüfen möchten, geben Sie einfach den Befehl Brownie Networks List in das Terminal ein.

Im vorherigen Artikel haben wir Infura als Drittanbieterplattform verwendet, um eine Verbindung zu Ethereum herzustellen. Daher würden wir auch hier INFURA verwenden.

Als Erstes benötigen wir ein HTTP-Provider-Protokoll von INFURA. Mit Brownie haben wir eine Methode, uns mit Infura zu verbinden. Bitte fügen Sie dies der .env hinzu

WEB3_INFURA_PROJECT_ID = your infura http endpoint unique ID.

Anstatt das Konto von der Ganache-CLI abzurufen, müssen wir jetzt das Konto von Ihrem MetaMask-Goerli-Testnetzwerk abrufen.

Fügen Sie den privaten Schlüssel hinzu, den Sie hinzufügen möchten, z. B. die MetaMask-Wallet. Stellen Sie sicher, dass Sie das 0x vor dem privaten MetaMask-Schlüssel hinzufügen. Hier müssen wir drei Dinge tun

  • Erstellen Sie eine get_account-Funktion, die die Informationen zum privaten Schlüssel der MetaMask-Brieftasche abrufen soll
  • Fügen Sie die Datei brownie-config.yaml im Hauptverzeichnisordner hinzu, um eine Verbindung mit .env herzustellen, das den privaten Schlüssel und die eindeutige ID des INFURA-Endpunkts enthält
  • Ersetzen Sie „account[0]“ durch „get_account()“ im Ganache-CLI-Testskript.

Zuletzt müssen wir Infura mitteilen, welches ETH-Testnetzwerk das Python-Skript verwenden wird. Da wir im vorherigen Artikel goerili verwendet haben, verwenden Sie hier dasselbe, indem Sie den Befehl in das Terminal eingeben

Brownie run scripts/deployment.py –network goerli

Sobald die Verbindung hergestellt ist, können Sie zum Abschnitt „Bereitstellung“ im Build-Ordner gehen. Dort wird eine Karten-JSON-Datei generiert.

Testen und debuggen Sie Ihre Smart Contracts

Eine der leistungsstarken Funktionen von Brownie ist sicherlich die Testumgebung. Smart-Contract-Entwickler können das UAT implementieren und die Fehler beheben, bevor sie live gehen.

Lassen Sie uns ein Skript erstellen, das genauso gut ist wie das Skript „deployment.py“, das wir im Testordner erstellt haben.

Zunächst einmal ist Brownie äußerst praktisch, da es Entwicklern ermöglicht, den Smart Contract direkt in das Python-Skript zu importieren.

Hier ist das Codebeispiel:

From brownie import easy2idigitalContract, accounts

Daher können wir den Vertragsnamen direkt mit der Methode deploy() verwenden, um das Konto in einer Blockchain bereitzustellen. Zum Beispiel:

Def test_deployment():

##Arrange a specific smart contract address

walletAccount = accounts[0]

##Deploy the contract to the account

Single_contract = easy2idigitalContract.deploy({“from”: walletAccount})

Starting_value = single_contract.retrieve()

Zweitens müssen wir, da es sich um einen Test handelt, prüfen, ob der abgerufene Wert dem erwarteten Wert entspricht, den er haben sollte. Hier ist ein Beispielcode wie folgt:

Expected == 0

Assert starting_value == expected

Geben Sie dann bitte den Befehl in das Terminal ein, um zu prüfen, ob der Wert gleich ist. Wenn das Ergebnis bestanden ist, wird es in grüner Farbe als bestanden angezeigt.

Brownie test

Brownie-Konsole für alle Ad-hoc-Funktionstests und -Entwicklungen

Wenn Sie zum Skripttesten eine Shell oder Konsole erstellen möchten, um das Skript zu testen und auszuführen. Sie können versuchen, den Code wie folgt einzugeben, wobei Sie das Skript direkt aktualisieren und ausdrucken können, um das Ergebnis sofort zu erhalten.

Brownie test –pdb

Vollständiges Python-Skript von Brownie Web3.0 – Entwickeln Sie intelligente Verträge und aktivieren Sie die Interaktion mit der ETH mithilfe von Brownie und Python

Wenn Sie sich für das Web3.0-Tutorial 3 – Brownie in Web3.0 – Entwickeln von Ethereum-Smart-Contracts, die mit dem Kryptowährungsnetzwerk interagieren, unter Verwendung von Brownie und Python interessieren, Bitte abonnieren Sie unseren Newsletter , indem Sie die Nachricht „Web3.0 Tutorial 3“ hinzufügen. . Wir senden Ihnen das Skript umgehend in Ihr Postfach.

Ich wünsche Ihnen viel Spaß beim Lesen des Web3.0-Tutorials 3 – Brownie in Web3.0 – Entwicklung von Ethereum-Smart-Contracts, die mit dem Kryptowährungsnetzwerk interagieren, unter Verwendung von Brownie und Python. Wenn ja, unterstützen Sie uns bitte, indem Sie eine der unten aufgeführten Aktionen ausführen, denn das hilft immer Unser Kanal.

  • Unterstützen Sie meinen Kanal und spenden Sie über PayPal ( paypal.me/Easy2digital )
  • Abonnieren Sie meinen Kanal und aktivieren Sie die Benachrichtigungsglocke des Easy2Digital-Youtube-Kanals .
  • Folgen und liken Sie meine Easy2Digital-Facebook-Seite
  • Teilen Sie den Artikel in Ihrem sozialen Netzwerk mit dem Hashtag #easy2digital
  • Sie melden sich für unseren wöchentlichen Newsletter an, um die neuesten Artikel, Videos und Rabattcodes von Easy2Digital zu erhalten
  • Abonnieren Sie unsere monatliche Mitgliedschaft über Patreon, um exklusive Vorteile zu genießen ( www.patreon.com/louisludigital )