自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python Web3 開發(fā):用 Brownie 部署智能合約

開發(fā) 后端
在今天的指南中,我們將了解Brownie,一個基于Python的工具,用于編寫和部署智能合約。

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

準備

  • 安裝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中輸入以下內容。

python3 -V

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

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

mkdir brownieDemo
cd brownieDemo

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

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中輸入以下內容:    

brownie bake token

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

文件結構

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

cd token

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

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

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

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

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

網絡和賬戶設置

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

brownie networks add Ethereum ropstenquicknode host=YOUR_QUICKNODE_URL chainid=3

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

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

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

brownie accounts generate testac

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

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

獲取ETH測試幣

由于我們的合約將被部署在Ropsten測試網,我們需要一些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)建的自定義網絡的名稱。提示將要求你提供我們之前在建立賬戶時設置的密碼。運行上述命令后,你必須得到交易哈希值,Brownie將等待交易得到確認。一旦交易被確認,它將返回我們的合約在Ropsten測試網上部署的地址。

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

總結

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

責任編輯:龐桂玉 來源: Python中文社區(qū)
相關推薦

2022-05-16 13:58:52

開發(fā)區(qū)塊鏈Web3

2023-02-25 16:02:48

2022-08-18 15:21:42

區(qū)塊鏈DevOps

2021-02-11 09:03:48

Web3技術Web 3.0

2022-07-28 21:17:46

福布斯數字化Web3

2022-05-20 16:50:33

區(qū)塊鏈Web3加密資產

2022-06-15 08:00:00

區(qū)塊鏈Web3

2023-01-18 08:10:34

Web3Web2JavaScript

2023-05-24 08:00:00

2021-05-06 09:42:24

Truffle部署智能

2023-08-07 09:10:18

2022-09-05 10:06:38

Web3

2023-05-04 11:21:30

NodleWeb3項目

2023-02-12 00:14:52

2022-04-15 10:55:59

Web3反壟斷元宇宙

2022-06-20 09:00:00

Web3加密貨幣區(qū)塊鏈

2021-04-20 12:53:34

Polkadot部署合約

2022-02-21 07:55:03

Web3數字貨幣Web2

2023-09-07 10:47:47

2021-03-18 23:04:41

Solidity開發(fā)智能
點贊
收藏

51CTO技術棧公眾號