内容简介:Py-EVM是用Python编写的以太坊虚拟机的新实现。目前github上695个star,正在积极开发中,但正在通过以太坊/测试提供的测试套件快速推进。我们感谢有Vitalik和现有的PyEthereum代码,使得我们有的快速进步,因为许多设计决策都受到启发,甚至直接从PyEthereum代码库移植。Py-EVM旨在最终成为EVM的事实Python实现,为公共和私有链提供广泛的用例。开发将侧重于创建具有良好定义的API的EVM,友好且易于理解的文档,可作为功能齐全的主网节点运行。特别是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:<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))。
要在发布下一个版本,请使用bumpversion并指定要调整的部分,例如bumpversion minor或bumpversion devnum。
如果你处于beta版,则bumpversion stage阶段将切换为稳定版。
要在当前版本稳定时发出不稳定版本,请明确指定新版本,例如 bumpversion --new-version 4.0.0-alpha.1 devnum
学习文档: Documentation hosted by ReadTheDocs
======================================================================
分享一些以太坊、EOS、比特币等区块链相关的交互式在线编程实战教程:
python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
- java以太坊开发教程,主要是针对 java 和android程序员进行区块链以太坊开发的web3j详解。
- php以太坊,主要是介绍使用 php 进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
- 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
- 以太坊开发进阶教程,主要是介绍使用node.js、 mongodb 、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
- C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
- EOS教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
- java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
- php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
汇智网原创翻译,转载请标明出处。这里是 原文
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 虚拟化生态系统及实现从虚拟化走向云端
- 利用虚拟机实现端口转发
- vue:虚拟dom的实现
- 实现一个简单的虚拟DOM
- HotSpot 虚拟机垃圾回收算法实现
- 使用 React + Rxjs 实现一个虚拟滚动组件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript语言精髓与编程实践
周爱民 / 电子工业出版社 / 2012-3 / 79.00元
《JavaScript语言精髓与编程实践(第2版)》详细讲述JavaScript作为一种混合式语言的各方面特性,包括过程式、面向对象、函数式和动态语言特性等,在动态函数式语言特性方面有着尤为细致的讲述。《JavaScript语言精髓与编程实践(第2版)》的主要努力之一,就是分解出这些语言原子,并重现将它们混合在一起的过程与方法。通过从复杂性到单一语言特性的还原过程,读者可了解到语言的本质,以及“层......一起来看看 《JavaScript语言精髓与编程实践》 这本书的介绍吧!