以太坊虛擬機器的Python實現
Py-EVM是用Python編寫的以太坊虛擬機器的新實現。目前github上695個star,正在積極開發中,但正在通過以太坊/測試提供的測試套件快速推進。我們感謝有Vitalik和現有的PyEthereum程式碼,使得我們有的快速進步,因為許多設計決策都受到啟發,甚至直接從PyEthereum程式碼庫移植。
Py-EVM旨在最終成為EVM的事實Python實現,為公共和私有鏈提供廣泛的用例。開發將側重於建立具有良好定義的API的EVM,友好且易於理解的文件,可作為功能齊全的主網節點執行。
特別是Py-EVM目標旨在:
- 提供是一種使用最廣泛使用和理解的語言之一Python的EVM的示例實現。
- 為客戶提供低階API,以構建完整或輕量級節點。
- 易於理解和修改。
- 高度靈活地支援研究以及私有區塊鏈等替代用例。
Trinity
雖然Py-EVM提供EVM的低階API,但它並不旨在直接實現完整節點或輕節點。
我們提供了一個基於Py-EVM的稱為Trinity的完整節點的基本實現。
將來可能會有基於Py-EVM的替代客戶端。
第1步:Alpha釋出
該計劃首先是適用於測試目的的MVP,alpha級釋出。我們將尋找早期採用者,以提供有關我們的架構和API選擇的反饋,以及一般反饋和錯誤發現。
開發
Py-EVM依賴於所有客戶端的常見測試的子模組,因此你需要使用–recursive標記克隆repo。例如:
git clone --recursive [email protected]:ethereum/py-evm.git
Py-EVM需要Python 3。通常,保證乾淨的Python 3環境的最佳方法是使用virtualenv,例如:
# once: $ virtualenv -p python3 venv # each session: $ . venv/bin/activate
然後通過以下方式安裝所需的python包:
pip install -e .[dev]
執行測試
可以使用以下命令執行測試:
pytest
或者你可以安裝tox
來執行完整的測試套件。
Releasing
需要Pandoc才能將markdown README轉換為正確的格式,以便在pypi上正確呈現。
對於類似Debian的系統:
apt install pandoc
在OSX上:
brew install pandoc
要釋出新版本:
bumpversion $$VERSION_PART_TO_BUMP$$ git push && git push --tags make release
去新建一個docker映象:
make create-docker-image version=<version>
預設情況下,這將建立一個新映象,其中有兩個標記指向它:
ethereum/trinity:<version> ethereum/trinity:latest
然後,推送到docker hub。
docker push ethereum/trinity:<version> # the following may be left out if we were pushing a patch for an older version docker push ethereum/trinity:latest
如何使用bumpversion
此repo的版本格式為{major}.{minor}.{patch}
表示stable,{patch}.{minor}.{patch}-{stage}.{devnum}
表示unstable(stage可以是alpha或beta))。
要在釋出下一個版本,請使用bumpversion並指定要調整的部分,例如bumpversion minor或bumpversion devnum。
如果你處於beta版,則bumpversion stage階段將切換為穩定版。
要在當前版本穩定時發出不穩定版本,請明確指定新版本,例如bumpversion --new-version 4.0.0-alpha.1 devnum
學習文件:ofollow,noindex">Documentation hosted by ReadTheDocs
======================================================================
分享一些以太坊、EOS、比特幣等區塊鏈相關的互動式線上程式設計實戰教程:
python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
- java以太坊開發教程,主要是針對java和android程式員進行區塊鏈以太坊開發的web3j詳解。
- php以太坊,主要是介紹使用php進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和交易等內容。
- 以太坊入門教程,主要介紹智慧合約與dapp應用開發,適合入門。
- 以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
- C#以太坊,主要講解如何使用C#開發基於.Net的以太坊應用,包括賬戶管理、狀態與交易、智慧合約開發與互動、過濾器和交易等。
- EOS教程,本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智慧合約開發與部署、使用程式碼與智慧合約互動等核心知識點,最後綜合運用各知識點完成一個便籤DApp的開發。
- java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Java程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
- php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Php程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。
匯智網原創翻譯,轉載請標明出處。這裡是原文