校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 使用Python的開發框架Brownie部署以太坊智能合約

使用Python的開發框架Brownie部署以太坊智能合約

熱門標簽:電銷機器人的風險 天津電話機器人公司 開封自動外呼系統怎么收費 開封語音外呼系統代理商 手機網頁嵌入地圖標注位置 應電話機器人打電話違法嗎 河北防封卡電銷卡 地圖標注線上如何操作 400電話辦理哪種

介紹

我希望可以在任何開發場景都盡量用Python。在區塊鏈開發中,常用的是以太坊虛擬機智能合約語言Solidity,它具有許多不錯的功能,并且仍然可以使用 Python 進行部署。剛開始使用Solidity時,我使用了Remix(https://remix.ethereum.org/),這是一個強大的Web IDE,可讓您進行智能合約可視化。Remix很棒,我現在仍然使用它,但是在單個IDE之外可以實現很多其他功能。后來我開始學習Truffle(https://www.trufflesuite.com/)和HardHat(https://hardhat.org/guides/mainnet-forking.html),它們是用于部署智能合約的Node.js框架。
這些是到目前為止我所見過的主要框架,這些框架都不錯,但是我更喜歡Python。所以當我發現Brownie 和web3.py:一個用于部署智能合約的Python框架和一個用于區塊鏈開發的開源協議之后非常興奮。我們將在本文中同時介紹Brownie和Web3.py。

為什么選擇Python?

有這么多數據科學家、學者和金融科技機構使用Python是有原因的。它用途廣泛,具有輕松的開發體驗,并且與各種第三方庫緊密結合在一起。頂級 defi 項目開始意識到這一點,諸如yearn.finance之類的項目使用python來部署其所有生產代碼。Yearn.finance由一群非常有才華的金融科技工程師經營,他們轉向了區塊鏈,帶著他們熟悉和喜愛的Python工具。

Brownie是什么?

Brownie是由Ben Hauser創建的Python智能合約開源框架,又名“iamdefinitelyahuman”(中文意思“非絕對人類”),是一件藝術品。這就是yearn.finance團隊用來部署和維護智能合約的工具。您可以使用簡單的命令啟動項目,然后立即開始使用代碼。

用Python部署您的第一個智能合約

1. 安裝 Brownie 和 bake

Brownie具有“baking”功能,可讓您使用一些基礎代碼啟動存儲庫,因為大多數項目都需要很多相同的部分,類似于create-eth-app。要開始使用,和其他所有Python軟件包的安裝方式一樣。

pip install eth-brownie

我們還需要安裝ganache-cli一個用于部署本地區塊鏈的軟件包。為此,您需要安裝npm和nodejs。

npm install -g ganache-cli

準備開始!我們將使用chainlink-mix入門,因為許多頂級defi項目都使用Chainlink來獲取其資產數據。

brownie bake chainlink-mix
cd chainlink

通過ls命令將向我們展示項目的結構布局
Brownie項目布局

build : This is where the project keeps track of your deployed smart contracts and compiled contracts
contracts : The source code of your contracts, typically written in solidity or vyper
interfaces : A layout of interfaces you'll need to work with deployed contracts. Every interaction with a contract needs an ABI and an address. Interfaces are great ways to get a contract's ABI
scripts : Scripts we create to automate processes of working with our contracts
tests : Tests
brownie-config.yaml : This is where we have all the information for brownie to understand how to work with our smart contract. What blockchain do we want to deploy to? Are there any special parameters we want to set? All these are set in the config file.

requirements.txt,README.md,LICENSE和.gitignore可以忽略,您將在后面了解它們的用途。

2.設置環境變量

如果您熟悉區塊鏈開發,就會知道本地區塊鏈,測試網區塊鏈和主網區塊鏈都是不同的東西。我們將部署到測試網,以便我們可以與真實的實時區塊鏈網絡進行交互。您需要一個WEB3_INFURA_PROJECT_ID,可以通過創建Infura帳戶來檢索該WEB3_INFURA_PROJECT_ID。這就是我們用來連接到測試網絡的東西。我們還將獲得一個metamask或其他web3以太坊錢包,并用一些ETH進行注資。對于這個demo,我們要使用Kovan測試網絡。
您可以跳過有關LINK資金的部分,我們只需要testnet ETH。我們也不會使用Ropsten,而是使用Kovan。如果您已經有了錢包,請從https://gitter.im/kovan-testnet/faucet獲取一些Kovan Ether。

安裝,配置和Metamask

一旦有了Metamask錢包,就可以將私鑰導出到PRIVATE_KEY環境變量。在此處(https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html)閱讀有關設置環境變量的信息。如果這仍然使您感到困惑,并且這只是一個測試錢包,請隨意將代碼中的PRIVATE_KEY替換為您的私鑰和WEB3_INFURA_PROJECT_ID。

3.部署您的智能合約

在我們的腳本文件夾中,我們有一個名為deploy_price_consumer_v3.py的腳本,該腳本將部署我們的智能合約,該合約讀取以太坊的美元價格。如果您想更輕松地了解該合約的功能以及如何部署它,請隨時查看有關部署價格訂閱合同的Chainlink教程(https://docs.chain.link/docs/beginners-tutorial/)。brownie run是我們可以用來運行腳本的命令。如果僅運行brownie,則可以看到所有命令的列表。

brownie run scripts/price_feed_scripts/deploy_price_consumer_v3.py --network kovan

--network kovan允許我們設置要使用的網絡。我們正在使用kovan testnet進行此演示。您將需要Kovan ETH來做到這一點!您將獲得很多輸出內容,但最終會得到類似以下結果:

Running 'scripts/price_feed_scripts/deploy_price_consumer_v3.py::main'...
Transaction sent: 0x23d1dfa3937e0cfbab58f8d5ecabe2bfffc28bbe2349527dabe9289e747bac56
Gas price: 20.0 gwei   Gas limit: 145600   Nonce: 1339
PriceFeed.constructor confirmed - Block: 22721813   Gas used: 132364 (90.91%)
PriceFeed deployed at: 0x6B2305935DbC77662811ff817cF3Aa54fc585816

如果此方法正常運行,我們可以轉到kovan etherscan并找到我們部署的合約。上面的鏈接顯示了此示例中部署的合約。

4.讀取您的智能合約

現在我們已經部署了智能合約,我們可以從剛剛部署的合約中讀取以太坊的價格。我們將運行另一個腳本:

brownie run scripts/price_feed_scripts/read_price_feed.py --network kovan

得到類似以下的輸出:

Brownie v1.12.2 - Python development framework for Ethereum
ChainlinkProject is the active project.
Running 'scripts/price_feed_scripts/read_price_feed.py::main'...
Reading data from 0x6B2305935DbC77662811ff817cF3Aa54fc585816
62322000000
Where 62322000000 is the current price of ETH in USD! Solidity doesn't understand decimals, and we know that this example has 8 decimals, so the price is $623.22 .

您剛剛使用Python和Brownie部署了您的第一個智能合約!
使用web3.py
Brownie使用名為web3.py的工具讓您的開發更輕松,但是如果機智點,則我們始終可以直接在沒有框架的情況下使用合約。Web3.py是一個原始程序包,我們可以使用它來更直接地處理合同。為此,我們只需要上面的Kovan infura項目ID。請記住,要與任何智能合約進行交互,您需要做兩件事:

  • 智能合約ABI
  • 智能合約地址

Brownie 會在后臺處理很多此類工作,但我們也可以手動進行。這是通過web3.py從鏈上合同中讀取的內容。首先,我們需要安裝web3.py。

pip install web3

然后,我們可以在文件中運行以下內容。

web3 = Web3(Web3.HTTPProvider('https://kovan.infura.io/v3/infura_project_id>')) 
abi = '[{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]' 
addr = '0x9326BFA02ADD2366b30bacB125260Af641031331' 
contract = web3.eth.contract(address=addr, abi=abi) 
latestData = contract.functions.latestRoundData().call() print(latestData)

運行上述操作后將在我們的控制臺中打印以美元為單位的ETH的最新價格。請查看Chainlink文檔以確定是否有問題。

結論

您可以從他們的文檔中了解有關Web3.py和Brown的更多信息。這兩個項目都是開源的,任何人都可以做出貢獻!
https://github.com/eth-brownie/brownie
https://github.com/ethereum/web3.py

以上就是使用Python的開發框架Brownie部署以太坊智能合約的詳細內容,更多關于Python部署智能合約的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • python程序實現BTC(比特幣)挖礦的完整代碼
  • Python實現類似比特幣的加密貨幣區塊鏈的創建與交易實例
  • python做量化投資系列之比特幣初始配置
  • 詳解python實現簡單區塊鏈結構
  • python區塊及區塊鏈的開發詳解
  • python簡單區塊鏈模擬詳解
  • Python實現基于POS算法的區塊鏈
  • 使用Python從零開始擼一個區塊鏈
  • Python從零開始創建區塊鏈
  • 用不到50行的Python代碼構建最小的區塊鏈
  • Python學習入門之區塊鏈詳解

標簽:常州 江蘇 駐馬店 宿遷 山東 蘭州 六盤水 成都

巨人網絡通訊聲明:本文標題《使用Python的開發框架Brownie部署以太坊智能合約》,本文關鍵詞  使用,Python,的,開發,框架,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用Python的開發框架Brownie部署以太坊智能合約》相關的同類信息!
  • 本頁收集關于使用Python的開發框架Brownie部署以太坊智能合約的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    99久久伊人网影院| 精品一区二区三区视频| 暴力调教一区二区三区| 国产精品久久午夜夜伦鲁鲁| 福利一区二区在线观看| 亚洲男人的天堂在线观看| 91免费视频观看| 亚洲夂夂婷婷色拍ww47| 欧美欧美欧美欧美首页| 久久精品国产亚洲a| 国产欧美1区2区3区| 色婷婷综合久久久久中文一区二区| 中文字幕在线不卡视频| 欧美日本视频在线| 国产精品一区二区久激情瑜伽 | 成人黄页毛片网站| 中文字幕一区三区| 欧美男男青年gay1069videost| 伦理电影国产精品| 亚洲国产精品av| 欧美丝袜第三区| 国产又黄又大久久| 亚洲国产综合视频在线观看| 精品日韩在线观看| 色婷婷久久99综合精品jk白丝| 男女性色大片免费观看一区二区| 国产三级一区二区| 欧美性xxxxxx少妇| 国产盗摄一区二区| 午夜久久久久久久久久一区二区| 精品国产一区二区三区久久久蜜月 | 这里只有精品免费| zzijzzij亚洲日本少妇熟睡| 青青草成人在线观看| 一区精品在线播放| 精品成人一区二区三区四区| 欧美综合天天夜夜久久| 风流少妇一区二区| 天堂资源在线中文精品| 亚洲视频精选在线| ww久久中文字幕| 欧美日韩一区二区三区四区| 国产成人亚洲综合a∨婷婷图片| 婷婷久久综合九色综合伊人色| 国产精品传媒视频| 久久婷婷成人综合色| 在线成人免费观看| 在线观看日韩国产| av在线不卡免费看| 国产成人精品午夜视频免费| 麻豆精品视频在线观看视频| 亚洲一区在线观看免费| 国产精品理伦片| 久久久国产午夜精品| 欧美电影免费观看高清完整版在线 | 精品三级av在线| 欧美精品久久99久久在免费线| 92国产精品观看| 国v精品久久久网| 国产美女精品在线| 久久精品国产99久久6| 午夜天堂影视香蕉久久| 一区二区三区精品| 亚洲综合色自拍一区| 亚洲人成在线观看一区二区| 欧美韩国日本综合| 日本一区免费视频| 日本一区二区三区电影| 久久久99精品久久| 国产欧美日韩在线观看| 国产人伦精品一区二区| 国产亚洲欧美一区在线观看| 久久综合久久综合九色| 欧美精品一区二区三区四区 | 久久精品国产77777蜜臀| 日韩精品一级二级| 日本va欧美va欧美va精品| 日韩精品成人一区二区三区| 日本va欧美va精品| 精品影视av免费| 国产一区二区电影| 成人免费福利片| 99国产精品国产精品毛片| 91在线观看污| 欧美性受xxxx黑人xyx| 欧美午夜理伦三级在线观看| 欧美精品日韩综合在线| 日韩一区二区电影在线| 久久久综合九色合综国产精品| 久久日一线二线三线suv| 欧美国产亚洲另类动漫| 亚洲欧美二区三区| 亚洲国产精品嫩草影院| 青青草97国产精品免费观看无弹窗版| 老司机一区二区| 国产一区二区三区| 99国产精品国产精品久久| 在线观看国产精品网站| 欧美乱妇20p| 2014亚洲片线观看视频免费| 国产精品丝袜黑色高跟| 亚洲午夜免费福利视频| 全国精品久久少妇| 国产成人免费视频网站 | fc2成人免费人成在线观看播放 | 欧美r级电影在线观看| 国产精品欧美综合在线| 夜夜爽夜夜爽精品视频| 久久精品国产精品亚洲综合| 不卡视频在线观看| 欧美精品在线观看播放| 精品国产免费一区二区三区香蕉 | 精品剧情v国产在线观看在线| 日本一区二区三区国色天香| 亚洲乱码国产乱码精品精98午夜| 亚洲成a人在线观看| 国内精品伊人久久久久影院对白| 成人av综合一区| 在线播放/欧美激情| 欧美极品aⅴ影院| 亚洲综合色婷婷| 国产一区二三区好的| 91久久精品一区二区三区| 精品国产露脸精彩对白| 亚洲美女免费在线| 国产一区二区视频在线| 欧美美女一区二区三区| 国产精品不卡一区二区三区| 奇米精品一区二区三区在线观看| 成人av先锋影音| 日韩精品专区在线影院观看 | 欧美影视一区在线| 欧美激情综合在线| 美女视频网站黄色亚洲| 在线影视一区二区三区| 中文字幕久久午夜不卡| 日本不卡视频在线观看| 色菇凉天天综合网| 国产精品拍天天在线| 国模娜娜一区二区三区| 欧美日韩激情一区二区三区| 国产精品美女一区二区| 黄色精品一二区| 在线不卡的av| 亚洲h在线观看| 欧美最猛黑人xxxxx猛交| 国产精品无人区| www.在线成人| 欧美国产欧美综合| 久久aⅴ国产欧美74aaa| 91精品国产综合久久蜜臀 | 亚洲午夜视频在线观看| 91小视频在线免费看| 欧美高清在线一区二区| 国产在线不卡视频| 欧美变态口味重另类| 美日韩一区二区| 91精选在线观看| 日韩不卡免费视频| 欧美另类高清zo欧美| 天涯成人国产亚洲精品一区av| 在线看国产日韩| 亚洲国产综合人成综合网站| 色噜噜狠狠成人网p站| 亚洲另类色综合网站| 色狠狠av一区二区三区| 亚洲综合久久久| 欧美色视频一区| 天堂精品中文字幕在线| 91精品国产综合久久福利软件 | 国产白丝精品91爽爽久久| 26uuu亚洲综合色欧美| 激情图片小说一区| 久久久蜜桃精品| 成人a区在线观看| 亚洲综合色婷婷| 欧美一区二区视频在线观看2020| 日本一道高清亚洲日美韩| 91精品国产91久久综合桃花| 裸体在线国模精品偷拍| 久久一区二区视频| 成人久久久精品乱码一区二区三区| 国产精品久久久久久久久快鸭 | 9191国产精品| 激情小说欧美图片| 亚洲国产电影在线观看| 色视频成人在线观看免| 亚洲成人资源在线| 26uuu亚洲综合色| 99国产精品国产精品毛片| 午夜精品久久久久久久久久久| 欧美一级二级在线观看| 成人免费看的视频| 亚洲成av人片在www色猫咪| 日韩视频在线一区二区| 成人国产精品免费| 亚洲成人午夜电影| 久久久久97国产精华液好用吗| 99在线精品免费| 免费成人在线观看视频|