婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用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部署以太坊智能合約的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美成人官网二区| 蜜臀久久久99精品久久久久久| 亚洲不卡av一区二区三区| 欧美mv日韩mv国产网站| 欧美在线啊v一区| 国产 日韩 欧美大片| 亚洲国产日韩一区二区| 亚洲视频一二三| 久久影院视频免费| 日韩精品中文字幕在线不卡尤物 | 成人激情午夜影院| 国产精品资源网| 另类小说综合欧美亚洲| 视频一区二区不卡| 亚洲va天堂va国产va久| 一区二区在线电影| 亚洲人成伊人成综合网小说| 国产日产欧美一区二区三区| 国产亚洲一区二区在线观看| 2021久久国产精品不只是精品| 91精品国产综合久久久久久久| 欧美日韩精品欧美日韩精品一综合| av不卡免费在线观看| 91免费在线播放| 欧美色爱综合网| 69堂国产成人免费视频| 69av一区二区三区| 精品久久人人做人人爰| 国产欧美日韩综合| 椎名由奈av一区二区三区| 亚洲欧洲国产专区| 洋洋成人永久网站入口| 自拍偷拍欧美精品| 亚洲777理论| 捆绑调教美女网站视频一区| 国产精品资源站在线| 波多野结衣在线一区| 日本韩国精品在线| 日韩视频永久免费| 国产精品黄色在线观看| 亚洲精品日日夜夜| 日韩成人午夜精品| 成人综合在线观看| 欧美日韩国产精品自在自线| 精品久久久久久久人人人人传媒 | 91在线看国产| 欧洲激情一区二区| 日韩三级高清在线| 国产精品免费久久久久| 午夜成人免费视频| 成人成人成人在线视频| 欧美美女视频在线观看| 久久无码av三级| 亚洲一二三级电影| 激情图区综合网| 色吧成人激情小说| 精品国产欧美一区二区| 成人欧美一区二区三区视频网页| 亚洲成年人影院| 懂色av中文一区二区三区| 在线亚洲高清视频| 国产女人18毛片水真多成人如厕| 天堂资源在线中文精品| 国产一级精品在线| 欧美日韩精品一二三区| 国产精品第13页| 国产综合色产在线精品| 欧美伦理电影网| 中文字幕一区二区三区av| 麻豆精品视频在线观看免费| 91在线视频官网| 国产女主播一区| 精品午夜久久福利影院| 欧美日韩国产大片| 亚洲女人的天堂| av一区二区三区四区| 久久婷婷综合激情| 国内精品视频666| 欧美xxxx老人做受| 全部av―极品视觉盛宴亚洲| 91色porny蝌蚪| 国产欧美日本一区视频| 精品午夜久久福利影院| 欧美一区二区三区婷婷月色| 亚洲成av人**亚洲成av**| 91丝袜高跟美女视频| 国产精品久久久久aaaa| 丁香桃色午夜亚洲一区二区三区| 欧美α欧美αv大片| 久久丁香综合五月国产三级网站| 在线成人小视频| 日本特黄久久久高潮| 欧美一级精品大片| 六月丁香婷婷久久| 日韩欧美国产1| 久久91精品国产91久久小草| 欧美一区日本一区韩国一区| 另类小说欧美激情| 国产亚洲婷婷免费| av一本久道久久综合久久鬼色| 国产精品久久久久7777按摩| www.亚洲在线| 一区二区三区免费看视频| 欧美无砖专区一中文字| 日韩精品久久理论片| 日韩一区二区三区高清免费看看| 午夜久久久久久久久久一区二区| 欧美久久久影院| 免费在线欧美视频| 久久综合九色综合97婷婷女人| 成人av电影在线播放| 亚洲一区自拍偷拍| 日韩女优av电影| 成人涩涩免费视频| 一区二区三区影院| 欧美一区二区三区色| 国产成人a级片| 亚洲网友自拍偷拍| 精品美女在线播放| 成人国产电影网| 亚洲高清中文字幕| 26uuu成人网一区二区三区| 处破女av一区二区| 亚洲高清视频中文字幕| 精品国产免费一区二区三区四区| 99久久久久久| 久久精品国产一区二区三| 中文字幕日本乱码精品影院| 欧美色图片你懂的| 国产传媒欧美日韩成人| 亚洲成人动漫在线免费观看| 久久精品无码一区二区三区| 在线中文字幕一区二区| 国产高清亚洲一区| 午夜av区久久| 亚洲同性gay激情无套| 欧美精品99久久久**| 国产99精品视频| 日韩电影免费在线看| 国产精品久久久久久一区二区三区| 色综合久久久久综合| 精品在线免费视频| 亚洲制服欧美中文字幕中文字幕| 久久综合色播五月| 欧美日韩视频在线第一区| 国产成人精品一区二区三区网站观看| 亚洲成av人片一区二区三区| 亚洲国产精品成人综合色在线婷婷 | 久久福利资源站| 一区二区国产盗摄色噜噜| 久久久美女艺术照精彩视频福利播放| 免费成人深夜小野草| 亚洲二区在线观看| 日韩理论片中文av| 国产午夜一区二区三区| 日韩久久免费av| 欧美群妇大交群中文字幕| 97久久超碰国产精品电影| 国产美女精品在线| 美女网站在线免费欧美精品| 亚洲一二三区视频在线观看| 国产精品不卡在线| 精品电影一区二区| 欧美精品日韩一区| 欧美在线观看一区| 在线精品亚洲一区二区不卡| 91在线视频播放| 99国产精品久久久| 99精品桃花视频在线观看| 不卡视频免费播放| av一区二区三区在线| 99久久精品免费看| 91久久精品一区二区三| 99久久免费精品高清特色大片| 成人亚洲一区二区一| 国产成人精品综合在线观看 | 精品亚洲成a人在线观看| 美脚の诱脚舐め脚责91 | 成人一级片网址| 国产乱国产乱300精品| 国产精品自拍av| 懂色av一区二区在线播放| 成人黄页在线观看| 97久久精品人人爽人人爽蜜臀| 9i看片成人免费高清| 成人精品国产福利| 91麻豆国产在线观看| 欧美亚洲丝袜传媒另类| 在线观看一区二区视频| 欧美日韩三级在线| 欧美精品一区二区三区蜜桃视频 | 精品久久久久一区二区国产| 久久只精品国产| 中文字幕一区日韩精品欧美| 亚洲三级电影网站| 亚洲制服丝袜av| 轻轻草成人在线| 成人丝袜视频网| 在线观看亚洲专区| 欧美精品欧美精品系列|