Py EVM - arealive/Viper GitHub Wiki

Py-EVM is a new implementation of the Ethereum Virtual Machine written in python. It is currently in active development but is quickly progressing through the test suite provided by ethereum/tests. The existing PyEthereum code is to be thanked for the quick progress made as many design decisions were inspired, or even directly ported from the PyEthereum codebase.

Py-EVM aims to eventually become the defacto python implementation of the EVM, enabling a wide array of use cases for both public and private chains. Development will focus on creating an EVM with a well defined API, friendly and easy to digest documentation which can be run as a fully functional mainnet node.

It was inspired by an implied need for Python developers who need a sturdy foundation for the various applications, tools and libraries they create, with the following things:

  1. Documentation
  2. Clearly Defined API
  3. Clearly Defined Deprecation Strategy
  4. Modularity and Extensibility as an API

"Things like new opcodes should not require code changes to the core codebase. In fact, I would posture that every protocol change to date since the Frontier network went live should have been implementable without making core changes to the codebase. We need an EVM implementation not only allows, but encourages extensibility and modularity as first class features.

In it’s current state, PyEthereum is not this library."

  1. PyEthereum has roughly zero documentation.
  2. PyEthereum has no distinction between public and private APIs
  3. There is no formalized strategy for deprecation and backwards incompatible changes.
  4. PyEthereum can be configured and made modular in some ways but there is zero documentation on how to do this and it is limited.1

[1] https://medium.com/@pipermerriam/py-evm-part-1-origins-25d9ad390b

External links

https://github.com/pipermerriam/py-evm

⚠️ **GitHub.com Fallback** ⚠️