资讯专栏INFORMATION COLUMN

分享Python以太坊虚拟机实现Py-EVM

darryrzhong / 3128人阅读

摘要:是用编写的以太坊虚拟机的新实现。目前上个,正在积极开发中,但正在通过以太坊测试提供的测试套件快速推进。高度灵活地支持研究以及私有区块链等替代用例。第步发布该计划首先是适用于测试目的的,级发布。需要才能将转换为正确的格式,以便在上正确呈现。

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=

默认情况下,这将创建一个新镜像,其中有两个标记指向它:

ethereum/trinity::(显示版本)

ethereum/trinity:latest:(最新的,直到用未来的“最新”覆盖)

然后,推送到docker hub。

docker push ethereum/trinity:
# 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

学习文档:Documentation hosted by ReadTheDocs

======================================================================

分享一个的交互式在线编程实战教程:

python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。

这里是原文

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24342.html

相关文章

  • 分享Python以太虚拟实现Py-EVM

    摘要:是用编写的以太坊虚拟机的新实现。目前上个,正在积极开发中,但正在通过以太坊测试提供的测试套件快速推进。高度灵活地支持研究以及私有区块链等替代用例。第步发布该计划首先是适用于测试目的的,级发布。需要才能将转换为正确的格式,以便在上正确呈现。 Py-EVM是用Python编写的以太坊虚拟机的新实现。目前github上695个star,正在积极开发中,但正在通过以太坊/测试提供的测试套件快速...

    yuanzhanghu 评论0 收藏0
  • 以太DApp开发入门教程——Node.js和truffle框架打造区块链投票系统

    摘要:第一节课程概述本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个基于以太坊的完整去中心化应用区块链投票系统。第七节以太坊世界计算机以太坊是一种区块链的实现。交易数据以太坊中每笔交易都存储在区块链上。 第一节 课程概述 本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 —— 区块链投票系统。 ...

    zebrayoung 评论0 收藏0
  • 以太DApp开发入门教程——Node.js和truffle框架打造区块链投票系统

    摘要:第一节课程概述本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个基于以太坊的完整去中心化应用区块链投票系统。第七节以太坊世界计算机以太坊是一种区块链的实现。交易数据以太坊中每笔交易都存储在区块链上。 第一节 课程概述 本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 —— 区块链投票系统。 ...

    MASAILA 评论0 收藏0
  • 以太、EOS和Hyperledger等不同区块链的比较

    摘要:以太坊背后的主要人物是。以太坊通过在区块链上引入智能合约,彻底改变了加密世界。以太坊使用名为以太坊虚拟机的虚拟机执行其智能合约。以太坊最终将利用协议转向权益证明。截至目前,以太坊在可扩展性方面都失败了。 不同的区块链智能合约和区块链技术现在风靡一时。越来越多的人出于某种原因试图进入这个神奇的世界。如果你是这项技术的新手并正在寻找基于区块链的开发平台的快速入门,那么本指南非常适合你。我们...

    harriszh 评论0 收藏0
  • 区块链开发中使用的最流行的编程语言

    摘要:我们目前正处于一个新兴的区块链开发行业中。,一种在以太坊开发人员中流行的新的简单编程语言,因为它是用于开发以太坊智能合约的语言。它是全球至少万开发人员使用的世界上最流行的编程语言之一。以太坊,主要是针对工程师使用进行区块链以太坊开发的详解。 我们目前正处于一个新兴的区块链开发行业中。区块链技术处于初期阶段,然而这种颠覆性技术已经成功地风靡全球,并且最近经历了一场与众不同的繁荣。由于许多...

    2shou 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<