Skip to main content

Python implementation of the Ethereum Virtual Machine

Project description

Python Implementation of the Ethereum protocol

Join the conversation on Discord Build Status PyPI version Python versions Docs build

Py-EVM

Py-EVM is an implementation of the Ethereum protocol in Python. It contains the low level primitives for the original proof-of-work (POW), (formerly known as Ethereum 1.0) chain as well as emerging support for the proof-of-stake (POS) (formerly known as Ethereum 2.0) spec.

Goals

Py-EVM aims to eventually become the defacto Python implementation of the Ethereum protocol, enabling a wide array of use cases for both public and private chains.

In particular Py-EVM aims to:

  • be a reference implementation of the Ethereum POW and POS implementations in one of the most widely used and understood languages, Python.

  • be easy to understand and modifiable

  • have clear and simple APIs

  • come with solid, friendly documentation

  • deliver the low level primitives to build various clients on top (including full and light clients)

  • be highly flexible to support both research as well as alternate use cases like private chains.

Quickstart

python -m pip install py-evm

Get started in 5 minutes

Documentation

Check out the documentation on our official website

Developer Setup

If you would like to hack on py-evm, please check out the Snake Charmers Tactical Manual for information on how we do:

  • Testing
  • Pull Requests
  • Documentation

We use pre-commit to maintain consistent code style. Once installed, it will run automatically with every commit. You can also run it manually with make lint. If you need to make a commit that skips the pre-commit checks, you can do so with git commit --no-verify.

Development Environment Setup

git clone git@github.com:ethereum/py-evm.git
cd py-evm
virtualenv -p python3 venv
. venv/bin/activate
python -m pip install -e ".[dev]"
pre-commit install

Release setup

To release a new version:

make release bump=$$VERSION_PART_TO_BUMP$$

To issue the next version in line, specify which part to bump, like make release bump=minor or make release bump=devnum. This is typically done from the main branch, except when releasing a beta (in which case the beta is released from main, and the previous stable branch is released from said branch).

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues that are labeled Good First Issue.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_evm-0.10.1b2.tar.gz (836.1 kB view details)

Uploaded Source

Built Distribution

py_evm-0.10.1b2-py3-none-any.whl (778.9 kB view details)

Uploaded Python 3

File details

Details for the file py_evm-0.10.1b2.tar.gz.

File metadata

  • Download URL: py_evm-0.10.1b2.tar.gz
  • Upload date:
  • Size: 836.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for py_evm-0.10.1b2.tar.gz
Algorithm Hash digest
SHA256 7a06fbd1d966eb0cd4f6c6d9e7fe1e2c43473804ac12b12325b0a31cbab5670f
MD5 0c1fde11b2519e9e96297530c49b7d42
BLAKE2b-256 c456f90ebb53e121d5e1dea0eff713dd0434d2ea938431311e6d8e99fdbb8a8d

See more details on using hashes here.

File details

Details for the file py_evm-0.10.1b2-py3-none-any.whl.

File metadata

  • Download URL: py_evm-0.10.1b2-py3-none-any.whl
  • Upload date:
  • Size: 778.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for py_evm-0.10.1b2-py3-none-any.whl
Algorithm Hash digest
SHA256 511bd52c9c08837ae2a02cce923a756e85330dc14cc6abb15986ea99dc2832ac
MD5 d1d91064f885f6c4de7c84cdc3f3e2f0
BLAKE2b-256 86c59f3e66a43083a715055f0503d283dca7186f4253754b474f5804304ef297

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page