搜索
首页后端开发Python教程Python以太坊虚拟机实现Py-EVM的内容介绍

Python以太坊虚拟机实现Py-EVM的内容介绍

Oct 18, 2018 pm 05:22 PM
python以太坊区块链程序员虚拟机

本篇文章给大家带来的内容是关于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思否。如有侵权,请联系admin@php.cn删除
Python与C:学习曲线和易用性Python与C:学习曲线和易用性Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

Python vs. C:内存管理和控制Python vs. C:内存管理和控制Apr 19, 2025 am 12:17 AM

Python和C 在内存管理和控制方面的差异显着。 1.Python使用自动内存管理,基于引用计数和垃圾回收,简化了程序员的工作。 2.C 则要求手动管理内存,提供更多控制权但增加了复杂性和出错风险。选择哪种语言应基于项目需求和团队技术栈。

科学计算的Python:详细的外观科学计算的Python:详细的外观Apr 19, 2025 am 12:15 AM

Python在科学计算中的应用包括数据分析、机器学习、数值模拟和可视化。1.Numpy提供高效的多维数组和数学函数。2.SciPy扩展Numpy功能,提供优化和线性代数工具。3.Pandas用于数据处理和分析。4.Matplotlib用于生成各种图表和可视化结果。

Python和C:找到合适的工具Python和C:找到合适的工具Apr 19, 2025 am 12:04 AM

选择Python还是C 取决于项目需求:1)Python适合快速开发、数据科学和脚本编写,因其简洁语法和丰富库;2)C 适用于需要高性能和底层控制的场景,如系统编程和游戏开发,因其编译型和手动内存管理。

数据科学和机器学习的Python数据科学和机器学习的PythonApr 19, 2025 am 12:02 AM

Python在数据科学和机器学习中的应用广泛,主要依赖于其简洁性和强大的库生态系统。1)Pandas用于数据处理和分析,2)Numpy提供高效的数值计算,3)Scikit-learn用于机器学习模型构建和优化,这些库让Python成为数据科学和机器学习的理想工具。

学习Python:2小时的每日学习是否足够?学习Python:2小时的每日学习是否足够?Apr 18, 2025 am 12:22 AM

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Web开发的Python:关键应用程序Web开发的Python:关键应用程序Apr 18, 2025 am 12:20 AM

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优

Python vs.C:探索性能和效率Python vs.C:探索性能和效率Apr 18, 2025 am 12:20 AM

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用