首頁 >後端開發 >Python教學 >Python以太坊虛擬機器實現Py-EVM的內容介紹

Python以太坊虛擬機器實現Py-EVM的內容介紹

不言
不言轉載
2018-10-18 17:22:392642瀏覽

本篇文章帶給大家的內容是關於Python以太坊虛擬機實現Py-EVM的內容介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

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 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來執行完整的測試套件。

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::(顯示版本)

#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

以上是Python以太坊虛擬機器實現Py-EVM的內容介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除