python利用web3.py開發以太坊應用dapp的實戰教程
以太坊作為最流行區塊鏈平臺,最大的特點是執行各種智慧合約。我們已經出過node.js、java、php的以太坊開發實戰教程,這一次是python。Python官方提供了一系列的Python包用於支援在Python應用中訪問以太坊,其中最流行的就是web3.py —— 對JSON RPC介面的Python封裝包。在本課程中,我們將主要使用web3.py,同時結合一些其他的包,來開發支援以太坊的Python應用。
本教程的目的是幫助Python工程師快速掌握開發以太坊應用的技能,同時穿插 講解以太坊的一些核心概念,例如:賬戶、交易和智慧合約等,大概的目錄結構是:
Hi,以太坊
將通過一個簡單的Python應用的開發來講解使用 Python進行以太坊應用開發的最簡流程,通過這一部分的學習,你就可以在自己 的Python應用中引入基本的以太坊支援了。
賬戶管理
將詳細介紹以太坊的賬戶管理介面。如果你對開發中心化錢包應用感興趣,或者需要在自己的網站中動態建立賬戶(例如,你 希望為網站增加對以太坊支付的支援),那麼這部分內容會有很大的幫助。
理解狀態與交易
講解以太坊的交易操作介面,同時也介紹一些 重要的概念,例如狀態、裸交易、gas等。這部分內容將幫助你理清Python 應用與以太坊互動的大多數問題。
智慧合約的開發與應用
將通過一個ERC20代幣合約的開發、編譯、程式碼生成、部署與互動 的完整流程,講解使用Python操作solitiy合約的方法。如果你希望為自己的 應用增加代幣支援,這一部分的內容是必須的。
過濾器與事件
講解以太坊的通知機制以及如何在Python中使用過濾器來監視 塊和交易的生成與合約事件的觸發。
web3.py示例
web3.py是以太坊官方維護的Python版rpc介面封裝庫,因此我們優先 選擇它。下面是使用web3.py獲取節點版本資訊的程式碼:
from web3 import Web3, HTTPProvider
provider = Web3.HTTPProvider(`http://localhost:8545`)
w3 = Web3(provider)
Web3是web3.py的入口類,我們與以太坊的互動,基本上是通過這個入口 來完成的,例項化Web3需要指定一個通訊服務提供器,即明確採用何種通訊 方式與哪一個節點進行互動。
web3.py目前實現了IPC、HTTP和Websocket這三種網路服務提供器。 HTTPProvider則宣告瞭與以太坊節點旳連線採用HTTP協議,只需要指定 節點旳URL即可。由於我們使用本機的gaanche-cli模擬器,因此使用http://localhost:8545 這個URL。
Web3例項的manager屬性是一個RequestManager例項,它負責利用指定 的通訊服務提供器來進行json rpc互動,因此它是通訊傳輸無關的(provider agnostic)。 呼叫其request_blocking()方法來提交請求:
version = w3.manager.request_block(`web3_clientVersion`,[])
注意:request_block()返回的結果不是完整的json rpc響應,而僅僅是包含其result欄位。
本教程地址: python以太坊。
另外推薦一些之前的教程:
相關文章
- 以太坊DApp開發指南APP
- 基於以太坊的58同城 | DApp開發與應用案例APP
- 如何使用Meteor開發以太坊DappAPP
- 理解以太坊DApp及開發工具APP
- 以太坊DApp開發入門教程——區塊鏈投票系統APP區塊鏈
- 實戰:以太坊 DApp 開發與構建 - 李明 | Jeth 第二期APP
- 全棧開發以太坊應用的完整教程指南與原始碼 - Dabit全棧原始碼
- Python Web3.py 設定託管以太坊節點(Windows)PythonWebWindows
- 以太坊:Dapp及相關開發工具介紹APP
- 6.2 以太坊應用
- 以太坊開發實戰學習-合約安全(八)
- python 通過 Web3.py 連線以太坊區塊鏈的幾種方式PythonWeb區塊鏈
- python 透過 Web3.py 連線以太坊區塊鏈的幾種方式PythonWeb區塊鏈
- php工程師進行以太坊開發的教程PHP工程師
- 以太坊開發實戰學習-Web3.js(九)WebJS
- 以太坊開發實戰學習-Web3.js(十)WebJS
- 以太坊開發DApp實戰教程——用區塊鏈、星際檔案系統(IPFS)、Node.js和MongoDB來構建電商平臺APP區塊鏈Node.jsMongoDB
- 以太坊開發DApp實戰:用區塊鏈,星際檔案系統(IPFS),Nodejs,MongoDB構建電商平臺APP區塊鏈NodeJSMongoDB
- 以太坊開發實戰學習-ERC721標準(七)
- 以太坊開發實戰學習-高階Solidity理論 (五)Solid
- 實用 | 利用 aardio 配合 Python 快速開發桌面應用Python
- 以太坊和Metamask開發web應用時不再需要密碼Web密碼
- 以太坊Solidity程式語言開發框架————6、構建應用Solid框架
- Polygon馬蹄鏈在以太坊上的智慧合約開發應用Go
- DAPP系統開發原始碼規則解析 | 如何在以太坊搭建DAPP開發去中心化程式?APP原始碼中心化
- 第五課 以太坊開發框架Truffle從入門到實戰框架
- 基於以太坊上實現DApp的登入註冊APP
- 以太坊開發計劃
- EthBox以太坊開發套件,一鍵安裝部署以太坊開發環境套件開發環境
- 以太坊Solidity型別介紹+實戰Solid型別
- 以太坊智慧合約開發環境搭建以及第一個Dapp開發環境APP
- 開發者的以太坊入門指南 | Jeth 以太坊系列線下活動
- 用區塊鏈、星際檔案系統(IPFS)、Node.js和MongoDB來構建以太坊電商平臺DApp實戰教程區塊鏈Node.jsMongoDBAPP
- 使用Solidity開發區塊鏈dApp應用教程 - oliverSolid區塊鏈APP
- Python從頭實現以太坊(六):RoutingPython
- java使用spring boot和web3j開發以太坊區塊鏈dappJavaSpring BootWeb區塊鏈APP
- 以太坊 DApp 開發入門,如何搭建一個區塊鏈投票系統。APP區塊鏈
- python爬蟲實戰教程-Python爬蟲開發實戰教程(微課版)Python爬蟲