Py-EVM是用Python編寫的以太坊虛擬機的新實現。目前github上695個star,正在積極開發中,但正在經過以太坊/測試提供的測試套件快速推動。咱們感謝有Vitalik和現有的PyEthereum代碼,使得咱們有的快速進步,由於許多設計決策都受到啓發,甚至直接從PyEthereum代碼庫移植。python
Py-EVM旨在最終成爲EVM的事實Python實現,爲公共和私有鏈提供普遍的用例。開發將側重於建立具備良好定義的API的EVM,友好且易於理解的文檔,可做爲功能齊全的主網節點運行。git
特別是Py-EVM目標旨在:github
雖然Py-EVM提供EVM的低級API,但它並不旨在直接實現完整節點或輕節點。web
咱們提供了一個基於Py-EVM的稱爲Trinity的完整節點的基本實現。docker
未來可能會有基於Py-EVM的替代客戶端。編程
第1步:Alpha發佈markdown
該計劃首先是適用於測試目的的MVP,alpha級發佈。咱們將尋找早期採用者,以提供有關咱們的架構和API選擇的反饋,以及通常反饋和錯誤發現。session
Py-EVM依賴於全部客戶端的常見測試的子模塊,所以你須要使用--recursive標記克隆repo。例如:架構
git clone --recursive git@github.com: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
來運行完整的測試套件。
須要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
此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
學習文檔:Documentation hosted by ReadTheDocs
======================================================================
分享一些以太坊、EOS、比特幣等區塊鏈相關的交互式在線編程實戰教程:
python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
這裏是原文