Py-EVM是用Python編寫的以太坊虛擬機的新實現(xiàn)。目前github上695個star,正在積極開發(fā)中,但正在通過以太坊/測試提供的測試套件快速推進。我們感謝有Vitalik和現(xiàn)有的PyEthereum代碼,使得我們有的快速進步,因為許多設計決策都受到啟發(fā),甚至直接從PyEthereum代碼庫移植。
Py-EVM旨在最終成為EVM的事實Python實現(xiàn),為公共和私有鏈提供廣泛的用例。開發(fā)將側重于創(chuàng)建具有良好定義的API的EVM,友好且易于理解的文檔,可作為功能齊全的主網(wǎng)節(jié)點運行。
特別是Py-EVM目標旨在:
提供是一種使用最廣泛使用和理解的語言之一Python的EVM的示例實現(xiàn)。
為客戶提供低級API,以構建完整或輕量級節(jié)點。
易于理解和修改。
高度靈活地支持研究以及私有區(qū)塊鏈等替代用例。
雖然Py-EVM提供EVM的低級API,但它并不旨在直接實現(xiàn)完整節(jié)點或輕節(jié)點。
我們提供了一個基于Py-EVM的稱為Trinity的完整節(jié)點的基本實現(xiàn)。
將來可能會有基于Py-EVM的替代客戶端。
第1步:Alpha發(fā)布
該計劃首先是適用于測試目的的MVP,alpha級發(fā)布。我們將尋找早期采用者,以提供有關我們的架構和API選擇的反饋,以及一般反饋和錯誤發(fā)現(xiàn)。
Py-EVM依賴于所有客戶端的常見測試的子模塊,因此你需要使用--recursive標記克隆repo。例如:
git clone --recursive git@github.com:ethereum/py-evm.git
Py-EVM需要Python 3。通常,保證干凈的Python 3環(huán)境的最佳方法是使用virtualenv,例如:
# once: $ virtualenv -p python3 venv # each session: $ . venv/bin/activate
然后通過以下方式安裝所需的python包:
pip install -e .[dev]
可以使用以下命令運行測試:
pytest
或者你可以安裝tox
來運行完整的測試套件。
需要Pandoc才能將markdown README轉換為正確的格式,以便在pypi上正確呈現(xiàn)。
對于類似Debian的系統(tǒng):
apt install pandoc
在OSX上:
brew install pandoc
要發(fā)布新版本:
bumpversion $$VERSION_PART_TO_BUMP$$ git push && git push --tags make release
去新建一個docker鏡像:
make create-docker-image version=<version>
默認情況下,這將創(chuàng)建一個新鏡像,其中有兩個標記指向它:
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))。
要在發(fā)布下一個版本,請使用bumpversion并指定要調(diào)整的部分,例如bumpversion minor或bumpversion devnum。
如果你處于beta版,則bumpversion stage階段將切換為穩(wěn)定版。
要在當前版本穩(wěn)定時發(fā)出不穩(wěn)定版本,請明確指定新版本,例如bumpversion --new-version 4.0.0-alpha.1 devnum
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com