diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000..5008ddfcf5 Binary files /dev/null and b/.DS_Store differ diff --git a/README.md b/README.md index e2522e6504..5f40719571 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,5 @@ -# Network Upgrade Process - Eth1.0 Specification +# Eth1.0 Specifications ## Description -This provides a general outline process to propose, discuss, and track the progress of EIPs considered for network upgrades to Ethereum Mainnet. -## Process - -### Preconditions for Consideration - - Type of EIP - Core - - Status of EIP - Any status between Draft to Final, see [EIP-1](https://eips.ethereum.org/EIPS/eip-1#core-eips) for more details. - -### Proposing an EIP - -1. If you're an author, and still vetting the idea, please follow the guidelines mentioned in [EIP-1](https://eips.ethereum.org/EIPS/eip-1) to formalize your idea into an EIP. -1. Once an EIP is created (or a pull request is open against the [ethereum/eips](https://github.com/ethereum/EIPs/pulls) repository), [open a new issue in this repository](https://github.com/ethereum/eth1.0-specs/issues/new) with a title of the form "EIP-XXXX to be Considered for Inclusion". -1. The EIP will then be added to the "CFI Applied" column in [this project tracker](https://github.com/ethereum/eth1.0-specs/projects/1). -1. For your EIP to move forward in the network upgrade process, it should be discussed on the AllCoreDevs call. To propose this, open an issue against the [`ethereum/pm` repository](https://github.com/ethereum/pm/issues/new). It is not required to be part of the project tracker to be discussed in an ACD meeting. - -### Socializing an EIP -- Open a discussion thread preferably at the [Fellowship of Ethereum Magicians](https://ethereum-magicians.org/) to gather feedback from the community. -- Join the Ethereum Cat Herders' ['Peep an EIP'](https://github.com/ethereum-cat-herders/PM/projects/2#column-10491086) video series to discuss the background, need, and application of the EIP followed by Q&A. -- Invite the author to [Ethereum All core dev meetings](https://github.com/ethereum/pm#all-core-devs-meetings) for EIP to be introduced to the client teams. +This repository contains various specification related to the Ethereum 1.0 chain, specifically the specifications for [network upgrades](/network-upgrades) and (soon) the [JSON RPC API](/json-rpc). \ No newline at end of file diff --git a/network-upgrades/README.md b/network-upgrades/README.md new file mode 100644 index 0000000000..ffd5057193 --- /dev/null +++ b/network-upgrades/README.md @@ -0,0 +1,42 @@ +# Network Upgrades Specifications + +## Description + +This folder provides the specifications for the various network upgrades to Ethereum 1.0. It contains specifications for the client integration testnets which are set up during the testing phase of upgrades, for the network upgrades which will be deployed to the Ethereum mainnet, as well as retrospectives/postmortems on network upgrade-related incidents. + +In an effort to separate this process from the EIP standardization process, three stages have been devised to move EIPs from specifications to being deployed on the Ethereum mainnet: Considered for Inclusion (CFI), Client Integration Testnets, and Mainnet. Below, we explain the process for EIPs to move through these stages. + +## Definitions + +**Considered for Inclusion**: Signals that client developers are generally positive towards the idea, and that, assuming it meets all the requirements for mainnet inclusion, it could potentially be included in a network upgrade. This means the EIP may be included in client integration testnets. It is similar to "concept ACK" in other open source projects, and is not sufficient to result in deployment to mainnet. + +**Client Integration Testnets**: Short-lived integration testnets which are stood up to test cross-client implementations of certain EIPs. This does not guarantee mainnet deployement, and for some EIPs with small or non-applicable changes, this step may be skipped. + +**Mainnet**: Signals that client developers wish to include the EIP into an upgrade to the public Ethereum networks (i.e. testnets such as Goerli, Ropsten and Rinkeby and mainnet). + +## Process + +### Preconditions for Consideration + +_See [EIP-1](https://eips.ethereum.org/EIPS/eip-1#core-eips) for more context._ + +* You have vetted your idea and created an EIP by opening a PR against the [ethereum/eips](https://github.com/ethereum/EIPs/pulls) repository; +* The EIP is a "Core" EIP; +* The EIP's status is "Draft" or "Review"; +* [Optional, but strongly encouraged] You have socialized your EIP and collected some initial feedback in the `discussions-to` links from your EIP. + +### Getting the "Considered for Inclusion" (CFI) Status + +For your EIP to obtain the CFI status, it should be discussed on the AllCoreDevs call. To propose this, open an issue against the [`ethereum/pm` repository](https://github.com/ethereum/pm/issues/new) which proposes your EIP's inclusion into a specific network upgrade (i.e. "Proposal to include EIP-XXX in $UPGRADE", [example](https://github.com/ethereum/pm/issues/260)). + +Even if your EIP obtains the CFI status, it is likely that client developers will raise specific issues that would need to be addressed prior to mainnet inclusion. It is your responsibility as an EIP champion to see that these issues are addressed and to provide an update when that is done. + +### Deploying your EIP to Client Integration Testnets + +To test cross-client implementations, your EIP will likely be deployed to short-lived client integration testnet in addition to being tested in the [Ethereum tests suite](https://github.com/ethereum/tests/). As this happens, you will be expected to provide technical input and guidance to client implementers. Providing a full implementation against one or more of the major Ethereum clients is appreciated. + +Note: by this point, your EIP should be in `Review` status. + +### Deploying your EIP to Mainnet + +If client developers reach rough consensus to include your EIP in a network upgrade, it will be added to a spec under the `mainnet-upgardes` folder. When the upgrade spec gets finalized (i.e. the list of EIPs is final and blocks are selected), your EIP should be moved to the `Last Call` status. diff --git a/client-integration-testnets/YOLOv2.md b/network-upgrades/client-integration-testnets/YOLOv2.md similarity index 100% rename from client-integration-testnets/YOLOv2.md rename to network-upgrades/client-integration-testnets/YOLOv2.md diff --git a/client-integration-testnets/YOLOv3.md b/network-upgrades/client-integration-testnets/YOLOv3.md similarity index 100% rename from client-integration-testnets/YOLOv3.md rename to network-upgrades/client-integration-testnets/YOLOv3.md diff --git a/client-integration-testnets/aleut.md b/network-upgrades/client-integration-testnets/aleut.md similarity index 100% rename from client-integration-testnets/aleut.md rename to network-upgrades/client-integration-testnets/aleut.md diff --git a/network-upgrades/berlin.md b/network-upgrades/mainnet-upgrades/berlin.md similarity index 100% rename from network-upgrades/berlin.md rename to network-upgrades/mainnet-upgrades/berlin.md diff --git a/network-upgrades/london.md b/network-upgrades/mainnet-upgrades/london.md similarity index 100% rename from network-upgrades/london.md rename to network-upgrades/mainnet-upgrades/london.md diff --git a/network-upgrades/shanghai.md b/network-upgrades/mainnet-upgrades/shanghai.md similarity index 100% rename from network-upgrades/shanghai.md rename to network-upgrades/mainnet-upgrades/shanghai.md diff --git a/Network Upgrade Retrospective/Muir Glacier upgrade retrospective.md b/network-upgrades/retrospectives/muir-glacier.md similarity index 100% rename from Network Upgrade Retrospective/Muir Glacier upgrade retrospective.md rename to network-upgrades/retrospectives/muir-glacier.md diff --git a/Network Upgrade Retrospective/Report Template.md b/network-upgrades/retrospectives/template.md similarity index 100% rename from Network Upgrade Retrospective/Report Template.md rename to network-upgrades/retrospectives/template.md