Git Product home page Git Product logo

eth1.0-specs's Introduction

Eth1.0 Specifications

Description

This repository contains various specification related to the Ethereum 1.0 chain, specifically the pyspec, specifications for network upgrades, and the (deprecated) JSON-RPC API.

Ethereum Protocol Releases

Version and Code Name Block No. Released Incl EIPs Specs Blog
London 12965000 - EIP-1559
EIP-3198
EIP-3529
EIP-3541
EIP-3554
Specification Blog
Berlin 12244000 2021-04-15 EIP-2565
EIP-2929
EIP-2718
EIP-2930
HFM-2070
Specification
Blog
Muir Glacier 9200000 2020-01-02 EIP-2384 HFM-2387 Blog
Istanbul 9069000 2019-12-07 EIP-152
EIP-1108
EIP-1344
EIP-1884
EIP-2028
EIP-2200
HFM-1679 Blog
St. Petersburg 7280000 2019-02-28 EIP-145
EIP-1014
EIP-1052
EIP-1234
HFM-1716 Blog
Constantinople 7280000 2019-02-28 EIP-145
EIP-1014
EIP-1052
EIP-1234
EIP-1283
HFM-1013 Blog
Byzantium 4370000 2017-10-16 EIP-140
EIP-658
EIP-196
EIP-197
EIP-198
EIP-211
EIP-214
EIP-100
EIP-649
HFM-609 Blog
Spurious Dragon 2675000 2016-11-22 EIP-155
EIP-160
EIP-161
EIP-170
HFM-607 Blog
Tangerine Whistle 2463000 2016-10-18 EIP-150 HFM-608 Blog
DAO Fork 1920000 2016-07-20 HFM-779 Blog
DAO Wars aborted aborted Blog
Homestead 1150000 2016-03-14 EIP-2
EIP-7
EIP-8
HFM-606 Blog
Frontier Thawing 200000 2015-09-07 Blog
Frontier 1 2015-07-30 Blog

Consensus Specification (work-in-progress)

The consensus specification is a python implementation of Ethereum that prioritizes readability and simplicity. It [will] accompanied by both narrative and API level documentation of the various components written in restructured text and rendered using Sphinx....

Usage

The Ethereum specification is maintained as a Python library, for better integration with tooling and testing.

Requires Python 3.7+

Building

Building the documentation is most easily done through tox:

$ tox -e doc

The path to the generated HTML will be printed to the console.

Live Preview

A live preview of the documentation can be viewed locally on port 8000 with the following command:

$ tox -e doc-autobuild

Development

Running the tests necessary to merge into the repository requires:

  • Python 3.7.x (not 3.8 or later), and
  • PyPy 7.3.x.

These version ranges are necessary because, at the time of writing, PyPy is only compatible with Python 3.7.

eth1.0-specs depends on a submodule that contains common tests that are run across all clients, so we need to clone the repo with the --recursive flag. Example:

$ git clone --recursive https://github.com/ethereum/eth1.0-specs.git

Or, if you've already cloned the repository, you can fetch the submodules with:

$ git submodule update --init --recursive

The tests can be run with:

$ tox

The development tools can also be run outside of tox, and can automatically reformat the code:

$ pip install -e .[doc,lint,test]   # Installs eth1spec, and development tools.
$ isort src                         # Organizes imports.
$ black src                         # Formats code.
$ flake8                            # Reports style/spelling/documentation errors.
$ mypy src                          # Verifies type annotations.
$ pytest                            # Runs tests.

It is recommended to use a virtual environment to keep your system Python installation clean.

Contribution Guidelines

This specification aims to be:

  1. Correct - Describe the intended behavior of the Ethereum blockchain, and any deviation from that is a bug.
  2. Complete - Capture the entirety of consensus critical parts of Ethereum.
  3. Accessible - Prioritize readability, clarity, and plain language over performance and brevity.

Spelling

Attempt to use descriptive English words (or very common abbreviations) in documentation and identifiers. If necessary, there is a custom dictionary whitelist.txt.

eth1.0-specs's People

Contributors

abdelstark avatar alexeyakhunov avatar alita-moore avatar bhargavasomu avatar evertonfraga avatar fjl avatar fselmo avatar gregthegreek avatar holgerd77 avatar holiman avatar jochem-brouwer avatar jpitts avatar lightclient avatar madeoftin avatar marekkirejczyk avatar marekm25 avatar mariusvanderwijden avatar micahzoltu avatar petertdavies avatar poojaranjan avatar q9f avatar ricmoo avatar samwilsn avatar souptacular avatar timbeiko avatar tkstanczak avatar tvanepps avatar vieyang avatar voith avatar zsfelfoldi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.