溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python編寫的Py-EVM怎么使用

發(fā)布時(shí)間:2022-01-15 14:11:32 來(lái)源:億速云 閱讀:346 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹“Python編寫的Py-EVM怎么使用”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Python編寫的Py-EVM怎么使用”文章能幫助大家解決問(wèn)題。

Py-EVM是用Python編寫的以太坊虛擬機(jī)的新實(shí)現(xiàn)。目前github上695個(gè)star,正在積極開(kāi)發(fā)中,但正在通過(guò)以太坊/測(cè)試提供的測(cè)試套件快速推進(jìn)。我們感謝有Vitalik和現(xiàn)有的PyEthereum代碼,使得我們有的快速進(jìn)步,因?yàn)樵S多設(shè)計(jì)決策都受到啟發(fā),甚至直接從PyEthereum代碼庫(kù)移植。

Py-EVM旨在最終成為EVM的事實(shí)Python實(shí)現(xiàn),為公共和私有鏈提供廣泛的用例。開(kāi)發(fā)將側(cè)重于創(chuàng)建具有良好定義的API的EVM,友好且易于理解的文檔,可作為功能齊全的主網(wǎng)節(jié)點(diǎn)運(yùn)行。

特別是Py-EVM目標(biāo)旨在:

  • 提供是一種使用最廣泛使用和理解的語(yǔ)言之一Python的EVM的示例實(shí)現(xiàn)。

  • 為客戶提供低級(jí)API,以構(gòu)建完整或輕量級(jí)節(jié)點(diǎn)。

  • 易于理解和修改。

  • 高度靈活地支持研究以及私有區(qū)塊鏈等替代用例。

Trinity

雖然Py-EVM提供EVM的低級(jí)API,但它并不旨在直接實(shí)現(xiàn)完整節(jié)點(diǎn)或輕節(jié)點(diǎn)。

我們提供了一個(gè)基于Py-EVM的稱為Trinity的完整節(jié)點(diǎn)的基本實(shí)現(xiàn)。

將來(lái)可能會(huì)有基于Py-EVM的替代客戶端。

第1步:Alpha發(fā)布

該計(jì)劃首先是適用于測(cè)試目的的MVP,alpha級(jí)發(fā)布。我們將尋找早期采用者,以提供有關(guān)我們的架構(gòu)和API選擇的反饋,以及一般反饋和錯(cuò)誤發(fā)現(xiàn)。

開(kāi)發(fā)

Py-EVM依賴于所有客戶端的常見(jiàn)測(cè)試的子模塊,因此你需要使用--recursive標(biāo)記克隆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

然后通過(guò)以下方式安裝所需的python包:

pip install -e .[dev]
運(yùn)行測(cè)試

可以使用以下命令運(yùn)行測(cè)試:

pytest

或者你可以安裝tox來(lái)運(yùn)行完整的測(cè)試套件。

Releasing

需要Pandoc才能將markdown README轉(zhuǎn)換為正確的格式,以便在pypi上正確呈現(xiàn)。

對(duì)于類似Debian的系統(tǒng):

apt install pandoc

在OSX上:

brew install pandoc

要發(fā)布新版本:

bumpversion $$VERSION_PART_TO_BUMP$$
git push && git push --tags
make release

去新建一個(gè)docker鏡像:

make create-docker-image version=<version>

默認(rèn)情況下,這將創(chuàng)建一個(gè)新鏡像,其中有兩個(gè)標(biāo)記指向它:

  • ethereum/trinity:<version>:(顯示版本)

  • ethereum/trinity:latest:(最新的,直到用未來(lái)的“最新”覆蓋)

然后,推送到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ā)布下一個(gè)版本,請(qǐng)使用bumpversion并指定要調(diào)整的部分,例如bumpversion minor或bumpversion devnum。

如果你處于beta版,則bumpversion stage階段將切換為穩(wěn)定版。

要在當(dāng)前版本穩(wěn)定時(shí)發(fā)出不穩(wěn)定版本,請(qǐng)明確指定新版本,例如bumpversion --new-version 4.0.0-alpha.1 devnum

關(guān)于“Python編寫的Py-EVM怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI