Metadata-Version: 2.0
Name: py-evm
Version: 0.2.0a9
Summary: Python implementation of the Ethereum Virtual Machine
Home-page: https://github.com/ethereum/py-evm
Author: Piper Merriam
Author-email: piper@pipermerriam.com
License: MIT
Description-Content-Type: UNKNOWN
Keywords: ethereum blockchain evm
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: aiohttp (==2.3.1)
Requires-Dist: async-lru (>=0.1.0)
Requires-Dist: cryptography (>=2.0.3)
Requires-Dist: cytoolz (<1.0.0,==0.9.0)
Requires-Dist: eth-bloom (>=0.5.2)
Requires-Dist: eth-utils (>=0.7.1)
Requires-Dist: pyethash (>=0.1.27)
Requires-Dist: py-ecc (==1.4.2)
Requires-Dist: rlp (==0.4.7)
Requires-Dist: eth-keys (==0.1.0b3)
Requires-Dist: trie (<2.0.0,>=1.0.1)

Python Implementation of the EVM
================================

|Join the chat at https://gitter.im/ethereum/py-evm| |Documentation
Status|

`Documentation hosted by
ReadTheDocs <http://py-evm.readthedocs.io/en/latest/>`__

Introducing Py-EVM
------------------

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. I have
Vitalik, and the existing PyEthereum code to thank for the quick
progress I’ve 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.

Step 1: Alpha Release
~~~~~~~~~~~~~~~~~~~~~

The plan is to begin with an MVP, alpha-level release that is suitable
for testing purposes. We’ll be looking for early adopters to provide
feedback on our architecture and API choices as well as general feedback
and bug finding.

Blog posts:
^^^^^^^^^^^

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

Development
-----------

Py-EVM depends on a submodule of the common tests across all clients, so
you need to clone the repo with the ``--recursive`` flag. Example:

.. code:: sh

    git clone --recursive git@github.com:ethereum/py-evm.git

Then install the required python packages via:

.. code:: sh

    pip install -e . -r requirements-dev.txt

Running the tests
~~~~~~~~~~~~~~~~~

You can run the tests with:

.. code:: sh

    py.test tests

Or you can install ``tox`` to run the full test suite.

Releasing
~~~~~~~~~

Pandoc is required for transforming the markdown README to the proper
format to render correctly on pypi.

For Debian-like systems:

::

    apt install pandoc

Or on OSX:

.. code:: sh

    brew install pandoc

To release a new version:

.. code:: sh

    bumpversion $$VERSION_PART_TO_BUMP$$
    git push && git push --tags
    make release

How to bumpversion
^^^^^^^^^^^^^^^^^^

The version format for this repo is ``{major}.{minor}.{patch}`` for
stable, and ``{major}.{minor}.{patch}-{stage}.{devnum}`` for unstable
(``stage`` can be alpha or beta).

To issue the next version in line, use bumpversion and specify which
part to bump, like ``bumpversion minor`` or ``bumpversion devnum``.

If you are in a beta version, ``bumpversion stage`` will switch to a
stable.

To issue an unstable version when the current version is stable, specify
the new version explicitly, like
``bumpversion --new-version 4.0.0-alpha.1 devnum``

.. |Join the chat at https://gitter.im/ethereum/py-evm| image:: https://badges.gitter.im/ethereum/py-evm.svg
   :target: https://gitter.im/ethereum/py-evm
.. |Documentation Status| image:: https://readthedocs.org/projects/py-evm/badge/?version=latest
   :target: http://py-evm.readthedocs.io/en/latest/?badge=latest


