偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

準(zhǔn)備

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

什么是Brownie?

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

Brownie本意是指長(zhǎng)方形小糖果,但我們今天談?wù)摰腂rownie是一個(gè)基于Python的框架,用于開(kāi)發(fā)和測(cè)試智能合約。Brownie同時(shí)支持Solidity和Vyper合約,它甚至可以通過(guò)pytest提供合約測(cè)試。

為了演示用Brownie編寫(xiě)和部署智能合約的過(guò)程,我們將使用Brownie-mixes,這是一個(gè)模板項(xiàng)目。具體來(lái)說(shuō),我們將使用一個(gè)token mix,它是ERC-20實(shí)現(xiàn)的一個(gè)模板。

安裝依賴(lài)包

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

python3 -V

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

讓我們?cè)诎惭bbrownie之前建立一個(gè)項(xiàng)目目錄,并使該項(xiàng)目目錄成為我們當(dāng)前的工作目錄。    

mkdir brownieDemo
cd brownieDemo

現(xiàn)在你已經(jīng)在你的系統(tǒng)上安裝了python3,讓我們來(lái)使用pip——Python的軟件包管理器來(lái)安裝brownie。pip 類(lèi)似于 npm 對(duì) 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,它應(yīng)該給出以下輸出:

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

brownie bake token

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

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

首先,讓我們cd進(jìn)入token目錄。  

cd token

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

該合約是一個(gè)ERC-20合約。

啟動(dòng)我們的Ethereum節(jié)點(diǎn)

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

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

網(wǎng)絡(luò)和賬戶(hù)設(shè)置

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

brownie networks add Ethereum ropstenquicknode host=YOUR_QUICKNODE_URL chainid=3

將 YOUR_QUICKNODE_URL替換為我們?cè)谏弦徊襟E中得到的 RopstenURL。

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

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

brownie accounts generate testac

這將生成一個(gè)賬戶(hù)以及一個(gè)記憶性短語(yǔ),并將其離線保存。testac這個(gè)名字是我們賬戶(hù)的名稱(chēng)。你可以選擇任何你想要的名字。

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

獲取ETH測(cè)試幣

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

部署我們的合約

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

brownie compile

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

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

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

brownie run token.py --network ropstenquicknode

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

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

總結(jié)

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

責(zé)任編輯:龐桂玉 來(lái)源: Python中文社區(qū)
相關(guān)推薦

2022-05-16 13:58:52

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

2023-02-25 16:02:48

2022-08-18 15:21:42

區(qū)塊鏈DevOps

2022-05-20 16:50:33

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

2022-07-28 21:17:46

福布斯數(shù)字化Web3

2021-02-11 09:03:48

Web3技術(shù)Web 3.0

2022-06-15 08:00:00

區(qū)塊鏈Web3

2023-01-18 08:10:34

Web3Web2JavaScript

2021-05-06 09:42:24

Truffle部署智能

2023-05-24 08:00:00

2023-08-07 09:10:18

2022-09-05 10:06:38

Web3

2023-05-04 11:21:30

NodleWeb3項(xiàng)目

2023-02-12 00:14:52

2022-06-20 09:00:00

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

2023-09-07 10:47:47

2021-04-20 12:53:34

Polkadot部署合約

2021-03-18 23:04:41

Solidity開(kāi)發(fā)智能

2022-02-21 07:55:03

Web3數(shù)字貨幣Web2

2022-04-24 11:52:04

元宇宙Web3去中心化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)