日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python Web3 開發(fā):用 Brownie 部署智能合約

Python是最通用的編程語言之一:從研究人員運行他們的測試模型到開發(fā)人員在繁重的生產(chǎn)環(huán)境中使用它,幾乎在每個可能的技術(shù)領(lǐng)域都有使用案例。在今天的指南中,我們將了解Brownie,一個基于Python的工具,用于編寫和部署智能合約。

網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了大埔免費建站歡迎大家使用!

準備

  • 安裝Python3
  • 以太坊節(jié)點
  • 文本編輯器
  • 終端

什么是Brownie?

智能合約開發(fā)主要由基于JavaScript的庫主導,如 web3.js、 ethers.js、 Truffle和 Hardhat。Python是一種通用的、高度使用的語言,也可用于智能合約/web3的開發(fā);web3.py是一個引人注目的Python庫,可滿足web3的需求。Brownie框架是建立在web3.py之上的。

Brownie本意是指長方形小糖果,但我們今天談論的Brownie是一個基于Python的框架,用于開發(fā)和測試智能合約。Brownie同時支持Solidity和Vyper合約,它甚至可以通過pytest提供合約測試。

為了演示用Brownie編寫和部署智能合約的過程,我們將使用Brownie-mixes,這是一個模板項目。具體來說,我們將使用一個token mix,它是ERC-20實現(xiàn)的一個模板。

安裝依賴包

Brownie是建立在python3之上的,所以我們需要安裝它才能與brownie一起工作;讓我們檢查一下我們的系統(tǒng)上是否安裝了python3。要做到這一點,請在你的終端/cmd中輸入以下內(nèi)容。

python3 -V

該命令會返回所安裝的python3的版本。如果沒有安裝,請從官方python網(wǎng)站下載并安裝。

讓我們在安裝brownie之前建立一個項目目錄,并使該項目目錄成為我們當前的工作目錄。  

mkdir brownieDemo
cd brownieDemo

現(xiàn)在你已經(jīng)在你的系統(tǒng)上安裝了python3,讓我們來使用pip——Python的軟件包管理器來安裝brownie。pip 類似于 npm 對 JavaScript 的作用。在你的終端/cmd中輸入以下內(nèi)容:

pip3 install eth-brownie
## If the install failS, use the following command for better luck.
sudo pip3 install eth-brownie

要檢查Brownie是否被正確安裝,在你的終端/cmd中輸入brownie,它應該給出以下輸出:

要獲取token mix,可以在你的終端/cmd中輸入以下內(nèi)容:  

brownie bake token

這將在我們的 brownieDemo 目錄中創(chuàng)建一個新的目錄 token/。

文件結(jié)構(gòu)

首先,讓我們cd進入token目錄。  

cd token

現(xiàn)在,在你的文本編輯器中打開token目錄。在contracts/文件夾下,你會發(fā)現(xiàn)Token.sol,這是我們的主合約;你可以寫你自己的合約或修改這個。在scripts/文件夾下,你會發(fā)現(xiàn)token.py腳本;這個腳本將被用來部署合約,需要根據(jù)合約進行修改。

該合約是一個ERC-20合約。

啟動我們的Ethereum節(jié)點

我們將在Ropsten testnet上部署我們的合約,而不是運行我們自己的節(jié)點。請確保在結(jié)賬時選擇Ethereum作為鏈,Ropsten作為網(wǎng)絡。

保存HTTP URL。我們將在下一步中需要它。

網(wǎng)絡和賬戶設置

我們需要在Brownie設置一個QuickNode的免費節(jié)點。為此,在你的終端/cmd中輸入以下內(nèi)容。

brownie networks add Ethereum ropstenquicknode host=YOUR_QUICKNODE_URL chainid=3

將 YOUR_QUICKNODE_URL替換為我們在上一步驟中得到的 RopstenURL。

在上面的命令中,Ethereum是環(huán)境的名稱,ropstenquicknode是網(wǎng)絡的自定義名稱;你可以給你的自定義網(wǎng)絡起任何名字。

這里我們需要做的下一件事是使用 Brownie創(chuàng)建一個新的錢包。要做到這一點,在你的終端/cmd中輸入以下內(nèi)容。你會被要求為你的賬戶設置一個密碼。  

brownie accounts generate testac

這將生成一個賬戶以及一個記憶性短語,并將其離線保存。testac這個名字是我們賬戶的名稱。你可以選擇任何你想要的名字。

復制賬戶地址,以便我們可以得到一些測試用的ETH,這將是部署我們的合約所需要的。

獲取ETH測試幣

由于我們的合約將被部署在Ropsten測試網(wǎng),我們需要一些Ropsten測試ETH來支付gas費。前往Ropsten水龍頭,將您的地址粘貼在該區(qū)域,然后點擊 "Send me test Ether"。

部署我們的合約

在部署合約之前,我們需要用以下方法編譯它。

brownie compile

現(xiàn)在在你的文本編輯器中打開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行。我們添加這一行是為了導入我們先前創(chuàng)建的testac賬戶,并將其存儲在acct變量中。

第7行。在這一行,我們編輯了 'From':部分,以獲取我們的acct變量。

最后,我們將使用腳本(這里是 scripts/token.py)部署我們的合約。

brownie run token.py --network ropstenquicknode

在上面的命令中,ropstenquicknode是我們之前創(chuàng)建的自定義網(wǎng)絡的名稱。提示將要求你提供我們之前在建立賬戶時設置的密碼。運行上述命令后,你必須得到交易哈希值,Brownie將等待交易得到確認。一旦交易被確認,它將返回我們的合約在Ropsten測試網(wǎng)上部署的地址。

你可以在Ropsten etherscan復制粘貼合約地址,查看已部署的合約。

總結(jié)

我們學會了如何導入一個Brownie-mix,添加一個自定義網(wǎng)絡,創(chuàng)建一個賬戶,以及編譯和部署一個合約,整個過程中我們都使用了Brownie框架。


新聞名稱:Python Web3 開發(fā):用 Brownie 部署智能合約
鏈接分享:http://www.5511xx.com/article/dpdssdi.html