Heim >Backend-Entwicklung >Python-Tutorial >Python Web3-Entwicklung: Bereitstellung intelligenter Verträge mit Brownie
Python ist eine der vielseitigsten Programmiersprachen: Von Forschern, die ihre Testmodelle ausführen, bis hin zu Entwicklern, die es in anspruchsvollen Produktionsumgebungen verwenden, gibt es Anwendungsfälle in fast allen möglichen Technologiebereichen. Im heutigen Leitfaden werfen wir einen Blick auf Brownie, ein Python-basiertes Tool zum Schreiben und Bereitstellen von Smart Contracts.
Die intelligente Vertragsentwicklung wird hauptsächlich von JavaScript-basierten Bibliotheken wie web3.js, ethers.js, Truffle und Hardhat dominiert. Python ist eine universelle, häufig genutzte Sprache, die auch für die Smart Contract-/Web3-Entwicklung verwendet werden kann; web3.py ist eine überzeugende Python-Bibliothek, die den Web3-Anforderungen gerecht wird. Das Brownie-Framework basiert auf web3.py.
Brownie bezieht sich ursprünglich auf ein kleines rechteckiges Bonbon, aber der Brownie, über den wir heute sprechen, ist ein Python-basiertes Framework zum Entwickeln und Testen intelligenter Verträge. Brownie unterstützt sowohl Solidity- als auch Vyper-Verträge und kann sogar Vertragstests über Pytest bereitstellen.
Um den Prozess des Schreibens und Bereitstellens intelligenter Verträge mit Brownie zu demonstrieren, verwenden wir Brownie-Mixes, ein Vorlagenprojekt. Konkret werden wir einen Token-Mix verwenden, der eine Vorlage für die ERC-20-Implementierung darstellt.
Brownie basiert auf Python3, daher müssen wir es installieren, damit es mit Brownie funktioniert. Überprüfen Sie, ob Python3 auf unserem System installiert ist. Geben Sie dazu Folgendes in Ihr Terminal/cmd ein.
python3 -V
Dieser Befehl gibt die installierte Version von Python3 zurück. Wenn es nicht installiert ist, laden Sie es bitte von der offiziellen Python-Website herunter und installieren Sie es.
Lassen Sie uns vor der Installation von Brownie ein Projektverzeichnis erstellen und das Projektverzeichnis zu unserem aktuellen Arbeitsverzeichnis machen.
mkdir brownieDemo cd brownieDemo
Da Sie nun Python3 auf Ihrem System installiert haben, installieren wir Brownie mit pip – dem Paketmanager von Python. pip ähnelt dem, was npm für JavaScript macht. Geben Sie Folgendes in Ihr Terminal/cmd ein:
pip3 install eth-brownie ## If the install failS, use the following command for better luck. sudo pip3 install eth-brownie
Um zu überprüfen, ob Brownie korrekt installiert ist, geben Sie brownie in Ihr Terminal/cmd ein und es sollte die folgende Ausgabe ergeben:
Um den Token-Mix zu erhalten, können Sie Geben Sie Folgendes in Ihr Terminal/cmd ein:
brownie bake token
Dadurch wird ein neues Verzeichnis token/ in unserem BrownieDemo-Verzeichnis erstellt.
Lassen Sie uns zunächst in das Token-Verzeichnis wechseln.
cd token
Öffnen Sie nun das Token-Verzeichnis in Ihrem Texteditor. Im Ordner „Verträge/“ finden Sie Token.sol, unseren Hauptvertrag. Sie können Ihren eigenen Vertrag schreiben oder diesen ändern. Im Ordner „scripts/“ finden Sie das Skript „token.py“. Dieses Skript wird zur Bereitstellung des Vertrags verwendet und muss entsprechend dem Vertrag geändert werden.
Bei diesem Vertrag handelt es sich um einen ERC-20-Vertrag.
Wir werden unsere Verträge im Ropsten-Testnetz bereitstellen, anstatt unseren eigenen Knoten zu betreiben. Bitte stellen Sie sicher, dass Sie beim Bezahlen Ethereum als Kette und Ropsten als Netzwerk auswählen.
HTTP-URL speichern. Wir werden es im nächsten Schritt brauchen.
Wir müssen einen kostenlosen QuickNode-Knoten in Brownie einrichten. Geben Sie dazu Folgendes in Ihr Terminal/cmd ein.
brownie networks add Ethereum ropstenquicknode host=YOUR_QUICKNODE_URL chainid=3
Ersetzen Sie YOUR_QUICKNODE_URL durch die RopstenURL, die wir im vorherigen Schritt erhalten haben.
Im obigen Befehl ist Ethereum der Name der Umgebung und ropstenquicknode der benutzerdefinierte Name des Netzwerks. Sie können Ihrem benutzerdefinierten Netzwerk einen beliebigen Namen geben.
Als nächstes müssen wir hier mit Brownie eine neue Wallet erstellen. Geben Sie dazu Folgendes in Ihr Terminal/cmd ein. Sie werden aufgefordert, ein Passwort für Ihr Konto festzulegen.
brownie accounts generate testac
Dadurch werden ein Konto und ein einprägsamer Satz erstellt und offline gespeichert. Der Name testac ist der Name unseres Kontos. Sie können einen beliebigen Namen wählen.
Kopieren Sie die Kontoadresse, damit wir etwas ETH zum Testen erhalten können, das für die Bereitstellung unseres Vertrags benötigt wird.
由于我们的合约将被部署在Ropsten测试网,我们需要一些Ropsten测试ETH来支付gas费。前往Ropsten水龙头,将您的地址粘贴在该区域,然后点击 "Send me test Ether"。
在部署合约之前,我们需要用以下方法编译它。
brownie compile
现在在你的文本编辑器中打开scripts/token.py,并做如下修改。
#!/usr/bin/python3 from brownie import Token, accounts def main(): acct = accounts.load('testac') return Token.deploy("Test Token", "TST", 18, 1e21, {'from': acct})
第6行。我们添加这一行是为了导入我们先前创建的testac账户,并将其存储在acct变量中。
第7行。在这一行,我们编辑了 'From':部分,以获取我们的acct变量。
最后,我们将使用脚本(这里是 scripts/token.py)部署我们的合约。
brownie run token.py --network ropstenquicknode
在上面的命令中,ropstenquicknode是我们之前创建的自定义网络的名称。提示将要求你提供我们之前在建立账户时设置的密码。运行上述命令后,你必须得到交易哈希值,Brownie将等待交易得到确认。一旦交易被确认,它将返回我们的合约在Ropsten测试网上部署的地址。
你可以在Ropsten etherscan复制粘贴合约地址,查看已部署的合约。
我们学会了如何导入一个Brownie-mix,添加一个自定义网络,创建一个账户,以及编译和部署一个合约,整个过程中我们都使用了Brownie框架。
Das obige ist der detaillierte Inhalt vonPython Web3-Entwicklung: Bereitstellung intelligenter Verträge mit Brownie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!