標籤:抽象 需要 ESS 編寫 .com php 介面 位元組 互動
使用 python 開發以太坊,有很多技術知識需要學習,也有很多資源可以推薦,我們來看幾個主要的:
Web3.Py
https://github.com/ethereum/web3.py
https://pypi.python.org/pypi/web3
web3.py程式碼程式庫現在已經比較完善了。整個程式碼程式庫已經被徹底檢測,基本實現JavaScript web3.js庫中使用者熟悉使用的100%的功能。
這個庫支援Python 2.7、3.4和3.5。
我最喜歡的一個部分是TestRPCProvider。它提供者自動為你提供eth-testrpc服務,以便你可以測試Web3.Py代碼像是在EVM記憶體中。這提供了一種快速測試方法,保證你編寫的任何代碼在與geth支援的JSON-RPC伺服器直接進行互動時也能正常工作。
py-geth 和 py-solc
https://github.com/ethereum/py-geth
https://pypi.python.org/pypi/py-geth
https://github.com/ethereum/py-solc
https://pypi.python.org/pypi/py-solc
這兩個庫都提供了圍繞底層可執行檔的Python包。
py-solc提供進階的compile_files和compile_sources函數為了使你可以用python代碼編譯solidity來源程式。它還提供了一個link_code函數來處理庫連結。如果你想做更底層的事情,你也可以深入代碼,可以找到訪問底層solc API的任何介面,你需要通過solc.wrapper.solc_wrappe函數來訪問。
同樣,py-geth提供了用於從Python代碼運行 go-ethereum geth用戶端的進階工具。它提供了預先配置好的類LiveGethProcess和TestnetGethProcess用他們來運行主網或者測試網,以及用於運行測試的本地私人鏈DevGethProcess。
所有以下這些類都有比較友好的API。
GethProcess.accounts:返回帳戶地址清單
GethProcess.data_dir:返回geth進程的底層資料目錄的路徑。
GethProcess.rpc_enabled/rpc_port/rpc_host:關於JSON-RPC介面的資訊。
GethProcess.is_rpc_ready:返回JSON-RPC伺服器是否已啟動並偵聽。
GethProcess.wait_for_rpc(timeout=0):等待JSON-RPC伺服器聯機。
GethProcess.ipc_*/is_ipc_ready/wait_for_ipc(timeout=0):與相應的RPC方法和屬性相同的功能。
py-geth庫還提供了一些混合類,可以用來編寫所有geth輸出到stdout/stderr,或者通過geth.mixins模組將其寫入日誌記錄器。項目說明檔案中可用的樣本。
這兩個都支援Python 2.7、3.4和3.5。
以太坊測試相關的 TestRPC 和測試用戶端
https://github.com/pipermerriam/eth-testrpc/
https://pypi.python.org/pypi/eth-testrpc
https://github.com/pipermerriam/ethereum-tester-client
https://pypi.python.org/pypi/ethereum-tester-client
這兩個庫都是pyethereum存放庫的ethereum.tester EVM 之上的抽象。
如果想直接通過Python代碼與測試EVM進行互動,我建議使用thereum-tester-client庫。它實現了絕大多數APIs的可以讓我們使用geth的各種介面。
如果需要測試RPC互動,那麼我建議使用eth-testrpc,它實現了絕大多數由geth公開的JSON-RPC邏輯介面。在以太坊引擎下它自己是一層,位於ethereum-tester-client庫的頂部。
這兩個庫都支援Python 2.7、3.4和3.5。
Populus
https://github.com/ethereum/populus
http://populus.readthedocs.org/
Populus是一個以太坊智能合約開發架構,幾乎可以做任何以太坊區塊鏈開發相關的事。
大量的Populus程式碼程式庫,可以更好地作為獨立的Python程式包。py-solc和py-geth庫都刪除了大量複雜的子過程邏輯。基於Web3.Py開發可以從程式碼程式庫中減少非常多的工作量,同時使以太坊區塊鏈互動更加健壯和可靠。
如果你的目標是提供一個架構來自動http://www.gyslssty.com/xszzxm/xstfzz/434.html化複雜的部署以及設定一個完整的打包和發布系統的話,Populus是一個很好的選擇。
Populus依賴關係:
solidity 編譯器:智能合約是以solidity語言編寫的,然後編譯到以太坊虛擬機器(EVM)的位元組碼中。
geth:以太坊協議的go語言實現。geth用戶端運行在區塊鏈節點,讓我們與區塊鏈進行互動,並在開發過程中可以運行並部署到測試鏈。
此外,Populus需要一些系統依賴性,才能安裝PyEthereum庫。
Populus支援Python 2.7、3.4和3.5。
python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
web3j教程,主要是針對java和android程式員進行區塊鏈以太坊開發的web3j詳解。
以太坊教程,主要介紹智能合http://www.chinamaofa.com約與dapp應用開發,適合入門。
以太坊開發,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
php以太坊,主要是介紹使用php進行智能合約開發互動,進行帳號建立、交易、轉賬、代幣開發以及過濾器和事件等內容。
python以太坊開發的主要相關技術