From cdc9c981e9131426a15868c914be34928eec8cc9 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Tue, 20 Mar 2018 15:10:58 +0000 Subject: [PATCH 01/28] Fixed headers for existing EIPs to be conformant YAML frontmatter --- EIPS/eip-1.md | 16 +++--- EIPS/eip-100.md | 4 +- EIPS/eip-101.md | 16 +++--- EIPS/eip-107.md | 140 ++++++++++++++++++++++++------------------------ EIPS/eip-137.md | 20 +++---- EIPS/eip-140.md | 18 +++---- EIPS/eip-141.md | 18 +++---- EIPS/eip-145.md | 21 ++++---- EIPS/eip-150.md | 6 +-- EIPS/eip-155.md | 5 +- EIPS/eip-158.md | 4 +- EIPS/eip-160.md | 5 +- EIPS/eip-161.md | 5 +- EIPS/eip-162.md | 4 +- EIPS/eip-165.md | 16 +++--- EIPS/eip-170.md | 5 +- EIPS/eip-181.md | 26 ++++----- EIPS/eip-190.md | 6 +-- EIPS/eip-196.md | 22 ++++---- EIPS/eip-197.md | 22 ++++---- EIPS/eip-2.md | 5 +- EIPS/eip-20.md | 19 ++++--- EIPS/eip-211.md | 23 ++++---- EIPS/eip-214.md | 19 ++++--- EIPS/eip-234.md | 5 +- EIPS/eip-3.md | 24 ++++----- EIPS/eip-4.md | 18 +++---- EIPS/eip-5.md | 18 +++---- EIPS/eip-55.md | 4 +- EIPS/eip-6.md | 18 +++---- EIPS/eip-606.md | 20 +++---- EIPS/eip-607.md | 21 ++++---- EIPS/eip-608.md | 20 +++---- EIPS/eip-609.md | 22 ++++---- EIPS/eip-615.md | 19 +++---- EIPS/eip-616.md | 14 ++--- EIPS/eip-649.md | 20 +++---- EIPS/eip-658.md | 23 ++++---- EIPS/eip-681.md | 34 ++++++------ EIPS/eip-695.md | 19 ++++--- EIPS/eip-7.md | 15 +++--- EIPS/eip-706.md | 18 +++---- EIPS/eip-721.md | 14 +++-- EIPS/eip-758.md | 19 ++++--- EIPS/eip-779.md | 18 +++---- EIPS/eip-8.md | 18 +++---- EIPS/eip-801.md | 19 ++++--- EIPS/eip-831.md | 18 +++---- EIPS/eip-858.md | 18 +++---- EIPS/eip-868.md | 23 ++++---- 50 files changed, 458 insertions(+), 466 deletions(-) diff --git a/EIPS/eip-1.md b/EIPS/eip-1.md index d34fed1b37a0c2..8b2fd892e41708 100644 --- a/EIPS/eip-1.md +++ b/EIPS/eip-1.md @@ -1,9 +1,11 @@ - EIP: 1 - Title: EIP Purpose and Guidelines - Status: Active - Type: Meta - Author: Martin Becze , Hudson Jameson - Created: 2015-10-27, 2017-02-01 +--- +EIP: 1 +Title: EIP Purpose and Guidelines +Status: Active +Type: Meta +Author: Martin Becze , Hudson Jameson +Created: 2015-10-27, 2017-02-01 +--- What is an EIP? -------------- @@ -40,7 +42,7 @@ The EIP process begins with a new idea for Ethereum. It is highly recommended th Each EIP must have a champion - someone who writes the EIP using the style and format described below, shepherds the discussions in the appropriate forums, and attempts to build community consensus around the idea. -Vetting an idea publicly before going as far as writing an EIP is meant to save the potential author time. Asking the Ethereum community first if an idea is original helps prevent too much time being spent on something that is guaranteed to be rejected based on prior discussions (searching the Internet does not always do the trick). It also helps to make sure the idea is applicable to the entire community and not just the author. Just because an idea sounds good to the author does not mean it will work for most people in most areas where Ethereum is used. Examples of appropriate public forums to gauge interest around your EIP include [the Ethereum subreddit], [the Issues section of this repository], and [one of the Ethereum Gitter chat rooms]. In particular, [the Issues section of this repository] is an excellent place to discuss your proposal with the community and start creating more formalized language around your EIP. +Vetting an idea publicly before going as far as writing an EIP is meant to save the potential author time. Asking the Ethereum community first if an idea is original helps prevent too much time being spent on something that is guaranteed to be rejected based on prior discussions (searching the Internet does not always do the trick). It also helps to make sure the idea is applicable to the entire community and not just the author. Just because an idea sounds good to the author does not mean it will work for most people in most areas where Ethereum is used. Examples of appropriate public forums to gauge interest around your EIP include [the Ethereum subreddit], [the Issues section of this repository], and [one of the Ethereum Gitter chat rooms]. In particular, [the Issues section of this repository] is an excellent place to discuss your proposal with the community and start creating more formalized language around your EIP. Once the champion has asked the Ethereum community whether an idea has any chance of acceptance a draft EIP should be presented as a [pull request]. This gives the author a chance to continuously edit the draft EIP for proper formatting and quality. This also allows for further public comment and the author of the EIP to address concerns about the proposal. diff --git a/EIPS/eip-100.md b/EIPS/eip-100.md index 12d7dda24a85e6..61961def0a6cda 100644 --- a/EIPS/eip-100.md +++ b/EIPS/eip-100.md @@ -1,4 +1,4 @@ -``` +--- EIP: 100 Title: Change difficulty adjustment to target mean block time including uncles Author: Vitalik Buterin @@ -6,7 +6,7 @@ Type: Standard Track Category: Core Status: Final Created: 2016-04-28 -``` +--- ### Specification diff --git a/EIPS/eip-101.md b/EIPS/eip-101.md index f064741e3dc530..4ad6cff4bb7460 100644 --- a/EIPS/eip-101.md +++ b/EIPS/eip-101.md @@ -1,11 +1,11 @@ -### Title - - EIP: 101 - Title: Serenity Currency and Crypto Abstraction - Author: Vitalik Buterin - Status: Active - Type: Serenity feature - Created: 2015-11-15 +--- +EIP: 101 +Title: Serenity Currency and Crypto Abstraction +Author: Vitalik Buterin +Status: Active +Type: Serenity feature +Created: 2015-11-15 +--- ### Specification diff --git a/EIPS/eip-107.md b/EIPS/eip-107.md index 2054368ab0f8df..5e3ab179297a33 100644 --- a/EIPS/eip-107.md +++ b/EIPS/eip-107.md @@ -1,16 +1,16 @@ -
-  EIP: 107
-  Title: safe "eth_sendTransaction" authorization via html popup
-  Author: Ronan Sandford 
-  Created: 2016-06-05
-  Status: Draft
-  Type: Standard
-  Category: Interface
-
+--- +EIP: 107 +Title: safe "eth_sendTransaction" authorization via html popup +Author: Ronan Sandford +Created: 2016-06-05 +Status: Draft +Type: Standard +Category: Interface +--- Abstract ======== -This draft EIP describes the details of an authorization method that if provided by rpc enabled ethereum nodes would allow regular websites to send transactions (via ```eth_sendTransaction```) without the need to enable CORS. Instead, user would be asked to confirm the transaction via an html popup. +This draft EIP describes the details of an authorization method that if provided by rpc enabled ethereum nodes would allow regular websites to send transactions (via ```eth_sendTransaction```) without the need to enable CORS. Instead, user would be asked to confirm the transaction via an html popup. Every read only rpc call the dapp wants to perform is redirected to an invisible iframe from the node's domain and for every transaction that the dapp wish to execute, an html popup is presented to the user to allow him/her to cancel or confirm the transaction. This allows the dapp to connect to the node's rpc api without being granted any kind of privileges. This allows users to safely interact with dapps running in their everyday web browser while their accounts are unlocked. In case the account is not unlocked, and the node has allowed the "personal" api via rpc,the html page also allow the user to enter their password to unlock the account for the scope of the transaction. @@ -50,16 +50,16 @@ In order for the mechanism to work, the node needs to serve an html file via htt This file will then be used by the dapp in 2 different modes (invisible iframe and popup window). -The invisible iframe will be embeded in the dapp to allow the dapp to send its read-only rpc call without having to enable CORS for the dapp's website domain. This is done by sending message to the iframe (via javascript ```window.postMessage```) which in turn execute the rpc call. This works since the iframe and the node share the same domain/port. +The invisible iframe will be embeded in the dapp to allow the dapp to send its read-only rpc call without having to enable CORS for the dapp's website domain. This is done by sending message to the iframe (via javascript ```window.postMessage```) which in turn execute the rpc call. This works since the iframe and the node share the same domain/port. In the iframe mode, the html file's javascript code will ensure that no call requiring an unlocked key can be made. This is to prevent dapps from embedding the invisible iframe and tricking the user into clicking the confirm button. If the dapp requires an ```eth_sendTransaction``` call, the dapp will instead open a new window using the same url. -In this popup window mode, the html file's javascript code will alow ```eth_sendTransaction``` (but not ```eth_sign```, as there is no way to display to the user the meaningful content of the transaction to sign in a safe way) to be called. But instead of sending the call to the node directly, a confirmation dialog will be presented showing the sender and recipient addresses, as well as the amount being transfered along with the potential gas cost. Upon the user approving, the request will be sent and the result returned to the dapp. An error will be returned in case the user cancel the request. +In this popup window mode, the html file's javascript code will alow ```eth_sendTransaction``` (but not ```eth_sign```, as there is no way to display to the user the meaningful content of the transaction to sign in a safe way) to be called. But instead of sending the call to the node directly, a confirmation dialog will be presented showing the sender and recipient addresses, as well as the amount being transfered along with the potential gas cost. Upon the user approving, the request will be sent and the result returned to the dapp. An error will be returned in case the user cancel the request. The html page also checks for the availability of the "personal" api and if so, will ask the user to unlock the account if necessary. The unlocking is temporary (3s) so the password will be asked again if a transaction is attempted before the end of this short time. -In both iframe mode and window mode, the communication with the dapp is achieved using ```window.postMessage```. +In both iframe mode and window mode, the communication with the dapp is achieved using ```window.postMessage```. The fist message the iframe/window sends is a message containing the string "ready" to let the dapp know that it now accepts messages. Then the dapp can start performing rpc call by sending message using the following object : ``` { @@ -81,7 +81,7 @@ In all the cases, the iframe/window will send a message back to the dapp using t } ``` -the error object cannot be a javascript Error object due to postMessage limitation. Instead it is +the error object cannot be a javascript Error object due to postMessage limitation. Instead it is ``` { message:, @@ -92,7 +92,7 @@ the error object cannot be a javascript Error object due to postMessage limitati Rationale ========= -The design for that proposal was chosen for its simplicity and security. A previous idea was to use an oauth-like protocol in order for the user to accept or deny a transaction request. It would have required deeper code change in the node and some geth contributors argues that such change did not fit into geth code base as it would have required dapp aware code. +The design for that proposal was chosen for its simplicity and security. A previous idea was to use an oauth-like protocol in order for the user to accept or deny a transaction request. It would have required deeper code change in the node and some geth contributors argues that such change did not fit into geth code base as it would have required dapp aware code. The current design, instead has a very simple implementation (self contained html file that can be shared across node's implementation) and its safeness is guarantess by browsers' cross domain policies. The use of iframe/ window was required to have both security and user friendliness. The invisble iframe allows the dapp to execute read only calls without the need for user input, and the window ensures user approval before making a call. While we could have made it without the window mode by making the iframe confirmation use the native browser ```window.confirm``` dialog, this would have prevented the use of a more elegant confirmation popup that the current design allows. It also happens to be that the ```window.confirm``` is not safe in some browsers, as it gives focus to the accept option and can be triggered automatically (https://bugs.chromium.org/p/chromium/issues/detail?id=260653). @@ -114,11 +114,11 @@ That's it. - + - +

Please wait...

- +

@@ -238,13 +238,13 @@ That's it.
- + - + diff --git a/EIPS/eip-137.md b/EIPS/eip-137.md index b28b6fd3155167..e81ab076504d1a 100644 --- a/EIPS/eip-137.md +++ b/EIPS/eip-137.md @@ -1,16 +1,16 @@ -
-  EIP: 137
-  Title: Ethereum Domain Name Service - Specification
-  Author: Nick Johnson 
-  Status: Final
-  Type: Standards Track
-  Category: ERC
-  Created: 2016-04-04
-
+--- +EIP: 137 +Title: Ethereum Domain Name Service - Specification +Author: Nick Johnson +Status: Final +Type: Standards Track +Category: ERC +Created: 2016-04-04 +--- # Abstract -This draft EIP describes the details of the Ethereum Name Service, a proposed protocol and ABI definition that provides flexible resolution of short, human-readable names to service and resource identifiers. This permits users and developers to refer to human-readable and easy to remember names, and permits those names to be updated as necessary when the underlying resource (contract, content-addressed data, etc) changes. +This draft EIP describes the details of the Ethereum Name Service, a proposed protocol and ABI definition that provides flexible resolution of short, human-readable names to service and resource identifiers. This permits users and developers to refer to human-readable and easy to remember names, and permits those names to be updated as necessary when the underlying resource (contract, content-addressed data, etc) changes. The goal of domain names is to provide stable, human-readable identifiers that can be used to specify network resources. In this way, users can enter a memorable string, such as 'vitalik.wallet' or 'www.mysite.swarm', and be directed to the appropriate resource. The mapping between names and resources may change over time, so a user may change wallets, a website may change hosts, or a swarm document may be updated to a new version, without the domain name changing. Further, a domain need not specify a single resource; different record types allow the same domain to reference different resources. For instance, a browser may resolve 'mysite.swarm' to the IP address of its server by fetching its A (address) record, while a mail client may resolve the same address to a mail server by fetching its MX (mail exchanger) record. # Motivation diff --git a/EIPS/eip-140.md b/EIPS/eip-140.md index 026e30255ae668..964870323d1ff7 100644 --- a/EIPS/eip-140.md +++ b/EIPS/eip-140.md @@ -1,12 +1,12 @@ -## Preamble - - EIP: 140 - Title: REVERT instruction - Author: Alex Beregszaszi, Nikolai Mushegian (nikolai@nexusdev.us) - Type: Standard Track - Category: Core - Status: Final - Created: 2017-02-06 +--- +EIP: 140 +Title: REVERT instruction +Author: Alex Beregszaszi, Nikolai Mushegian (nikolai@nexusdev.us) +Type: Standard Track +Category: Core +Status: Final +Created: 2017-02-06 +--- ## Simple Summary diff --git a/EIPS/eip-141.md b/EIPS/eip-141.md index fed18d6d1dc7ae..7794ff3e9a253c 100644 --- a/EIPS/eip-141.md +++ b/EIPS/eip-141.md @@ -1,12 +1,12 @@ -## Preamble - - EIP: 141 - Title: Designated invalid EVM instruction - Author: Alex Beregszaszi - Type: Standard Track - Category: Core - Status: Final - Created: 2017-02-09 +--- +EIP: 141 +Title: Designated invalid EVM instruction +Author: Alex Beregszaszi +Type: Standard Track +Category: Core +Status: Final +Created: 2017-02-09 +--- ## Abstract diff --git a/EIPS/eip-145.md b/EIPS/eip-145.md index c993af140ab7a2..20849c3e2d28f9 100644 --- a/EIPS/eip-145.md +++ b/EIPS/eip-145.md @@ -1,13 +1,12 @@ -## Preamble - - EIP: 145 - Title: Bitwise shifting instructions in EVM - Author: Alex Beregszaszi, Paweł Bylica - Type: Standard Track - Category: Core - Status: Final - Created: 2017-02-13 - +--- +EIP: 145 +Title: Bitwise shifting instructions in EVM +Author: Alex Beregszaszi, Paweł Bylica +Type: Standard Track +Category: Core +Status: Final +Created: 2017-02-13 +--- ## Simple Summary @@ -158,7 +157,7 @@ The newly introduced instructions have no effect on bytecode created in the past --- 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe ``` - + ### `SHR` (logical shift right) diff --git a/EIPS/eip-150.md b/EIPS/eip-150.md index 9070389e78fe2f..a6414f29e0f42f 100644 --- a/EIPS/eip-150.md +++ b/EIPS/eip-150.md @@ -1,5 +1,4 @@ -## Preamble -``` +--- EIP: 150 Title: Gas cost changes for IO-heavy operations Author: Vitalik Buterin @@ -7,7 +6,8 @@ Type: Standard Track Category: Core Status: Final Created: 2016-09-24 -``` +--- + ### Meta reference [Tangerine Whistle](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-608.md). diff --git a/EIPS/eip-155.md b/EIPS/eip-155.md index 849fa1321d7e81..28bfa32268efb8 100644 --- a/EIPS/eip-155.md +++ b/EIPS/eip-155.md @@ -1,5 +1,4 @@ -## Preamble -``` +--- EIP: 155 Title: Simple replay attack protection Author: Vitalik Buterin @@ -7,7 +6,7 @@ Type: Standard Track Category: Core Status: Final Created: 2016-10-14 -``` +--- ### Hard fork [Spurious Dragon](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-607.md) diff --git a/EIPS/eip-158.md b/EIPS/eip-158.md index 46b945dc307587..a7bd99a7db3242 100644 --- a/EIPS/eip-158.md +++ b/EIPS/eip-158.md @@ -1,4 +1,4 @@ -``` +--- EIP: 158 Title: State clearing Author: Vitalik Buterin @@ -7,7 +7,7 @@ Category: Core Status: Superseded Created: 2016-10-16 Superseded-By: 161 -``` +--- # Specification diff --git a/EIPS/eip-160.md b/EIPS/eip-160.md index 5c88e5f04c4520..68892eb65dfbb3 100644 --- a/EIPS/eip-160.md +++ b/EIPS/eip-160.md @@ -1,4 +1,4 @@ -``` +--- EIP: 160 Title: EXP cost increase Author: Vitalik Buterin @@ -6,7 +6,8 @@ Type: Standard Track Category: Core Status: Final Created: 2016-10-20 -``` +--- + ### Hard fork [Spurious Dragon](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-607.md) diff --git a/EIPS/eip-161.md b/EIPS/eip-161.md index 09d6a4c29e509a..d8f7ca959bb38a 100644 --- a/EIPS/eip-161.md +++ b/EIPS/eip-161.md @@ -1,4 +1,4 @@ -``` +--- EIP: 161 Title: State trie clearing (invariant-preserving alternative) Author: Gavin Wood @@ -6,7 +6,8 @@ Type: Standard Track Category: Core Status: Final Created: 2016-10-24 -``` +--- + ### Hard fork [Spurious Dragon](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-607.md) diff --git a/EIPS/eip-162.md b/EIPS/eip-162.md index ec6fd158fddc81..03c57539f40d37 100644 --- a/EIPS/eip-162.md +++ b/EIPS/eip-162.md @@ -1,4 +1,4 @@ -``` +--- EIP: 162 Title: Initial ENS Hash Registrar Author: Maurelian and Nick Johnson @@ -6,7 +6,7 @@ Status: Final Type: Standards Track Category: ERC Created: 2016-10-25 -``` +--- ## Contents - Abstract diff --git a/EIPS/eip-165.md b/EIPS/eip-165.md index 529b483eabd14c..98b1962ebbea37 100644 --- a/EIPS/eip-165.md +++ b/EIPS/eip-165.md @@ -1,6 +1,4 @@ -## Preamble - -``` +--- EIP: 165 Title: ERC-165 Standard Interface Detection Author: Christian Reitwießner , Nick Johnson , Fabian Vogelsteller , Jordi Baylina , Konrad Feldmeier , William Entriken @@ -8,7 +6,7 @@ Type: Standard Track Category: ERC Status: Draft Created: 2018-01-23 -``` +--- ## Simple Summary @@ -122,7 +120,7 @@ contract ERC165Query { function doesContractImplementInterface(address _contract, bytes4 _interfaceId) external view returns (bool) { uint256 success; uint256 result; - + (success, result) = noThrowCall(_contract, ERC165ID); if ((success==0)||(result==0)) { return false; @@ -193,7 +191,7 @@ contract Lisa is ERC165MappingImplementation, Simpson { function Lisa() public { supportedInterfaces[this.is2D.selector ^ this.skinColor.selector] = true; } - + function is2D() external returns (bool){} function skinColor() external returns (string){} } @@ -213,12 +211,12 @@ interface Simpson { contract Homer is ERC165, Simpson { function supportsInterface(bytes4 interfaceID) external view returns (bool) { - return + return interfaceID == this.supportsInterface.selector || // ERC165 - interfaceID == this.is2D.selector + interfaceID == this.is2D.selector ^ this.skinColor.selector; // Simpson } - + function is2D() external returns (bool){} function skinColor() external returns (string){} } diff --git a/EIPS/eip-170.md b/EIPS/eip-170.md index 4dfa169e7117b5..4ef64d012d204a 100644 --- a/EIPS/eip-170.md +++ b/EIPS/eip-170.md @@ -1,4 +1,4 @@ -``` +--- EIP: 170 Title: Contract code size limit Author: Vitalik Buterin @@ -6,7 +6,8 @@ Type: Standard Track Category: Core Status: Final Created: 2016-11-04 -``` +--- + ### Hard fork [Spurious Dragon](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-607.md) diff --git a/EIPS/eip-181.md b/EIPS/eip-181.md index bbd0f48e6ba2c8..2615f6dbc3c7da 100644 --- a/EIPS/eip-181.md +++ b/EIPS/eip-181.md @@ -1,12 +1,12 @@ -
-  EIP: 181
-  Title: ENS support for reverse resolution of Ethereum addresses
-  Author: Nick Johnson 
-  Status: Final
-  Type: Standard Track
-  Category: ERC
-  Created: 2016-12-01
-
+--- +EIP: 181 +Title: ENS support for reverse resolution of Ethereum addresses +Author: Nick Johnson +Status: Final +Type: Standard Track +Category: ERC +Created: 2016-12-01 +--- # Abstract This EIP specifies a TLD, registrar, and resolver interface for reverse resolution of Ethereum addresses using ENS. This permits associating a human-readable name with any Ethereum blockchain address. Resolvers can be certain that the reverse record was published by the owner of the Ethereum address in question. @@ -24,7 +24,7 @@ Reverse ENS records are stored in the ENS hierarchy in the same fashion as regul Note that this means that contracts wanting to do dynamic reverse resolution of addresses will need to perform hex encoding in the contract. ## Registrar -The owner of the `addr.reverse` domain will be a registrar that permits the caller to take ownership of +The owner of the `addr.reverse` domain will be a registrar that permits the caller to take ownership of the reverse record for their own address. It provides the following method: function claim(address owner) returns (bytes32 node); @@ -57,7 +57,7 @@ This registrar, written in Solidity, implements the specifications outlined abov contract ReverseRegistrar { AbstractENS public ens; bytes32 public rootNode; - + /** * @dev Constructor * @param ensAddr The address of the ENS registry. @@ -67,7 +67,7 @@ This registrar, written in Solidity, implements the specifications outlined abov ens = AbstractENS(ensAddr); rootNode = node; } - + /** * @dev Transfers ownership of the reverse ENS record associated with the * calling account. @@ -79,7 +79,7 @@ This registrar, written in Solidity, implements the specifications outlined abov ens.setSubnodeOwner(rootNode, label, owner); return sha3(rootNode, label); } - + /** * @dev An optimised function to compute the sha3 of the lower-case * hexadecimal representation of an Ethereum address. diff --git a/EIPS/eip-190.md b/EIPS/eip-190.md index 7ef046e91e509e..07e51f97eedbf6 100644 --- a/EIPS/eip-190.md +++ b/EIPS/eip-190.md @@ -1,4 +1,4 @@ -``` +--- EIP: 190 Title: Ethereum Smart Contract Packaging Standard Authors: Piper Merriam, Tim Coulter, Denis Erfurt (mhhf), RJ Catalano (VoR0220), Iuri Matias (iurimatias) @@ -6,7 +6,7 @@ Status: Final Type: Standards Track Category: ERC Created: 2017-01-10 -``` +--- # Abstract @@ -38,7 +38,7 @@ Smart contract packaging should also have a direct positive effect on the end us The full specification for this standard is maintained separately in the repository [epm/epm-spec](https://github.com/ethpm/epm-spec). -This EIP refers to the `1.0.0` version of the specification: [https://github.com/ethpm/epm-spec/tree/v1.0.0](https://github.com/ethpm/epm-spec/tree/v1.0.0) +This EIP refers to the `1.0.0` version of the specification: [https://github.com/ethpm/epm-spec/tree/v1.0.0](https://github.com/ethpm/epm-spec/tree/v1.0.0) The specification contains details for a single document referred to as a *"Release Lockfile"*. diff --git a/EIPS/eip-196.md b/EIPS/eip-196.md index 3eaa411ee285ef..f9e045d48b9694 100644 --- a/EIPS/eip-196.md +++ b/EIPS/eip-196.md @@ -1,13 +1,13 @@ -## Preamble - - EIP: 196 - Title: Precompiled contracts for addition and scalar multiplication - on the elliptic curve alt_bn128 - Author: Christian Reitwiessner - Type: Standard Track - Category: Core - Status: Final - Created: 2017-02-02 +--- +EIP: 196 +Title: Precompiled contracts for addition and scalar multiplication + on the elliptic curve alt_bn128 +Author: Christian Reitwiessner +Type: Standard Track +Category: Core +Status: Final +Created: 2017-02-02 +--- ## Simple Summary @@ -46,7 +46,7 @@ Tuples of objects are encoded as their concatenation. For both precompiled contracts, if the input is shorter than expected, it is assumed to be virtually padded with zeros at the end (i.e. compatible with the semantics of the `CALLDATALOAD` opcode). If the input is longer than expected, surplus bytes at the end are ignored. -The length of the returned data is always as specified (i.e. it is not "unpadded"). +The length of the returned data is always as specified (i.e. it is not "unpadded"). ### Exact semantics diff --git a/EIPS/eip-197.md b/EIPS/eip-197.md index 0f5534721ddd22..df993abe69d5e3 100644 --- a/EIPS/eip-197.md +++ b/EIPS/eip-197.md @@ -1,13 +1,13 @@ -## Preamble - - EIP: 197 - Title: Precompiled contracts for optimal ate pairing check - on the elliptic curve alt_bn128 - Author: Vitalik Buterin , Christian Reitwiessner - Type: Standard Track - Category: Core - Status: Final - Created: 2017-02-06 +--- +EIP: 197 +Title: Precompiled contracts for optimal ate pairing check + on the elliptic curve alt_bn128 +Author: Vitalik Buterin , Christian Reitwiessner +Type: Standard Track +Category: Core +Status: Final +Created: 2017-02-06 +--- ## Simple Summary @@ -81,7 +81,7 @@ Elliptic curve points are encoded as a Jacobian pair `(X, Y)` where the point at Note that the number `k` is derived from the input length. -The length of the returned data is always exactly 32 bytes and encoded as a 32 byte big-endian number. +The length of the returned data is always exactly 32 bytes and encoded as a 32 byte big-endian number. ### Gas costs diff --git a/EIPS/eip-2.md b/EIPS/eip-2.md index 18c4949c21b7f6..0db000e4eb4ab2 100644 --- a/EIPS/eip-2.md +++ b/EIPS/eip-2.md @@ -1,4 +1,4 @@ -``` +--- EIP: 2 Title: Homestead Hard-fork Changes Author: Vitalik Buterin @@ -6,7 +6,8 @@ Status: Final Type: Standard Track Category: Core Created: 2015-11-15 -``` +--- + ### Meta reference [Homestead](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-606.md). diff --git a/EIPS/eip-20.md b/EIPS/eip-20.md index f9d132e89c769e..dba043f9223ed5 100644 --- a/EIPS/eip-20.md +++ b/EIPS/eip-20.md @@ -1,13 +1,12 @@ -## Preamble - - EIP: 20 - Title: ERC-20 Token Standard - Author: Fabian Vogelsteller , Vitalik Buterin - Type: Standard - Category: ERC - Status: Accepted - Created: 2015-11-19 - +--- +EIP: 20 +Title: ERC-20 Token Standard +Author: Fabian Vogelsteller , Vitalik Buterin +Type: Standard +Category: ERC +Status: Accepted +Created: 2015-11-19 +--- ## Simple Summary diff --git a/EIPS/eip-211.md b/EIPS/eip-211.md index 14f65f917b7562..9fa4c7f2ee83d1 100644 --- a/EIPS/eip-211.md +++ b/EIPS/eip-211.md @@ -1,15 +1,14 @@ -## Preamble - - EIP: 211 - Title: New opcodes: RETURNDATASIZE and RETURNDATACOPY - Author: Christian Reitwiessner - Type: Standard Track - Category Core - Status: Final - Created: 2017-02-13 - Requires: - Replaces: 5/8 - +--- +EIP: 211 +Title: New opcodes: RETURNDATASIZE and RETURNDATACOPY +Author: Christian Reitwiessner +Type: Standard Track +Category Core +Status: Final +Created: 2017-02-13 +Requires: +Replaces: 5/8 +--- ## Simple Summary diff --git a/EIPS/eip-214.md b/EIPS/eip-214.md index 2e5756c0c57e01..cbdf7a3094eef6 100644 --- a/EIPS/eip-214.md +++ b/EIPS/eip-214.md @@ -1,12 +1,12 @@ -## Preamble - - EIP: 214 - Title: New opcode STATICCALL - Author: Vitalik Buterin , Christian Reitwiessner ; - Type: Standard Track - Category: Core - Status: Final - Created: 2017-02-13 +--- +EIP: 214 +Title: New opcode STATICCALL +Author: Vitalik Buterin , Christian Reitwiessner ; +Type: Standard Track +Category: Core +Status: Final +Created: 2017-02-13 +--- ## Simple Summary @@ -49,4 +49,3 @@ To be written. ## Copyright Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). - diff --git a/EIPS/eip-234.md b/EIPS/eip-234.md index 7d8403e476a8c4..de1752bbd466b8 100644 --- a/EIPS/eip-234.md +++ b/EIPS/eip-234.md @@ -1,5 +1,4 @@ -## Preamble -``` +--- EIP: 234 Title: Add `blockHash` to JSON-RPC filter options. Author: Micah Zoltu @@ -7,7 +6,7 @@ Type: Standard Track Category: Interface Status: Draft Created: 2017-03-24 -``` +--- ## Simple Summary diff --git a/EIPS/eip-3.md b/EIPS/eip-3.md index a61468fc53c1d2..de9ae751d0bdb8 100644 --- a/EIPS/eip-3.md +++ b/EIPS/eip-3.md @@ -1,4 +1,4 @@ -``` +--- EIP: 3 Title: Addition of CALLDEPTH opcode Author: Martin Holst Swende @@ -6,37 +6,37 @@ Status: Draft Type: Standards Track Layer: Consensus (hard-fork) Created: 2015-11-19 -``` +--- # Abstract -This is a proposal to add a new opcode, `CALLDEPTH`. The `CALLDEPTH` opcode would return the remaining available call stack depth. +This is a proposal to add a new opcode, `CALLDEPTH`. The `CALLDEPTH` opcode would return the remaining available call stack depth. # Motivation -There is a limit specifying how deep contracts can call other contracts; the call stack. The limit is currently `256`. If a contract invokes another contract (either via `CALL` or `CALLCODE`), the operation will fail if the call stack depth limit has been reached. +There is a limit specifying how deep contracts can call other contracts; the call stack. The limit is currently `256`. If a contract invokes another contract (either via `CALL` or `CALLCODE`), the operation will fail if the call stack depth limit has been reached. -This behaviour makes it possible to subject a contract to a "call stack attack" [1]. In such an attack, an attacker first creates a suitable depth of the stack, e.g. by recursive calls. After this step, the attacker invokes the targeted contract. If the targeted calls another contract, that call will fail. If the return value is not properly checked to see if the call was successfull, the consequences could be damaging. +This behaviour makes it possible to subject a contract to a "call stack attack" [1]. In such an attack, an attacker first creates a suitable depth of the stack, e.g. by recursive calls. After this step, the attacker invokes the targeted contract. If the targeted calls another contract, that call will fail. If the return value is not properly checked to see if the call was successfull, the consequences could be damaging. -Example: +Example: 1. Contract `A` want's to be invoked regularly, and pays Ether to the invoker in every block. -2. When contract `A` is invoked, it calls contracts `B` and `C`, which consumes a lot of gas. After invocation, contract `A` pays Ether to the caller. -3. Malicious user `X` ensures that the stack depth is shallow before invoking A. Both calls to `B` and `C` fail, but `X` can still collect the reward. +2. When contract `A` is invoked, it calls contracts `B` and `C`, which consumes a lot of gas. After invocation, contract `A` pays Ether to the caller. +3. Malicious user `X` ensures that the stack depth is shallow before invoking A. Both calls to `B` and `C` fail, but `X` can still collect the reward. It is possible to defend against this in two ways: -1. Check return value after invocation. +1. Check return value after invocation. 2. Check call stack depth experimentally. A library [2] by Piper Merriam exists for this purpose. This method is quite costly in gas. [1] a.k.a "shallow stack attack" and "stack attack". However, to be precise, the word ''stack'' has a different meaning within the EVM, and is not to be confused with the ''call stack''. -[2] https://github.com/pipermerriam/ethereum-stack-depth-lib +[2] https://github.com/pipermerriam/ethereum-stack-depth-lib # Specification -The opcode `CALLDEPTH` should return the remaining call stack depth. A value of `0` means that the call stack is exhausted, and no further calls can be made. +The opcode `CALLDEPTH` should return the remaining call stack depth. A value of `0` means that the call stack is exhausted, and no further calls can be made. # Rationale @@ -44,4 +44,4 @@ The actual call stack depth, as well as the call stack depth limit, are present # Implementation -Not implemented. +Not implemented. diff --git a/EIPS/eip-4.md b/EIPS/eip-4.md index 260d842426145a..9793b26efb8f85 100644 --- a/EIPS/eip-4.md +++ b/EIPS/eip-4.md @@ -1,12 +1,12 @@ -
-  EIP: 4
-  Layer: Process
-  Title: EIP Classification
-  Author: Joseph Chow
-  Status: Draft
-  Type: Process
-  Created: 2015-11-17
-
+--- +EIP: 4 +Layer: Process +Title: EIP Classification +Author: Joseph Chow +Status: Draft +Type: Process +Created: 2015-11-17 +--- # Abstract diff --git a/EIPS/eip-5.md b/EIPS/eip-5.md index 02408e2fc7a279..9214572a823849 100644 --- a/EIPS/eip-5.md +++ b/EIPS/eip-5.md @@ -1,12 +1,12 @@ -### Title - - EIP: 5 - Title: Gas Usage for `RETURN` and `CALL*` - Author: Christian Reitwiessner - Status: Draft - Type: Standards Track - Layer: Consensus (hard-fork) - Created: 2015-11-22 +--- +EIP: 5 +Title: Gas Usage for `RETURN` and `CALL*` +Author: Christian Reitwiessner +Status: Draft +Type: Standards Track +Layer: Consensus (hard-fork) +Created: 2015-11-22 +--- ### Abstract diff --git a/EIPS/eip-55.md b/EIPS/eip-55.md index e9e1c82af1bb69..75cf21111e3275 100644 --- a/EIPS/eip-55.md +++ b/EIPS/eip-55.md @@ -1,4 +1,4 @@ -``` +--- EIP: 55 Title: Mixed-case checksum address encoding Author: Vitalik Buterin @@ -6,7 +6,7 @@ Type: Standard Track Category: ERC Status: Accepted Created: 2016-01-14 -``` +--- # Specification diff --git a/EIPS/eip-6.md b/EIPS/eip-6.md index d6d2bc8fdfeb81..d13bbc0f6e8e03 100644 --- a/EIPS/eip-6.md +++ b/EIPS/eip-6.md @@ -1,12 +1,12 @@ -### Title - - EIP: 6 - Title: Renaming SUICIDE opcode - Author: Hudson Jameson - Status: Final - Type: Standards Track - Layer: Applications - Created: 2015-11-22 +--- +EIP: 6 +Title: Renaming SUICIDE opcode +Author: Hudson Jameson +Status: Final +Type: Standards Track +Layer: Applications +Created: 2015-11-22 +--- ### Abstract The solution proposed in this EIP is to change the name of the `SUICIDE` opcode in Ethereum programming languages with `SELFDESTRUCT`. diff --git a/EIPS/eip-606.md b/EIPS/eip-606.md index c8dad7f004ab8e..71f17e844b0c19 100644 --- a/EIPS/eip-606.md +++ b/EIPS/eip-606.md @@ -1,12 +1,12 @@ -## Preamble - - EIP: 606 - Title: Hardfork Meta: Homestead - Author: Alex Beregszaszi - Type: Meta - Status: Final - Created: 2017-04-23 - Requires: 2, 7 +--- +EIP: 606 +Title: Hardfork Meta: Homestead +Author: Alex Beregszaszi +Type: Meta +Status: Final +Created: 2017-04-23 +Requires: 2, 7 +--- ## Abstract @@ -23,7 +23,7 @@ This specifies the changes included in the hard fork named Homestead. - [EIP 2](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2.md) (Homestead Hard-fork Changes) - [EIP 7](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7.md) (DELEGATECALL) - [EIP 8](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-8.md) (Networking layer: devp2p Forward Compatibility Requirements for Homestead) - + ## References 1. https://blog.ethereum.org/2016/02/29/homestead-release/ diff --git a/EIPS/eip-607.md b/EIPS/eip-607.md index 15a2a2f256898d..3247bd260a1be6 100644 --- a/EIPS/eip-607.md +++ b/EIPS/eip-607.md @@ -1,13 +1,12 @@ - -## Preamble - - EIP: 607 - Title: Hardfork Meta: Spurious Dragon - Author: Alex Beregszaszi - Type: Meta - Status: Final - Created: 2017-04-23 - Requires: 155, 160, 161, 170 +--- +EIP: 607 +Title: Hardfork Meta: Spurious Dragon +Author: Alex Beregszaszi +Type: Meta +Status: Final +Created: 2017-04-23 +Requires: 155, 160, 161, 170 +--- ## Abstract @@ -25,7 +24,7 @@ This specifies the changes included in the hard fork named Spurious Dragon. - [EIP 160](eip-160.md) (EXP cost increase) - [EIP 161](eip-161.md) (State trie clearing) - [EIP 170](eip-170.md) (Contract code size limit) - + ## References 1. https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/ diff --git a/EIPS/eip-608.md b/EIPS/eip-608.md index 22ee846e127a5c..9cf88d993a922c 100644 --- a/EIPS/eip-608.md +++ b/EIPS/eip-608.md @@ -1,12 +1,12 @@ -## Preamble - - EIP: 608 - Title: Hardfork Meta: Tangerine Whistle - Author: Alex Beregszaszi - Type: Meta - Status: Final - Created: 2017-04-23 - Requires: 150 +--- +EIP: 608 +Title: Hardfork Meta: Tangerine Whistle +Author: Alex Beregszaszi +Type: Meta +Status: Final +Created: 2017-04-23 +Requires: 150 +--- ## Abstract @@ -20,7 +20,7 @@ This specifies the changes included in the hard fork named Tangerine Whistle (EI - Block >= 2,463,000 on Mainnet - Included EIPs: - [EIP 150](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-150.md) (Gas cost changes for IO-heavy operations) - + ## References 1. https://blog.ethereum.org/2016/10/13/announcement-imminent-hard-fork-eip150-gas-cost-changes/ diff --git a/EIPS/eip-609.md b/EIPS/eip-609.md index c849c24bad3264..d805dc596634b9 100644 --- a/EIPS/eip-609.md +++ b/EIPS/eip-609.md @@ -1,13 +1,13 @@ -## Preamble - - EIP: 609 - Title: Hardfork Meta: Byzantium - Author: Alex Beregszaszi - Type: Standard Track - Category: Core - Status: Final - Created: 2017-04-23 - Requires: 100, 140, 196, 197, 198, 211, 214, 649, 658 +--- +EIP: 609 +Title: Hardfork Meta: Byzantium +Author: Alex Beregszaszi +Type: Standard Track +Category: Core +Status: Final +Created: 2017-04-23 +Requires: 100, 140, 196, 197, 198, 211, 214, 649, 658 +--- ## Abstract @@ -30,7 +30,7 @@ This specifies the changes included in the hard fork named Byzantium. - [EIP 214](./eip-214.md) (New opcode STATICCALL) - [EIP 649](./eip-649.md) (Difficulty Bomb Delay and Block Reward Reduction) - [EIP 658](./eip-658.md) (Embedding transaction status code in receipts) - + ## References 1. https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/ diff --git a/EIPS/eip-615.md b/EIPS/eip-615.md index 8cf1a61081fe45..1a83014d34902c 100644 --- a/EIPS/eip-615.md +++ b/EIPS/eip-615.md @@ -1,4 +1,4 @@ -``` +--- EIP: 615 Title: Subroutines and Static Jumps for the EVM Status: Draft @@ -6,7 +6,8 @@ Type: Core Author: Greg Colvin , Paweł Bylica, Christian Reitwiessner Created: 2016-12-10 Edited: 2017-25-4 -``` +--- + ## Abstract This EIP introduces new EVM opcodes and conditions on EVM code to support subroutines and static jumps, disallow dynamic jumps, and thereby make EVM code amenable to linear-time static analysis. This will provide for better compilation, interpretation, transpilation, and formal analysis of EVM code. @@ -84,7 +85,7 @@ specifies that all of the following bytes to the end of the bytecode are data, a ### Indirect Jumps -The primitive operations provide for static jumps. Dynamic jumps are also used for O(1) indirection: an address to jump to is selected to push on the stack and be jumped to. So we also propose two more instructions to provide for constrained indirection. We support these with vectors of `JUMPDEST` or `BEGINSUB` offsets stored inline, which can be selected with an index on the stack. That constrains validation to a specified subset of all possible destinations. The danger of quadratic blow up is avoided because it takes as much space to store the jump vectors as it does to code the worst case exploit. +The primitive operations provide for static jumps. Dynamic jumps are also used for O(1) indirection: an address to jump to is selected to push on the stack and be jumped to. So we also propose two more instructions to provide for constrained indirection. We support these with vectors of `JUMPDEST` or `BEGINSUB` offsets stored inline, which can be selected with an index on the stack. That constrains validation to a specified subset of all possible destinations. The danger of quadratic blow up is avoided because it takes as much space to store the jump vectors as it does to code the worst case exploit. Dynamic jumps to a `JUMPDEST` are used to implement O(1) jumptables, which are useful for dense switch statements, and are implemented as instructions similar to this one on most CPUs. * `JUMPV n, jumpdest ...` @@ -159,7 +160,7 @@ _Execution_ is as defined in the Yellow Paper - a sequence of changes in the EVM >5 Invalid instruction -We propose to expand and extend the Yellow Paper conditions to handle the new instructions we propose. +We propose to expand and extend the Yellow Paper conditions to handle the new instructions we propose. To handle the return stack we expand the conditions on stack size: >2a The size of the data stack does not exceed 1024. @@ -206,7 +207,7 @@ Validating that jumps are to valid addresses takes two sequential passes over th is_sub[code_size] // is there a BEGINSUB at PC? is_dest[code_size] // is there a JUMPDEST at PC? sub_for_pc[code_size] // which BEGINSUB is PC in? - + bool validate_jumps(PC) { current_sub = PC @@ -226,7 +227,7 @@ Validating that jumps are to valid addresses takes two sequential passes over th is_dest[PC] = true sub_for_pc[PC] = current_sub } - + // check that targets are in subroutine for (PC = 0; instruction = bytecode[PC]; PC = advance_pc(PC)) { @@ -322,10 +323,10 @@ The basic approach is to call `validate_subroutine(i, 0, 0)`, for _i_ equal to t if instruction is JUMPTO { PC = jump_target(PC) - continue + continue } - // recurse to jump to code to validate + // recurse to jump to code to validate if instruction is JUMPIF { if not validate_subroutine(jump_target(PC), return_pc, SP) @@ -367,6 +368,6 @@ These changes would need to be implemented in phases at decent intervals: >2 A later hard fork would require clients to place only valid code on the block chain. Note that despite the fork old EVM code will still need to be supported indefinitely. -If desired, the period of deprecation can be extended indefinitely by continuing to accept code not versioned as new - but without validation. That is, by delaying step 2. Since we must continue to run old code this is not technically difficult. +If desired, the period of deprecation can be extended indefinitely by continuing to accept code not versioned as new - but without validation. That is, by delaying step 2. Since we must continue to run old code this is not technically difficult. Implementation of this proposal need not be difficult, At the least, interpreters can simply be extended with the new opcodes and run unchanged otherwise. The new opcodes require only stacks for the frame pointers and return offsets and the few pushes, pops, and assignments described above. JIT code can use native calls. Further optimizations include minimizing runtime checks for exceptions and taking advantage of validated code wherever possible. diff --git a/EIPS/eip-616.md b/EIPS/eip-616.md index df54888a51607d..6237f8d862af94 100644 --- a/EIPS/eip-616.md +++ b/EIPS/eip-616.md @@ -1,4 +1,4 @@ -``` +--- EIP: 616 Title: SIMD Operations for the EVM Author: Greg Colvin, greg@colvin.org @@ -6,7 +6,7 @@ Type: Standard Track Category: Core Status: Draft Created: 2017-04-25 -``` +--- ## ABSTRACT @@ -27,7 +27,7 @@ Most all modern CPUs include SIMD hardware that operates on wide registers of da ### Encoding -We propose a simple encoding of SIMD operations as extended two-byte codes. The first byte is the opcode, and the second byte is the SIMD type: scalar type, lane width, and number of elements. +We propose a simple encoding of SIMD operations as extended two-byte codes. The first byte is the opcode, and the second byte is the SIMD type: scalar type, lane width, and number of elements. N bits | Field -|- @@ -46,7 +46,7 @@ _Note that floating point operations are **not** proposed for inclusion in the i ### Semantics -We define the following extended versions of the EVM's arithmetic, logic, and comparison operations. As with the normal versions, they consume their arguments from the stack and place their results on the stack, except that their arguments are vectors rather than scalars. +We define the following extended versions of the EVM's arithmetic, logic, and comparison operations. As with the normal versions, they consume their arguments from the stack and place their results on the stack, except that their arguments are vectors rather than scalars. lo\hi | B | C -|-|- @@ -79,13 +79,13 @@ uint8[5, 7, 9] ``` on the stack. -XSHUFFLE takes two vectors on the stack: a vector to permute and a permutation mask. E.g. +XSHUFFLE takes two vectors on the stack: a vector to permute and a permutation mask. E.g. ``` PUSH uint64[4, 5, 6, 0] PUSH uint8[2, 0, 1, 3] SHUFFLE ``` -leaves +leaves ``` uint64[6, 4, 5 , 0] ``` @@ -110,7 +110,7 @@ marks the **single** entry to a subroutine. `n_args` items are taken off of the ## RATIONALE -Currently, the lowest common denominator for SIMD hardware (e.g. Intel SSE2 and ARM Neon) is 16-byte registers supporting integer lanes of 1, 2, 4, and 8 bytes, and floating point lanes of 4 and 8 bytes. More recent SIMD hardware (e.g. Intel AVX) supports 32-byte registers, and EVM stack items are also 32 bytes wide. The limits above derive from these numbers, assuring that EVM code is within the bounds of available hardware - and the reserved bits provide room for growth. +Currently, the lowest common denominator for SIMD hardware (e.g. Intel SSE2 and ARM Neon) is 16-byte registers supporting integer lanes of 1, 2, 4, and 8 bytes, and floating point lanes of 4 and 8 bytes. More recent SIMD hardware (e.g. Intel AVX) supports 32-byte registers, and EVM stack items are also 32 bytes wide. The limits above derive from these numbers, assuring that EVM code is within the bounds of available hardware - and the reserved bits provide room for growth. For most modern languages (including Rust, Python, Go, Java, and C++) compilers can do a good job of generating SIMD code for parallelizable loops, and/or there are intrinsics or libraries available for explicit access to SIMD hardware. So a portable software implementation will likely provide good use of the hardware on most platforms, and intrinsics or libraries can be used as available and needed. Thus we can expect these operations to take about the same (or for 256-bit vectors on 128-bit hardware up to twice) the time to execute regardless of element size or number of elements. diff --git a/EIPS/eip-649.md b/EIPS/eip-649.md index e2adda472a9fc2..33199f1103c750 100644 --- a/EIPS/eip-649.md +++ b/EIPS/eip-649.md @@ -1,13 +1,13 @@ -## Preamble - - EIP: 649 - Title: Metropolis Difficulty Bomb Delay and Block Reward Reduction - Authors: Afri Schoedon, Vitalik Buterin - Type: Standard Track - Category: Core - Status: Final - Created: 2017-06-21 - Replaces: 186 +--- +EIP: 649 +Title: Metropolis Difficulty Bomb Delay and Block Reward Reduction +Authors: Afri Schoedon, Vitalik Buterin +Type: Standard Track +Category: Core +Status: Final +Created: 2017-06-21 +Replaces: 186 +--- ## Simple Summary The average block times are increasing due to the difficulty bomb (also known as the "_ice age_") slowly accelerating. This EIP proposes to delay the difficulty bomb for approximately one and a half year and to reduce the block rewards with the Byzantium fork, the first part of the Metropolis fork. diff --git a/EIPS/eip-658.md b/EIPS/eip-658.md index 09afc15ec28dc2..782832dc4eaea4 100644 --- a/EIPS/eip-658.md +++ b/EIPS/eip-658.md @@ -1,15 +1,14 @@ -## Preamble - - EIP: 658 - Title: Embedding transaction status code in receipts - Author: Nick Johnson - Type: Standard Track - Category Core - Status: Final - Created: 2017-06-30 - Requires: 140 - Replaces: 98 - +--- +EIP: 658 +Title: Embedding transaction status code in receipts +Author: Nick Johnson +Type: Standard Track +Category Core +Status: Final +Created: 2017-06-30 +Requires: 140 +Replaces: 98 +--- ## Abstract This EIP replaces the intermediate state root field of the receipt with a status code indicating if the top-level call succeeded or failed. diff --git a/EIPS/eip-681.md b/EIPS/eip-681.md index ab4b1cffe216a0..57a83203d63660 100644 --- a/EIPS/eip-681.md +++ b/EIPS/eip-681.md @@ -1,13 +1,13 @@ -## Preamble - - EIP: 681 - Title: URL Format for Transaction Requests - Author: Daniel A. Nagy - Type: Standard Track - Category: ERC - Status: Draft - Created: 2017-08-01 - Requires: 20, 137, 831 +--- +EIP: 681 +Title: URL Format for Transaction Requests +Author: Daniel A. Nagy +Type: Standard Track +Category: ERC +Status: Draft +Created: 2017-08-01 +Requires: 20, 137, 831 +--- ## Simple Summary A standard way of representing various transactions, especially payment requests in Ethers and ERC #20 tokens as URLs. @@ -37,12 +37,12 @@ Payment request URLs contain "ethereum" in their schema (protocol) part and are number = [ "-" / "+" ] *DIGIT [ "." 1*DIGIT ] [ ( "e" / "E" ) [ 1*DIGIT ] [ "+" UNIT ] -Where `TYPE` is a standard ABI type name, as defined in [Ethereum Contract ABI specification](https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI). `STRING` is a URL-encoded unicode string of arbitrary length, where delimiters and the +Where `TYPE` is a standard ABI type name, as defined in [Ethereum Contract ABI specification](https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI). `STRING` is a URL-encoded unicode string of arbitrary length, where delimiters and the percentage symbol (`%`) are mandatorily hex-encoded with a `%` prefix. -`UNIT` is a URL-encoded unicode string. If `UNIT` is ETH, it always means a multiplier of 1018. If it is something -else AND the addressed contract has a `symbol` field exactly matching this string AND the contract has a `decimals` field, then -10 to that power is used as a multiplier. Otherwise, the payment request is deemed invalid. Applications that have no access to +`UNIT` is a URL-encoded unicode string. If `UNIT` is ETH, it always means a multiplier of 1018. If it is something +else AND the addressed contract has a `symbol` field exactly matching this string AND the contract has a `decimals` field, then +10 to that power is used as a multiplier. Otherwise, the payment request is deemed invalid. Applications that have no access to the blockchain should refuse accepting requests with a non-empty `UNIT`, if it is not ETH. Note that a `number` can be expressed in *scientific notation*, with a multiplier of a power of 10. The use of this notation is strongly encouraged when expressing monetary value in Ethers or ERC #20 tokens in atomic units (e. g. Wei, in case of Ether). @@ -57,11 +57,11 @@ For the syntax of ENS_NAME, please consult ERC #137 defining Ethereum Name Servi `chain_id` is optional and contains the decimal chain ID, such that transactions on various test- and private networks can be requested. If no `chain_id` is present, the client's current network setting remains effective. -If `function_name` is missing, then the URL is requesting payment in the native token of the blockchain, which is Ether in our case. The amount is specified in `value` parameter, in the atomic unit (i.e. Wei). The use of scientific notation is strongly encouraged. For example, requesting 2.014 ETH to address `0xfb6916095ca1df60bb79Ce92ce3ea74c37c5d359` would look as follows: +If `function_name` is missing, then the URL is requesting payment in the native token of the blockchain, which is Ether in our case. The amount is specified in `value` parameter, in the atomic unit (i.e. Wei). The use of scientific notation is strongly encouraged. For example, requesting 2.014 ETH to address `0xfb6916095ca1df60bb79Ce92ce3ea74c37c5d359` would look as follows: [ethereum:0xfb6916095ca1df60bb79Ce92ce3ea74c37c5d359?value=2.014e18](ethereum:0xfb6916095ca1df60bb79Ce92ce3ea74c37c5d359?value=2.014e18) -Requesting payments in ERC #20 tokens involves a request to call the `transfer` function of the token contract with an `address` and a `uint256` typed parameter, containing the *beneficiary address* and the *amount in atomic units*, respectively. For example, -requesting a Unicorn to address `0x8e23ee67d1332ad560396262c48ffbb01f93d052` looks as follows: +Requesting payments in ERC #20 tokens involves a request to call the `transfer` function of the token contract with an `address` and a `uint256` typed parameter, containing the *beneficiary address* and the *amount in atomic units*, respectively. For example, +requesting a Unicorn to address `0x8e23ee67d1332ad560396262c48ffbb01f93d052` looks as follows: [ethereum:0x89205a3a3b2a69de6dbf7f01ed13b2108b2c43e7/transfer?address=0x8e23ee67d1332ad560396262c48ffbb01f93d052&uint256=1](ethereum:0x89205a3a3b2a69de6dbf7f01ed13b2108b2c43e7/transfer?address=0x8e23ee67d1332ad560396262c48ffbb01f93d052&uint256=1) If using ENS names instead of hexadecimal addresses, the resolution is up to the payer, at any time between receiving the URL and sending the transaction. Hexadecimal addresses always take precedence over ENS names, i. e. even if there exists a matching ENS name consisting of 40 hexadecimal digits, it should never be resolved. Instead, the hexadecimal address should be used directly. diff --git a/EIPS/eip-695.md b/EIPS/eip-695.md index c917d29ced0927..02ace809474d74 100644 --- a/EIPS/eip-695.md +++ b/EIPS/eip-695.md @@ -1,13 +1,12 @@ -## Preamble - - EIP: 695 - Title: Create `eth_chainId` method for JSON-RPC - Author: Isaac Ardis: isaac.ardis@gmail.com, Wei Tang: hi@that.world, [@tcz001](https://github.com/tcz001) - Type: Standard Track - Category: Interface - Status: Draft - Created: 2017-08-21 - +--- +EIP: 695 +Title: Create `eth_chainId` method for JSON-RPC +Author: Isaac Ardis: isaac.ardis@gmail.com, Wei Tang: hi@that.world, [@tcz001](https://github.com/tcz001) +Type: Standard Track +Category: Interface +Status: Draft +Created: 2017-08-21 +--- ## Simple Summary Include `eth_chainId` method in `eth_`-namespaced JSON-RPC methods. diff --git a/EIPS/eip-7.md b/EIPS/eip-7.md index f33ca94350f167..989d1f4085c2e4 100644 --- a/EIPS/eip-7.md +++ b/EIPS/eip-7.md @@ -1,10 +1,11 @@ -### Title - EIP: 7 - Title: DELEGATECALL - Author: Vitalik Buterin - Status: Final - Type: Homestead feature - Created: 2015-11-15 +--- +EIP: 7 +Title: DELEGATECALL +Author: Vitalik Buterin +Status: Final +Type: Homestead feature +Created: 2015-11-15 +--- ### Hard Fork [Homestead](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-606.md) diff --git a/EIPS/eip-706.md b/EIPS/eip-706.md index 638b15646aad50..712b5f56eb03d6 100644 --- a/EIPS/eip-706.md +++ b/EIPS/eip-706.md @@ -1,12 +1,12 @@ -## Preamble - - EIP: 706 - Title: DEVp2p snappy compression - Author: Péter Szilágyi - Type: Standard Track - Category: Networking - Status: Final - Created: 2017-09-07 +--- +EIP: 706 +Title: DEVp2p snappy compression +Author: Péter Szilágyi +Type: Standard Track +Category: Networking +Status: Final +Created: 2017-09-07 +--- ## Abstract The base networking protocol (DEVp2p) used by Ethereum currently does not employ any form of compression. This results in a massive amount of bandwidth wasted in the entire network, making both initial sync as well as normal operation slower and laggier. diff --git a/EIPS/eip-721.md b/EIPS/eip-721.md index 645ad0dfb4b0f2..55626a1f986a43 100644 --- a/EIPS/eip-721.md +++ b/EIPS/eip-721.md @@ -1,6 +1,4 @@ -## Preamble - -``` +--- EIP: 721 Title: ERC-721 Non-Fungible Token Standard Author: William Entriken , Dieter Shirley , Jacob Evans , Nastassia Sachs @@ -9,7 +7,7 @@ Category ERC Status: Draft Created: 2018-01-24 Requires: ERC-165 -``` +--- ## Simple Summary @@ -92,7 +90,7 @@ interface ERC721 /* is ERC165 */ { /// @param _tokenId The NFT to transfer /// @param data Additional data with no specified format, sent in call to `_to` function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - + /// @notice Transfers the ownership of an NFT from one address to another address /// @dev This works identically to the other function with an extra data parameter, /// except this function just sets data to "" @@ -163,7 +161,7 @@ interface ERC721TokenReceiver { /// transfer. This function MUST use 50,000 gas or less. Return of other /// than the magic value MUST result in the transaction being reverted. /// Note: the contract address is always the message sender. - /// @param _from The sending address + /// @param _from The sending address /// @param _tokenId The NFT identifier which is being transfered /// @param data Additional data with no specified format /// @return `bytes4(keccak256("onERC721Received(address,uint256,bytes)"))` @@ -263,7 +261,7 @@ There are many proposed uses of Ethereum smart contracts that depend on tracking **"NFT" Word Choice** -"NFT" was satisfactory to nearly everyone surveyed and is widely applicable to a broad universe of distinguishable digital assets. We recongize that "deed" is very descriptive for certain applications of this standard (notably, physical property). +"NFT" was satisfactory to nearly everyone surveyed and is widely applicable to a broad universe of distinguishable digital assets. We recongize that "deed" is very descriptive for certain applications of this standard (notably, physical property). *Alternatives considered: distinguishable asset, title, token, asset, equity, ticket* @@ -343,7 +341,7 @@ A significant amount of discussion occurred on the original ERC-721 issue, addit A second event was held at ETHDenver 2018 to discuss distinguishable asset standards (notes to be published). -We have been very inclusive in this process and invite anyone with questions or contributions into our discussion. However, this standard is written only to support the identified use cases which are listed herein. +We have been very inclusive in this process and invite anyone with questions or contributions into our discussion. However, this standard is written only to support the identified use cases which are listed herein. ## Backwards Compatibility diff --git a/EIPS/eip-758.md b/EIPS/eip-758.md index edb102c9478a8c..4cdec48b368679 100644 --- a/EIPS/eip-758.md +++ b/EIPS/eip-758.md @@ -1,13 +1,12 @@ -## Preamble - - EIP: 758 - Title: Subscriptions and filters for transaction return data - Author: Jack Peterson - Type: Standard Track - Category: Interface - Status: Draft - Created: 2017-11-09 - +--- +EIP: 758 +Title: Subscriptions and filters for transaction return data +Author: Jack Peterson +Type: Standard Track +Category: Interface +Status: Draft +Created: 2017-11-09 +--- ## Simple Summary Provide a way for external callers to access the return data of functions executed during Ethereum transactions. diff --git a/EIPS/eip-779.md b/EIPS/eip-779.md index 08568a51d2ddf2..0b90a5213603b8 100644 --- a/EIPS/eip-779.md +++ b/EIPS/eip-779.md @@ -1,11 +1,11 @@ -## Preamble - - EIP: 779 - Title: Hardfork Info: DAO Fork - Author: Casey Detrio - Type: Informational - Status: Final - Created: 2017-11-26 +--- +EIP: 779 +Title: Hardfork Info: DAO Fork +Author: Casey Detrio +Type: Informational +Status: Final +Created: 2017-11-26 +--- ## Abstract @@ -22,7 +22,7 @@ See references [1] and [2] for the original, full specification. It is summarize At block 1880000, the following accounts are encoded into a list `L`: * The DAO (`0xbb9bc244d798123fde783fcc1c72d3bb8c189413`) * its extraBalance (`0x807640a13483f8ac783c557fcdf27be11ea4ac7a`) -* all children of the DAO creator (`0x4a574510c7014e4ae985403536074abe582adfc8`) +* all children of the DAO creator (`0x4a574510c7014e4ae985403536074abe582adfc8`) * and the extraBalance of each child At the beginning of block 1920000, all ether throughout all accounts in `L` will be transferred to a contract deployed at `0xbf4ed7b27f1d666546e30d74d50d173d20bca754`. The contract was created from the following Solidity code (compiler version `v0.3.5-2016-07-01-48238c9`): diff --git a/EIPS/eip-8.md b/EIPS/eip-8.md index 11e8efcfa4d057..58db0a0899f068 100644 --- a/EIPS/eip-8.md +++ b/EIPS/eip-8.md @@ -1,12 +1,12 @@ -### Title - - EIP: 8 - Title: devp2p Forward Compatibility Requirements for Homestead - Author: Felix Lange - Status: Final - Type: Standards Track - Layer: Networking - Created: 2015-12-18 +--- +EIP: 8 +Title: devp2p Forward Compatibility Requirements for Homestead +Author: Felix Lange +Status: Final +Type: Standards Track +Layer: Networking +Created: 2015-12-18 +--- ### Abstract diff --git a/EIPS/eip-801.md b/EIPS/eip-801.md index 0862d6916aeab9..adf8e557e65633 100644 --- a/EIPS/eip-801.md +++ b/EIPS/eip-801.md @@ -1,13 +1,12 @@ -## Preamble - - EIP: 801 - Title: ERC-801 Canary Standard - Author: ligi - Type: Standard - Category: ERC - Status: Draft - Created: 2017-12-16 - +--- +EIP: 801 +Title: ERC-801 Canary Standard +Author: ligi +Type: Standard +Category: ERC +Status: Draft +Created: 2017-12-16 +--- ## Simple Summary diff --git a/EIPS/eip-831.md b/EIPS/eip-831.md index 4196a550eafc92..7cc0dde11ea2c7 100644 --- a/EIPS/eip-831.md +++ b/EIPS/eip-831.md @@ -1,12 +1,12 @@ -## Preamble - - EIP: 831 - Title: URL Format for Ethereum - Author: ligi - Type: Standard Track - Category: ERC - Status: Draft - Created: 2018-01-15 +--- +EIP: 831 +Title: URL Format for Ethereum +Author: ligi +Type: Standard Track +Category: ERC +Status: Draft +Created: 2018-01-15 +--- ## Simple Summary diff --git a/EIPS/eip-858.md b/EIPS/eip-858.md index e111e4acb8bb64..4698879d9eaa91 100644 --- a/EIPS/eip-858.md +++ b/EIPS/eip-858.md @@ -1,12 +1,12 @@ -## Preamble - - EIP: 858 - Title: Reduce block reward - Author: Carl Larson - Type: Standard Track - Category: Core - Status: Draft - Created: 2018-01-29 +--- +EIP: 858 +Title: Reduce block reward +Author: Carl Larson +Type: Standard Track +Category: Core +Status: Draft +Created: 2018-01-29 +--- ## Simple Summary Reduce the block reward to 1 ETH. diff --git a/EIPS/eip-868.md b/EIPS/eip-868.md index 33fc329a3d616e..e3f3ce08c726c7 100644 --- a/EIPS/eip-868.md +++ b/EIPS/eip-868.md @@ -1,13 +1,13 @@ -# Preamble - - EIP: 868 - Title: Node Discovery v4 ENR Extension - Author: Felix Lange - Type: Standard Track - Category: Networking - Status: Draft - Created: 2018-02-02 - Requires: EIP-8, EIP-778 +--- +EIP: 868 +Title: Node Discovery v4 ENR Extension +Author: Felix Lange +Type: Standard Track +Category: Networking +Status: Draft +Created: 2018-02-02 +Requires: EIP-8, EIP-778 +--- # Abstract @@ -40,7 +40,7 @@ other existing packets, i.e. no reply should be sent if it refers to a time in t RLP: `[ requestHash, ENR ]` -This packet is the response to enrRequest. +This packet is the response to enrRequest. - `requestHash` is the hash of the entire enrRequest packet being replied to. - `ENR` is the node record. @@ -51,4 +51,3 @@ sent enrResponse. # Copyright Copyright and related rights waived via CC0. - From 937d80bcd145feabc40ce2a04e136e9f7e0cbe19 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Tue, 20 Mar 2018 15:11:35 +0000 Subject: [PATCH 02/28] First attempt at an autogenerated jekyll listing of EIPs --- .gitignore | 3 +++ 404.html | 24 ++++++++++++++++++++++++ Gemfile | 30 ++++++++++++++++++++++++++++++ _config.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++ index.html | 23 +++++++++++++++++++++++ 5 files changed, 125 insertions(+) create mode 100644 .gitignore create mode 100644 404.html create mode 100644 Gemfile create mode 100644 _config.yml create mode 100644 index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000000000..45c150536e5f38 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +_site +.sass-cache +.jekyll-metadata diff --git a/404.html b/404.html new file mode 100644 index 00000000000000..c472b4ea0a7810 --- /dev/null +++ b/404.html @@ -0,0 +1,24 @@ +--- +layout: default +--- + + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000000000..6d3120f1ff7768 --- /dev/null +++ b/Gemfile @@ -0,0 +1,30 @@ +source "https://rubygems.org" + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +gem "jekyll", "~> 3.7.3" + +# This is the default theme for new Jekyll sites. You may change this to anything you like. +gem "minima", "~> 2.0" + +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +# gem "github-pages", group: :jekyll_plugins + +# If you have any plugins, put them here! +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.6" +end + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.0" if Gem.win_platform? + diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000000000..47ea44963ea092 --- /dev/null +++ b/_config.yml @@ -0,0 +1,45 @@ +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole blog, values +# which you are expected to set up once and rarely edit after that. If you find +# yourself editing this file very often, consider using Jekyll's data files +# feature for the data you need to update frequently. +# +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'bundle exec jekyll serve'. If you change this file, please restart the server process. + +# Site settings +# These are used to personalize your new site. If you look in the HTML files, +# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. +# You can create any custom variable you would like, and they will be accessible +# in the templates via {{ site.myvariable }}. +title: Ethereum EIPs by status +email: your-email@example.com +description: >- # this means to ignore newlines until "baseurl:" + Write an awesome description for your new site here. You can edit this + line in _config.yml. It will appear in your document head meta (for + Google search results) and in your feed.xml site description. +baseurl: "/EIPs" # the subpath of your site, e.g. /blog +url: "" # the base hostname & protocol for your site, e.g. http://example.com +twitter_username: jekyllrb +github_username: jekyll +header_pages: + - index.html + +# Build settings +markdown: kramdown +theme: minima +plugins: + - jekyll-feed + +# Exclude from processing. +# The following items will not be processed, by default. Create a custom list +# to override the default setting. +# exclude: +# - Gemfile +# - Gemfile.lock +# - node_modules +# - vendor/bundle/ +# - vendor/cache/ +# - vendor/gems/ +# - vendor/ruby/ diff --git a/index.html b/index.html new file mode 100644 index 00000000000000..073b7d5c728a94 --- /dev/null +++ b/index.html @@ -0,0 +1,23 @@ +--- +# You don't need to edit this file, it's empty on purpose. +# Edit theme's home layout instead if you wanna make some changes +# See: https://jekyllrb.com/docs/themes/#overriding-theme-defaults +layout: home +--- + +{% assign statuses = site.pages|map:"Status"|uniq %} +{% for status in statuses %} + {% if status != undefined %} +

{{status}}

+ + + + + {% for page in site.pages %} + {% if page.Status == status %} + + {% endif %} + {% endfor %} +
NumberTitleAuthorLayer
{{page.EIP}}{{page.Title}}{{page.Author}}{{page.Layer}}
+ {% endif %} +{% endfor %} From 01feced23ec3dd63fb61706f921c230291c54332 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Tue, 20 Mar 2018 15:25:15 +0000 Subject: [PATCH 03/28] Added links to EIP pages --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 073b7d5c728a94..74ed3363c69b44 100644 --- a/index.html +++ b/index.html @@ -15,7 +15,7 @@

{{status}}

{% for page in site.pages %} {% if page.Status == status %} - {{page.EIP}}{{page.Title}}{{page.Author}}{{page.Layer}} +
{{page.EIP}}{{page.Title}}{{page.Author}}{{page.Layer}} {% endif %} {% endfor %} From a4e8b8643d2b5756b1550f78e2957ffc0cfd8a5f Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Tue, 20 Mar 2018 15:54:04 +0000 Subject: [PATCH 04/28] Fix typos in EIPs --- EIPS/eip-211.md | 4 ++-- EIPS/eip-606.md | 2 +- EIPS/eip-607.md | 2 +- EIPS/eip-608.md | 2 +- EIPS/eip-609.md | 2 +- EIPS/eip-658.md | 2 +- EIPS/eip-695.md | 2 +- EIPS/eip-721.md | 2 +- EIPS/eip-779.md | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/EIPS/eip-211.md b/EIPS/eip-211.md index 9fa4c7f2ee83d1..64f08ac140bc66 100644 --- a/EIPS/eip-211.md +++ b/EIPS/eip-211.md @@ -1,9 +1,9 @@ --- EIP: 211 -Title: New opcodes: RETURNDATASIZE and RETURNDATACOPY +Title: "New opcodes: RETURNDATASIZE and RETURNDATACOPY" Author: Christian Reitwiessner Type: Standard Track -Category Core +Category: Core Status: Final Created: 2017-02-13 Requires: diff --git a/EIPS/eip-606.md b/EIPS/eip-606.md index 71f17e844b0c19..d4b241487e42a9 100644 --- a/EIPS/eip-606.md +++ b/EIPS/eip-606.md @@ -1,6 +1,6 @@ --- EIP: 606 -Title: Hardfork Meta: Homestead +Title: "Hardfork Meta: Homestead" Author: Alex Beregszaszi Type: Meta Status: Final diff --git a/EIPS/eip-607.md b/EIPS/eip-607.md index 3247bd260a1be6..0459e36d0c4ea6 100644 --- a/EIPS/eip-607.md +++ b/EIPS/eip-607.md @@ -1,6 +1,6 @@ --- EIP: 607 -Title: Hardfork Meta: Spurious Dragon +Title: "Hardfork Meta: Spurious Dragon" Author: Alex Beregszaszi Type: Meta Status: Final diff --git a/EIPS/eip-608.md b/EIPS/eip-608.md index 9cf88d993a922c..9dc39965c22d08 100644 --- a/EIPS/eip-608.md +++ b/EIPS/eip-608.md @@ -1,6 +1,6 @@ --- EIP: 608 -Title: Hardfork Meta: Tangerine Whistle +Title: "Hardfork Meta: Tangerine Whistle" Author: Alex Beregszaszi Type: Meta Status: Final diff --git a/EIPS/eip-609.md b/EIPS/eip-609.md index d805dc596634b9..8e8f7ea93815d5 100644 --- a/EIPS/eip-609.md +++ b/EIPS/eip-609.md @@ -1,6 +1,6 @@ --- EIP: 609 -Title: Hardfork Meta: Byzantium +Title: "Hardfork Meta: Byzantium" Author: Alex Beregszaszi Type: Standard Track Category: Core diff --git a/EIPS/eip-658.md b/EIPS/eip-658.md index 782832dc4eaea4..c48878540c1423 100644 --- a/EIPS/eip-658.md +++ b/EIPS/eip-658.md @@ -3,7 +3,7 @@ EIP: 658 Title: Embedding transaction status code in receipts Author: Nick Johnson Type: Standard Track -Category Core +Category: Core Status: Final Created: 2017-06-30 Requires: 140 diff --git a/EIPS/eip-695.md b/EIPS/eip-695.md index 02ace809474d74..170fd3fd1d85bd 100644 --- a/EIPS/eip-695.md +++ b/EIPS/eip-695.md @@ -1,7 +1,7 @@ --- EIP: 695 Title: Create `eth_chainId` method for JSON-RPC -Author: Isaac Ardis: isaac.ardis@gmail.com, Wei Tang: hi@that.world, [@tcz001](https://github.com/tcz001) +Author: Isaac Ardis Wei Tang , @tcz001 Type: Standard Track Category: Interface Status: Draft diff --git a/EIPS/eip-721.md b/EIPS/eip-721.md index 55626a1f986a43..3c416381cf1efa 100644 --- a/EIPS/eip-721.md +++ b/EIPS/eip-721.md @@ -3,7 +3,7 @@ EIP: 721 Title: ERC-721 Non-Fungible Token Standard Author: William Entriken , Dieter Shirley , Jacob Evans , Nastassia Sachs Type: Standard -Category ERC +Category: ERC Status: Draft Created: 2018-01-24 Requires: ERC-165 diff --git a/EIPS/eip-779.md b/EIPS/eip-779.md index 0b90a5213603b8..e5a62093763c72 100644 --- a/EIPS/eip-779.md +++ b/EIPS/eip-779.md @@ -1,6 +1,6 @@ --- EIP: 779 -Title: Hardfork Info: DAO Fork +Title: "Hardfork Info: DAO Fork" Author: Casey Detrio Type: Informational Status: Final From b5f78310492e86860b77825acf3e1ea9ef59352a Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Tue, 20 Mar 2018 16:08:01 +0000 Subject: [PATCH 05/28] Sort EIPs by number --- index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 74ed3363c69b44..04985fa3970173 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,7 @@ --- {% assign statuses = site.pages|map:"Status"|uniq %} +{% assign pages = site.pages|sort:"EIP" %} {% for status in statuses %} {% if status != undefined %}

{{status}}

@@ -13,7 +14,7 @@

{{status}}

NumberTitleAuthorLayer - {% for page in site.pages %} + {% for page in pages %} {% if page.Status == status %} {{page.EIP}}{{page.Title}}{{page.Author}}{{page.Layer}} {% endif %} From 806ccbd6a3f05aae4e9d6715bd2079145d91d0ca Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Tue, 20 Mar 2018 16:10:22 +0000 Subject: [PATCH 06/28] Escape table entries correctly --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 04985fa3970173..d168acd02e716c 100644 --- a/index.html +++ b/index.html @@ -16,7 +16,7 @@

{{status}}

{% for page in pages %} {% if page.Status == status %} - {{page.EIP}}{{page.Title}}{{page.Author}}{{page.Layer}} + {{page.EIP}}{{page.Title|xml_escape}}{{page.Author|xml_escape}}{{page.Layer|xml_escape}} {% endif %} {% endfor %} From 73c538d2552aab999c348b4a9b83b5d4294d3cac Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 12:37:47 +0000 Subject: [PATCH 07/28] Use github pages gem --- Gemfile | 4 +- Gemfile.lock | 247 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 249 insertions(+), 2 deletions(-) create mode 100644 Gemfile.lock diff --git a/Gemfile b/Gemfile index 6d3120f1ff7768..b566d37debead1 100644 --- a/Gemfile +++ b/Gemfile @@ -8,7 +8,7 @@ source "https://rubygems.org" # # This will help ensure the proper Jekyll version is running. # Happy Jekylling! -gem "jekyll", "~> 3.7.3" +gem "jekyll", "~> 3.6.2" # This is the default theme for new Jekyll sites. You may change this to anything you like. gem "minima", "~> 2.0" @@ -20,6 +20,7 @@ gem "minima", "~> 2.0" # If you have any plugins, put them here! group :jekyll_plugins do gem "jekyll-feed", "~> 0.6" + gem "github-pages" end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem @@ -27,4 +28,3 @@ gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] # Performance-booster for watching directories on Windows gem "wdm", "~> 0.1.0" if Gem.win_platform? - diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000000000..3461dd09e17ab9 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,247 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.9) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.17.9) + ruby-enum (~> 0.5) + concurrent-ruby (1.0.5) + ethon (0.11.0) + ffi (>= 1.3.0) + execjs (2.7.0) + faraday (0.14.0) + multipart-post (>= 1.2, < 3) + ffi (1.9.23) + forwardable-extended (2.6.0) + gemoji (3.0.0) + github-pages (179) + activesupport (= 4.2.9) + github-pages-health-check (= 1.4.0) + jekyll (= 3.6.2) + jekyll-avatar (= 0.5.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.5) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.9.3) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.9.4) + jekyll-mentions (= 1.3.0) + jekyll-optional-front-matter (= 0.3.0) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.2.0) + jekyll-redirect-from (= 0.13.0) + jekyll-relative-links (= 0.5.3) + jekyll-remote-theme (= 0.2.3) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.4.0) + jekyll-sitemap (= 1.2.0) + jekyll-swiss (= 0.4.0) + jekyll-theme-architect (= 0.1.0) + jekyll-theme-cayman (= 0.1.0) + jekyll-theme-dinky (= 0.1.0) + jekyll-theme-hacker (= 0.1.0) + jekyll-theme-leap-day (= 0.1.0) + jekyll-theme-merlot (= 0.1.0) + jekyll-theme-midnight (= 0.1.0) + jekyll-theme-minimal (= 0.1.0) + jekyll-theme-modernist (= 0.1.0) + jekyll-theme-primer (= 0.5.2) + jekyll-theme-slate (= 0.1.0) + jekyll-theme-tactile (= 0.1.0) + jekyll-theme-time-machine (= 0.1.0) + jekyll-titles-from-headings (= 0.5.1) + jemoji (= 0.9.0) + kramdown (= 1.16.2) + liquid (= 4.0.0) + listen (= 3.1.5) + mercenary (~> 0.3) + minima (= 2.4.0) + nokogiri (>= 1.8.1, < 2.0) + rouge (= 2.2.1) + terminal-table (~> 1.4) + github-pages-health-check (1.4.0) + addressable (~> 2.3) + net-dns (~> 0.8) + octokit (~> 4.0) + public_suffix (~> 2.0) + typhoeus (~> 1.3) + html-pipeline (2.7.1) + activesupport (>= 2) + nokogiri (>= 1.4) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.6.2) + addressable (~> 2.4) + colorator (~> 1.0) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 1.1) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 3) + safe_yaml (~> 1.0) + jekyll-avatar (0.5.0) + jekyll (~> 3.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.1.0) + commonmarker (~> 0.14) + jekyll (>= 3.0, < 4.0) + jekyll-commonmark-ghpages (0.1.5) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1) + rouge (~> 2) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.9.3) + jekyll (~> 3.3) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.9.4) + jekyll (~> 3.1) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.3.0) + activesupport (~> 4.0) + html-pipeline (~> 2.3) + jekyll (~> 3.0) + jekyll-optional-front-matter (0.3.0) + jekyll (~> 3.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.2.0) + jekyll (~> 3.0) + jekyll-redirect-from (0.13.0) + jekyll (~> 3.3) + jekyll-relative-links (0.5.3) + jekyll (~> 3.3) + jekyll-remote-theme (0.2.3) + jekyll (~> 3.5) + rubyzip (>= 1.2.1, < 3.0) + typhoeus (>= 0.7, < 2.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.4.0) + jekyll (~> 3.3) + jekyll-sitemap (1.2.0) + jekyll (~> 3.3) + jekyll-swiss (0.4.0) + jekyll-theme-architect (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.2) + jekyll (~> 3.5) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.2) + jekyll-theme-slate (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.0) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.1) + jekyll (~> 3.3) + jekyll-watch (1.5.1) + listen (~> 3.0) + jemoji (0.9.0) + activesupport (~> 4.0, >= 4.2.9) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (~> 3.0) + kramdown (1.16.2) + liquid (4.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + mercenary (0.3.6) + mini_portile2 (2.3.0) + minima (2.4.0) + jekyll (~> 3.5) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.11.3) + multipart-post (2.0.0) + net-dns (0.8.0) + nokogiri (1.8.2) + mini_portile2 (~> 2.3.0) + octokit (4.8.0) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.1) + forwardable-extended (~> 2.6) + public_suffix (2.0.5) + rb-fsevent (0.10.3) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + rouge (2.2.1) + ruby-enum (0.7.2) + i18n + ruby_dep (1.5.0) + rubyzip (1.2.1) + safe_yaml (1.0.4) + sass (3.5.5) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + typhoeus (1.3.0) + ethon (>= 0.9.0) + tzinfo (1.2.5) + thread_safe (~> 0.1) + unicode-display_width (1.3.0) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages + jekyll (~> 3.6.2) + jekyll-feed (~> 0.6) + minima (~> 2.0) + tzinfo-data + +BUNDLED WITH + 1.16.1 From 04e50bfcf5a1bbbe548f1849728dcbbc1c6fa308 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 12:39:25 +0000 Subject: [PATCH 08/28] Experiment with resetting base path --- _config.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/_config.yml b/_config.yml index 47ea44963ea092..3f0fd40c9b5eb1 100644 --- a/_config.yml +++ b/_config.yml @@ -14,15 +14,14 @@ # You can create any custom variable you would like, and they will be accessible # in the templates via {{ site.myvariable }}. title: Ethereum EIPs by status -email: your-email@example.com +email: nick@ethereum.org description: >- # this means to ignore newlines until "baseurl:" Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description. -baseurl: "/EIPs" # the subpath of your site, e.g. /blog url: "" # the base hostname & protocol for your site, e.g. http://example.com -twitter_username: jekyllrb -github_username: jekyll +twitter_username: ethereum +github_username: ethereum header_pages: - index.html From e3e2797901e4f3a9e744916c8d97d910a321d26f Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 12:46:05 +0000 Subject: [PATCH 09/28] Use default template for EIPs --- _config.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/_config.yml b/_config.yml index 3f0fd40c9b5eb1..0ad1ea75ec16f8 100644 --- a/_config.yml +++ b/_config.yml @@ -31,6 +31,13 @@ theme: minima plugins: - jekyll-feed +defaults: + - + scope: + path: "EIPS" + values: + layout: "default" + # Exclude from processing. # The following items will not be processed, by default. Create a custom list # to override the default setting. From 4938bcbf911f1175ccf0a28aaaf7154b7b796105 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 12:51:05 +0000 Subject: [PATCH 10/28] Lowercase all frontmatter keys --- EIPS/eip-1.md | 12 ++++++------ EIPS/eip-100.md | 14 +++++++------- EIPS/eip-101.md | 12 ++++++------ EIPS/eip-107.md | 14 +++++++------- EIPS/eip-137.md | 14 +++++++------- EIPS/eip-140.md | 14 +++++++------- EIPS/eip-141.md | 14 +++++++------- EIPS/eip-145.md | 14 +++++++------- EIPS/eip-150.md | 14 +++++++------- EIPS/eip-155.md | 14 +++++++------- EIPS/eip-158.md | 14 +++++++------- EIPS/eip-160.md | 14 +++++++------- EIPS/eip-161.md | 14 +++++++------- EIPS/eip-162.md | 14 +++++++------- EIPS/eip-165.md | 14 +++++++------- EIPS/eip-170.md | 14 +++++++------- EIPS/eip-181.md | 14 +++++++------- EIPS/eip-190.md | 12 ++++++------ EIPS/eip-196.md | 14 +++++++------- EIPS/eip-197.md | 14 +++++++------- EIPS/eip-2.md | 14 +++++++------- EIPS/eip-20.md | 14 +++++++------- EIPS/eip-211.md | 14 +++++++------- EIPS/eip-214.md | 14 +++++++------- EIPS/eip-234.md | 14 +++++++------- EIPS/eip-3.md | 14 +++++++------- EIPS/eip-4.md | 14 +++++++------- EIPS/eip-5.md | 14 +++++++------- EIPS/eip-55.md | 14 +++++++------- EIPS/eip-6.md | 14 +++++++------- EIPS/eip-606.md | 12 ++++++------ EIPS/eip-607.md | 12 ++++++------ EIPS/eip-608.md | 12 ++++++------ EIPS/eip-609.md | 14 +++++++------- EIPS/eip-615.md | 12 ++++++------ EIPS/eip-616.md | 14 +++++++------- EIPS/eip-649.md | 12 ++++++------ EIPS/eip-658.md | 14 +++++++------- EIPS/eip-681.md | 14 +++++++------- EIPS/eip-695.md | 14 +++++++------- EIPS/eip-7.md | 12 ++++++------ EIPS/eip-706.md | 14 +++++++------- EIPS/eip-721.md | 14 +++++++------- EIPS/eip-758.md | 14 +++++++------- EIPS/eip-779.md | 12 ++++++------ EIPS/eip-8.md | 14 +++++++------- EIPS/eip-801.md | 14 +++++++------- EIPS/eip-831.md | 14 +++++++------- EIPS/eip-858.md | 14 +++++++------- EIPS/eip-868.md | 14 +++++++------- index.html | 8 ++++---- 51 files changed, 344 insertions(+), 344 deletions(-) diff --git a/EIPS/eip-1.md b/EIPS/eip-1.md index 8b2fd892e41708..b997aec1b48ccb 100644 --- a/EIPS/eip-1.md +++ b/EIPS/eip-1.md @@ -1,10 +1,10 @@ --- -EIP: 1 -Title: EIP Purpose and Guidelines -Status: Active -Type: Meta -Author: Martin Becze , Hudson Jameson -Created: 2015-10-27, 2017-02-01 +eip: 1 +title: EIP Purpose and Guidelines +status: Active +type: Meta +author: Martin Becze , Hudson Jameson +created: 2015-10-27, 2017-02-01 --- What is an EIP? diff --git a/EIPS/eip-100.md b/EIPS/eip-100.md index 61961def0a6cda..3ea24a7f62ee5f 100644 --- a/EIPS/eip-100.md +++ b/EIPS/eip-100.md @@ -1,11 +1,11 @@ --- -EIP: 100 -Title: Change difficulty adjustment to target mean block time including uncles -Author: Vitalik Buterin -Type: Standard Track -Category: Core -Status: Final -Created: 2016-04-28 +eip: 100 +title: Change difficulty adjustment to target mean block time including uncles +author: Vitalik Buterin +type: Standard Track +category: Core +status: Final +created: 2016-04-28 --- ### Specification diff --git a/EIPS/eip-101.md b/EIPS/eip-101.md index 4ad6cff4bb7460..47aa1591da1114 100644 --- a/EIPS/eip-101.md +++ b/EIPS/eip-101.md @@ -1,10 +1,10 @@ --- -EIP: 101 -Title: Serenity Currency and Crypto Abstraction -Author: Vitalik Buterin -Status: Active -Type: Serenity feature -Created: 2015-11-15 +eip: 101 +title: Serenity Currency and Crypto Abstraction +author: Vitalik Buterin +status: Active +type: Serenity feature +created: 2015-11-15 --- ### Specification diff --git a/EIPS/eip-107.md b/EIPS/eip-107.md index 5e3ab179297a33..d9a1beff3dc903 100644 --- a/EIPS/eip-107.md +++ b/EIPS/eip-107.md @@ -1,11 +1,11 @@ --- -EIP: 107 -Title: safe "eth_sendTransaction" authorization via html popup -Author: Ronan Sandford -Created: 2016-06-05 -Status: Draft -Type: Standard -Category: Interface +eip: 107 +title: safe "eth_sendTransaction" authorization via html popup +author: Ronan Sandford +created: 2016-06-05 +status: Draft +type: Standard +category: Interface --- Abstract diff --git a/EIPS/eip-137.md b/EIPS/eip-137.md index e81ab076504d1a..0dec0340131736 100644 --- a/EIPS/eip-137.md +++ b/EIPS/eip-137.md @@ -1,11 +1,11 @@ --- -EIP: 137 -Title: Ethereum Domain Name Service - Specification -Author: Nick Johnson -Status: Final -Type: Standards Track -Category: ERC -Created: 2016-04-04 +eip: 137 +title: Ethereum Domain Name Service - Specification +author: Nick Johnson +status: Final +type: Standards Track +category: ERC +created: 2016-04-04 --- # Abstract diff --git a/EIPS/eip-140.md b/EIPS/eip-140.md index 964870323d1ff7..7c2af3952e13a0 100644 --- a/EIPS/eip-140.md +++ b/EIPS/eip-140.md @@ -1,11 +1,11 @@ --- -EIP: 140 -Title: REVERT instruction -Author: Alex Beregszaszi, Nikolai Mushegian (nikolai@nexusdev.us) -Type: Standard Track -Category: Core -Status: Final -Created: 2017-02-06 +eip: 140 +title: REVERT instruction +author: Alex Beregszaszi, Nikolai Mushegian (nikolai@nexusdev.us) +type: Standard Track +category: Core +status: Final +created: 2017-02-06 --- ## Simple Summary diff --git a/EIPS/eip-141.md b/EIPS/eip-141.md index 7794ff3e9a253c..2cc57d11bf4d45 100644 --- a/EIPS/eip-141.md +++ b/EIPS/eip-141.md @@ -1,11 +1,11 @@ --- -EIP: 141 -Title: Designated invalid EVM instruction -Author: Alex Beregszaszi -Type: Standard Track -Category: Core -Status: Final -Created: 2017-02-09 +eip: 141 +title: Designated invalid EVM instruction +author: Alex Beregszaszi +type: Standard Track +category: Core +status: Final +created: 2017-02-09 --- ## Abstract diff --git a/EIPS/eip-145.md b/EIPS/eip-145.md index 20849c3e2d28f9..15e41ebc33047b 100644 --- a/EIPS/eip-145.md +++ b/EIPS/eip-145.md @@ -1,11 +1,11 @@ --- -EIP: 145 -Title: Bitwise shifting instructions in EVM -Author: Alex Beregszaszi, Paweł Bylica -Type: Standard Track -Category: Core -Status: Final -Created: 2017-02-13 +eip: 145 +title: Bitwise shifting instructions in EVM +author: Alex Beregszaszi, Paweł Bylica +type: Standard Track +category: Core +status: Final +created: 2017-02-13 --- ## Simple Summary diff --git a/EIPS/eip-150.md b/EIPS/eip-150.md index a6414f29e0f42f..dfac0de091bccf 100644 --- a/EIPS/eip-150.md +++ b/EIPS/eip-150.md @@ -1,11 +1,11 @@ --- -EIP: 150 -Title: Gas cost changes for IO-heavy operations -Author: Vitalik Buterin -Type: Standard Track -Category: Core -Status: Final -Created: 2016-09-24 +eip: 150 +title: Gas cost changes for IO-heavy operations +author: Vitalik Buterin +type: Standard Track +category: Core +status: Final +created: 2016-09-24 --- ### Meta reference diff --git a/EIPS/eip-155.md b/EIPS/eip-155.md index 28bfa32268efb8..e2195cb9d14fdc 100644 --- a/EIPS/eip-155.md +++ b/EIPS/eip-155.md @@ -1,11 +1,11 @@ --- -EIP: 155 -Title: Simple replay attack protection -Author: Vitalik Buterin -Type: Standard Track -Category: Core -Status: Final -Created: 2016-10-14 +eip: 155 +title: Simple replay attack protection +author: Vitalik Buterin +type: Standard Track +category: Core +status: Final +created: 2016-10-14 --- ### Hard fork diff --git a/EIPS/eip-158.md b/EIPS/eip-158.md index a7bd99a7db3242..5b1f13c3829eb3 100644 --- a/EIPS/eip-158.md +++ b/EIPS/eip-158.md @@ -1,11 +1,11 @@ --- -EIP: 158 -Title: State clearing -Author: Vitalik Buterin -Type: Standard Track -Category: Core -Status: Superseded -Created: 2016-10-16 +eip: 158 +title: State clearing +author: Vitalik Buterin +type: Standard Track +category: Core +status: Superseded +created: 2016-10-16 Superseded-By: 161 --- diff --git a/EIPS/eip-160.md b/EIPS/eip-160.md index 68892eb65dfbb3..9fb35d71b2887e 100644 --- a/EIPS/eip-160.md +++ b/EIPS/eip-160.md @@ -1,11 +1,11 @@ --- -EIP: 160 -Title: EXP cost increase -Author: Vitalik Buterin -Type: Standard Track -Category: Core -Status: Final -Created: 2016-10-20 +eip: 160 +title: EXP cost increase +author: Vitalik Buterin +type: Standard Track +category: Core +status: Final +created: 2016-10-20 --- ### Hard fork diff --git a/EIPS/eip-161.md b/EIPS/eip-161.md index d8f7ca959bb38a..2be4c6658033f4 100644 --- a/EIPS/eip-161.md +++ b/EIPS/eip-161.md @@ -1,11 +1,11 @@ --- -EIP: 161 -Title: State trie clearing (invariant-preserving alternative) -Author: Gavin Wood -Type: Standard Track -Category: Core -Status: Final -Created: 2016-10-24 +eip: 161 +title: State trie clearing (invariant-preserving alternative) +author: Gavin Wood +type: Standard Track +category: Core +status: Final +created: 2016-10-24 --- ### Hard fork diff --git a/EIPS/eip-162.md b/EIPS/eip-162.md index 03c57539f40d37..2edda6a9bcf6f2 100644 --- a/EIPS/eip-162.md +++ b/EIPS/eip-162.md @@ -1,11 +1,11 @@ --- -EIP: 162 -Title: Initial ENS Hash Registrar -Author: Maurelian and Nick Johnson -Status: Final -Type: Standards Track -Category: ERC -Created: 2016-10-25 +eip: 162 +title: Initial ENS Hash Registrar +author: Maurelian and Nick Johnson +status: Final +type: Standards Track +category: ERC +created: 2016-10-25 --- ## Contents diff --git a/EIPS/eip-165.md b/EIPS/eip-165.md index 98b1962ebbea37..0b3f8574c09cd1 100644 --- a/EIPS/eip-165.md +++ b/EIPS/eip-165.md @@ -1,11 +1,11 @@ --- -EIP: 165 -Title: ERC-165 Standard Interface Detection -Author: Christian Reitwießner , Nick Johnson , Fabian Vogelsteller , Jordi Baylina , Konrad Feldmeier , William Entriken -Type: Standard Track -Category: ERC -Status: Draft -Created: 2018-01-23 +eip: 165 +title: ERC-165 Standard Interface Detection +author: Christian Reitwießner , Nick Johnson , Fabian Vogelsteller , Jordi Baylina , Konrad Feldmeier , William Entriken +type: Standard Track +category: ERC +status: Draft +created: 2018-01-23 --- ## Simple Summary diff --git a/EIPS/eip-170.md b/EIPS/eip-170.md index 4ef64d012d204a..feda849b231708 100644 --- a/EIPS/eip-170.md +++ b/EIPS/eip-170.md @@ -1,11 +1,11 @@ --- -EIP: 170 -Title: Contract code size limit -Author: Vitalik Buterin -Type: Standard Track -Category: Core -Status: Final -Created: 2016-11-04 +eip: 170 +title: Contract code size limit +author: Vitalik Buterin +type: Standard Track +category: Core +status: Final +created: 2016-11-04 --- ### Hard fork diff --git a/EIPS/eip-181.md b/EIPS/eip-181.md index 2615f6dbc3c7da..a68f8120f397bb 100644 --- a/EIPS/eip-181.md +++ b/EIPS/eip-181.md @@ -1,11 +1,11 @@ --- -EIP: 181 -Title: ENS support for reverse resolution of Ethereum addresses -Author: Nick Johnson -Status: Final -Type: Standard Track -Category: ERC -Created: 2016-12-01 +eip: 181 +title: ENS support for reverse resolution of Ethereum addresses +author: Nick Johnson +status: Final +type: Standard Track +category: ERC +created: 2016-12-01 --- # Abstract diff --git a/EIPS/eip-190.md b/EIPS/eip-190.md index 07e51f97eedbf6..dd0da07e812e85 100644 --- a/EIPS/eip-190.md +++ b/EIPS/eip-190.md @@ -1,11 +1,11 @@ --- -EIP: 190 -Title: Ethereum Smart Contract Packaging Standard +eip: 190 +title: Ethereum Smart Contract Packaging Standard Authors: Piper Merriam, Tim Coulter, Denis Erfurt (mhhf), RJ Catalano (VoR0220), Iuri Matias (iurimatias) -Status: Final -Type: Standards Track -Category: ERC -Created: 2017-01-10 +status: Final +type: Standards Track +category: ERC +created: 2017-01-10 --- # Abstract diff --git a/EIPS/eip-196.md b/EIPS/eip-196.md index f9e045d48b9694..7feaf17261603a 100644 --- a/EIPS/eip-196.md +++ b/EIPS/eip-196.md @@ -1,12 +1,12 @@ --- -EIP: 196 -Title: Precompiled contracts for addition and scalar multiplication +eip: 196 +title: Precompiled contracts for addition and scalar multiplication on the elliptic curve alt_bn128 -Author: Christian Reitwiessner -Type: Standard Track -Category: Core -Status: Final -Created: 2017-02-02 +author: Christian Reitwiessner +type: Standard Track +category: Core +status: Final +created: 2017-02-02 --- ## Simple Summary diff --git a/EIPS/eip-197.md b/EIPS/eip-197.md index df993abe69d5e3..827e5385d20a0b 100644 --- a/EIPS/eip-197.md +++ b/EIPS/eip-197.md @@ -1,12 +1,12 @@ --- -EIP: 197 -Title: Precompiled contracts for optimal ate pairing check +eip: 197 +title: Precompiled contracts for optimal ate pairing check on the elliptic curve alt_bn128 -Author: Vitalik Buterin , Christian Reitwiessner -Type: Standard Track -Category: Core -Status: Final -Created: 2017-02-06 +author: Vitalik Buterin , Christian Reitwiessner +type: Standard Track +category: Core +status: Final +created: 2017-02-06 --- ## Simple Summary diff --git a/EIPS/eip-2.md b/EIPS/eip-2.md index 0db000e4eb4ab2..673c8ab9415e49 100644 --- a/EIPS/eip-2.md +++ b/EIPS/eip-2.md @@ -1,11 +1,11 @@ --- -EIP: 2 -Title: Homestead Hard-fork Changes -Author: Vitalik Buterin -Status: Final -Type: Standard Track -Category: Core -Created: 2015-11-15 +eip: 2 +title: Homestead Hard-fork Changes +author: Vitalik Buterin +status: Final +type: Standard Track +category: Core +created: 2015-11-15 --- ### Meta reference diff --git a/EIPS/eip-20.md b/EIPS/eip-20.md index dba043f9223ed5..494c1a437eddeb 100644 --- a/EIPS/eip-20.md +++ b/EIPS/eip-20.md @@ -1,11 +1,11 @@ --- -EIP: 20 -Title: ERC-20 Token Standard -Author: Fabian Vogelsteller , Vitalik Buterin -Type: Standard -Category: ERC -Status: Accepted -Created: 2015-11-19 +eip: 20 +title: ERC-20 Token Standard +author: Fabian Vogelsteller , Vitalik Buterin +type: Standard +category: ERC +status: Accepted +created: 2015-11-19 --- ## Simple Summary diff --git a/EIPS/eip-211.md b/EIPS/eip-211.md index 64f08ac140bc66..c2daee4b475b2e 100644 --- a/EIPS/eip-211.md +++ b/EIPS/eip-211.md @@ -1,11 +1,11 @@ --- -EIP: 211 -Title: "New opcodes: RETURNDATASIZE and RETURNDATACOPY" -Author: Christian Reitwiessner -Type: Standard Track -Category: Core -Status: Final -Created: 2017-02-13 +eip: 211 +title: "New opcodes: RETURNDATASIZE and RETURNDATACOPY" +author: Christian Reitwiessner +type: Standard Track +category: Core +status: Final +created: 2017-02-13 Requires: Replaces: 5/8 --- diff --git a/EIPS/eip-214.md b/EIPS/eip-214.md index cbdf7a3094eef6..9b20d39fdde648 100644 --- a/EIPS/eip-214.md +++ b/EIPS/eip-214.md @@ -1,11 +1,11 @@ --- -EIP: 214 -Title: New opcode STATICCALL -Author: Vitalik Buterin , Christian Reitwiessner ; -Type: Standard Track -Category: Core -Status: Final -Created: 2017-02-13 +eip: 214 +title: New opcode STATICCALL +author: Vitalik Buterin , Christian Reitwiessner ; +type: Standard Track +category: Core +status: Final +created: 2017-02-13 --- ## Simple Summary diff --git a/EIPS/eip-234.md b/EIPS/eip-234.md index de1752bbd466b8..6753f700aae984 100644 --- a/EIPS/eip-234.md +++ b/EIPS/eip-234.md @@ -1,11 +1,11 @@ --- -EIP: 234 -Title: Add `blockHash` to JSON-RPC filter options. -Author: Micah Zoltu -Type: Standard Track -Category: Interface -Status: Draft -Created: 2017-03-24 +eip: 234 +title: Add `blockHash` to JSON-RPC filter options. +author: Micah Zoltu +type: Standard Track +category: Interface +status: Draft +created: 2017-03-24 --- ## Simple Summary diff --git a/EIPS/eip-3.md b/EIPS/eip-3.md index de9ae751d0bdb8..5d405f09870eb2 100644 --- a/EIPS/eip-3.md +++ b/EIPS/eip-3.md @@ -1,11 +1,11 @@ --- -EIP: 3 -Title: Addition of CALLDEPTH opcode -Author: Martin Holst Swende -Status: Draft -Type: Standards Track -Layer: Consensus (hard-fork) -Created: 2015-11-19 +eip: 3 +title: Addition of CALLDEPTH opcode +author: Martin Holst Swende +status: Draft +type: Standards Track +layer: Consensus (hard-fork) +created: 2015-11-19 --- # Abstract diff --git a/EIPS/eip-4.md b/EIPS/eip-4.md index 9793b26efb8f85..52e310dbcb7d60 100644 --- a/EIPS/eip-4.md +++ b/EIPS/eip-4.md @@ -1,11 +1,11 @@ --- -EIP: 4 -Layer: Process -Title: EIP Classification -Author: Joseph Chow -Status: Draft -Type: Process -Created: 2015-11-17 +eip: 4 +layer: Process +title: EIP Classification +author: Joseph Chow +status: Draft +type: Process +created: 2015-11-17 --- # Abstract diff --git a/EIPS/eip-5.md b/EIPS/eip-5.md index 9214572a823849..6ec9bff9f8c0b3 100644 --- a/EIPS/eip-5.md +++ b/EIPS/eip-5.md @@ -1,11 +1,11 @@ --- -EIP: 5 -Title: Gas Usage for `RETURN` and `CALL*` -Author: Christian Reitwiessner -Status: Draft -Type: Standards Track -Layer: Consensus (hard-fork) -Created: 2015-11-22 +eip: 5 +title: Gas Usage for `RETURN` and `CALL*` +author: Christian Reitwiessner +status: Draft +type: Standards Track +layer: Consensus (hard-fork) +created: 2015-11-22 --- ### Abstract diff --git a/EIPS/eip-55.md b/EIPS/eip-55.md index 75cf21111e3275..b610fc77421bc2 100644 --- a/EIPS/eip-55.md +++ b/EIPS/eip-55.md @@ -1,11 +1,11 @@ --- -EIP: 55 -Title: Mixed-case checksum address encoding -Author: Vitalik Buterin -Type: Standard Track -Category: ERC -Status: Accepted -Created: 2016-01-14 +eip: 55 +title: Mixed-case checksum address encoding +author: Vitalik Buterin +type: Standard Track +category: ERC +status: Accepted +created: 2016-01-14 --- # Specification diff --git a/EIPS/eip-6.md b/EIPS/eip-6.md index d13bbc0f6e8e03..f42032b5b07b67 100644 --- a/EIPS/eip-6.md +++ b/EIPS/eip-6.md @@ -1,11 +1,11 @@ --- -EIP: 6 -Title: Renaming SUICIDE opcode -Author: Hudson Jameson -Status: Final -Type: Standards Track -Layer: Applications -Created: 2015-11-22 +eip: 6 +title: Renaming SUICIDE opcode +author: Hudson Jameson +status: Final +type: Standards Track +layer: Applications +created: 2015-11-22 --- ### Abstract diff --git a/EIPS/eip-606.md b/EIPS/eip-606.md index d4b241487e42a9..1730738d459203 100644 --- a/EIPS/eip-606.md +++ b/EIPS/eip-606.md @@ -1,10 +1,10 @@ --- -EIP: 606 -Title: "Hardfork Meta: Homestead" -Author: Alex Beregszaszi -Type: Meta -Status: Final -Created: 2017-04-23 +eip: 606 +title: "Hardfork Meta: Homestead" +author: Alex Beregszaszi +type: Meta +status: Final +created: 2017-04-23 Requires: 2, 7 --- diff --git a/EIPS/eip-607.md b/EIPS/eip-607.md index 0459e36d0c4ea6..9e713c0ff7f9a4 100644 --- a/EIPS/eip-607.md +++ b/EIPS/eip-607.md @@ -1,10 +1,10 @@ --- -EIP: 607 -Title: "Hardfork Meta: Spurious Dragon" -Author: Alex Beregszaszi -Type: Meta -Status: Final -Created: 2017-04-23 +eip: 607 +title: "Hardfork Meta: Spurious Dragon" +author: Alex Beregszaszi +type: Meta +status: Final +created: 2017-04-23 Requires: 155, 160, 161, 170 --- diff --git a/EIPS/eip-608.md b/EIPS/eip-608.md index 9dc39965c22d08..8e5eb6218e452b 100644 --- a/EIPS/eip-608.md +++ b/EIPS/eip-608.md @@ -1,10 +1,10 @@ --- -EIP: 608 -Title: "Hardfork Meta: Tangerine Whistle" -Author: Alex Beregszaszi -Type: Meta -Status: Final -Created: 2017-04-23 +eip: 608 +title: "Hardfork Meta: Tangerine Whistle" +author: Alex Beregszaszi +type: Meta +status: Final +created: 2017-04-23 Requires: 150 --- diff --git a/EIPS/eip-609.md b/EIPS/eip-609.md index 8e8f7ea93815d5..23fa8ab3595d03 100644 --- a/EIPS/eip-609.md +++ b/EIPS/eip-609.md @@ -1,11 +1,11 @@ --- -EIP: 609 -Title: "Hardfork Meta: Byzantium" -Author: Alex Beregszaszi -Type: Standard Track -Category: Core -Status: Final -Created: 2017-04-23 +eip: 609 +title: "Hardfork Meta: Byzantium" +author: Alex Beregszaszi +type: Standard Track +category: Core +status: Final +created: 2017-04-23 Requires: 100, 140, 196, 197, 198, 211, 214, 649, 658 --- diff --git a/EIPS/eip-615.md b/EIPS/eip-615.md index 1a83014d34902c..b57146af3b640c 100644 --- a/EIPS/eip-615.md +++ b/EIPS/eip-615.md @@ -1,10 +1,10 @@ --- -EIP: 615 -Title: Subroutines and Static Jumps for the EVM -Status: Draft -Type: Core -Author: Greg Colvin , Paweł Bylica, Christian Reitwiessner -Created: 2016-12-10 +eip: 615 +title: Subroutines and Static Jumps for the EVM +status: Draft +type: Core +author: Greg Colvin , Paweł Bylica, Christian Reitwiessner +created: 2016-12-10 Edited: 2017-25-4 --- diff --git a/EIPS/eip-616.md b/EIPS/eip-616.md index 6237f8d862af94..f2f16e1657c221 100644 --- a/EIPS/eip-616.md +++ b/EIPS/eip-616.md @@ -1,11 +1,11 @@ --- -EIP: 616 -Title: SIMD Operations for the EVM -Author: Greg Colvin, greg@colvin.org -Type: Standard Track -Category: Core -Status: Draft -Created: 2017-04-25 +eip: 616 +title: SIMD Operations for the EVM +author: Greg Colvin, greg@colvin.org +type: Standard Track +category: Core +status: Draft +created: 2017-04-25 --- ## ABSTRACT diff --git a/EIPS/eip-649.md b/EIPS/eip-649.md index 33199f1103c750..4429610624ebfb 100644 --- a/EIPS/eip-649.md +++ b/EIPS/eip-649.md @@ -1,11 +1,11 @@ --- -EIP: 649 -Title: Metropolis Difficulty Bomb Delay and Block Reward Reduction +eip: 649 +title: Metropolis Difficulty Bomb Delay and Block Reward Reduction Authors: Afri Schoedon, Vitalik Buterin -Type: Standard Track -Category: Core -Status: Final -Created: 2017-06-21 +type: Standard Track +category: Core +status: Final +created: 2017-06-21 Replaces: 186 --- diff --git a/EIPS/eip-658.md b/EIPS/eip-658.md index c48878540c1423..6170436e874b48 100644 --- a/EIPS/eip-658.md +++ b/EIPS/eip-658.md @@ -1,11 +1,11 @@ --- -EIP: 658 -Title: Embedding transaction status code in receipts -Author: Nick Johnson -Type: Standard Track -Category: Core -Status: Final -Created: 2017-06-30 +eip: 658 +title: Embedding transaction status code in receipts +author: Nick Johnson +type: Standard Track +category: Core +status: Final +created: 2017-06-30 Requires: 140 Replaces: 98 --- diff --git a/EIPS/eip-681.md b/EIPS/eip-681.md index 57a83203d63660..3093ffc3810bf4 100644 --- a/EIPS/eip-681.md +++ b/EIPS/eip-681.md @@ -1,11 +1,11 @@ --- -EIP: 681 -Title: URL Format for Transaction Requests -Author: Daniel A. Nagy -Type: Standard Track -Category: ERC -Status: Draft -Created: 2017-08-01 +eip: 681 +title: URL Format for Transaction Requests +author: Daniel A. Nagy +type: Standard Track +category: ERC +status: Draft +created: 2017-08-01 Requires: 20, 137, 831 --- diff --git a/EIPS/eip-695.md b/EIPS/eip-695.md index 170fd3fd1d85bd..28503519da73f9 100644 --- a/EIPS/eip-695.md +++ b/EIPS/eip-695.md @@ -1,11 +1,11 @@ --- -EIP: 695 -Title: Create `eth_chainId` method for JSON-RPC -Author: Isaac Ardis Wei Tang , @tcz001 -Type: Standard Track -Category: Interface -Status: Draft -Created: 2017-08-21 +eip: 695 +title: Create `eth_chainId` method for JSON-RPC +author: Isaac Ardis Wei Tang , @tcz001 +type: Standard Track +category: Interface +status: Draft +created: 2017-08-21 --- ## Simple Summary diff --git a/EIPS/eip-7.md b/EIPS/eip-7.md index 989d1f4085c2e4..1a7c06ec044519 100644 --- a/EIPS/eip-7.md +++ b/EIPS/eip-7.md @@ -1,10 +1,10 @@ --- -EIP: 7 -Title: DELEGATECALL -Author: Vitalik Buterin -Status: Final -Type: Homestead feature -Created: 2015-11-15 +eip: 7 +title: DELEGATECALL +author: Vitalik Buterin +status: Final +type: Homestead feature +created: 2015-11-15 --- ### Hard Fork diff --git a/EIPS/eip-706.md b/EIPS/eip-706.md index 712b5f56eb03d6..f522dbcb1be980 100644 --- a/EIPS/eip-706.md +++ b/EIPS/eip-706.md @@ -1,11 +1,11 @@ --- -EIP: 706 -Title: DEVp2p snappy compression -Author: Péter Szilágyi -Type: Standard Track -Category: Networking -Status: Final -Created: 2017-09-07 +eip: 706 +title: DEVp2p snappy compression +author: Péter Szilágyi +type: Standard Track +category: Networking +status: Final +created: 2017-09-07 --- ## Abstract diff --git a/EIPS/eip-721.md b/EIPS/eip-721.md index 3c416381cf1efa..5a319e031659c8 100644 --- a/EIPS/eip-721.md +++ b/EIPS/eip-721.md @@ -1,11 +1,11 @@ --- -EIP: 721 -Title: ERC-721 Non-Fungible Token Standard -Author: William Entriken , Dieter Shirley , Jacob Evans , Nastassia Sachs -Type: Standard -Category: ERC -Status: Draft -Created: 2018-01-24 +eip: 721 +title: ERC-721 Non-Fungible Token Standard +author: William Entriken , Dieter Shirley , Jacob Evans , Nastassia Sachs +type: Standard +category: ERC +status: Draft +created: 2018-01-24 Requires: ERC-165 --- diff --git a/EIPS/eip-758.md b/EIPS/eip-758.md index 4cdec48b368679..48c6510ec1745a 100644 --- a/EIPS/eip-758.md +++ b/EIPS/eip-758.md @@ -1,11 +1,11 @@ --- -EIP: 758 -Title: Subscriptions and filters for transaction return data -Author: Jack Peterson -Type: Standard Track -Category: Interface -Status: Draft -Created: 2017-11-09 +eip: 758 +title: Subscriptions and filters for transaction return data +author: Jack Peterson +type: Standard Track +category: Interface +status: Draft +created: 2017-11-09 --- ## Simple Summary diff --git a/EIPS/eip-779.md b/EIPS/eip-779.md index e5a62093763c72..8d422ee04233d7 100644 --- a/EIPS/eip-779.md +++ b/EIPS/eip-779.md @@ -1,10 +1,10 @@ --- -EIP: 779 -Title: "Hardfork Info: DAO Fork" -Author: Casey Detrio -Type: Informational -Status: Final -Created: 2017-11-26 +eip: 779 +title: "Hardfork Info: DAO Fork" +author: Casey Detrio +type: Informational +status: Final +created: 2017-11-26 --- ## Abstract diff --git a/EIPS/eip-8.md b/EIPS/eip-8.md index 58db0a0899f068..d00a2f40023dd9 100644 --- a/EIPS/eip-8.md +++ b/EIPS/eip-8.md @@ -1,11 +1,11 @@ --- -EIP: 8 -Title: devp2p Forward Compatibility Requirements for Homestead -Author: Felix Lange -Status: Final -Type: Standards Track -Layer: Networking -Created: 2015-12-18 +eip: 8 +title: devp2p Forward Compatibility Requirements for Homestead +author: Felix Lange +status: Final +type: Standards Track +layer: Networking +created: 2015-12-18 --- ### Abstract diff --git a/EIPS/eip-801.md b/EIPS/eip-801.md index adf8e557e65633..2ddf716694df8a 100644 --- a/EIPS/eip-801.md +++ b/EIPS/eip-801.md @@ -1,11 +1,11 @@ --- -EIP: 801 -Title: ERC-801 Canary Standard -Author: ligi -Type: Standard -Category: ERC -Status: Draft -Created: 2017-12-16 +eip: 801 +title: ERC-801 Canary Standard +author: ligi +type: Standard +category: ERC +status: Draft +created: 2017-12-16 --- ## Simple Summary diff --git a/EIPS/eip-831.md b/EIPS/eip-831.md index 7cc0dde11ea2c7..1a1645dc0c83a3 100644 --- a/EIPS/eip-831.md +++ b/EIPS/eip-831.md @@ -1,11 +1,11 @@ --- -EIP: 831 -Title: URL Format for Ethereum -Author: ligi -Type: Standard Track -Category: ERC -Status: Draft -Created: 2018-01-15 +eip: 831 +title: URL Format for Ethereum +author: ligi +type: Standard Track +category: ERC +status: Draft +created: 2018-01-15 --- ## Simple Summary diff --git a/EIPS/eip-858.md b/EIPS/eip-858.md index 4698879d9eaa91..1c5a88e8303007 100644 --- a/EIPS/eip-858.md +++ b/EIPS/eip-858.md @@ -1,11 +1,11 @@ --- -EIP: 858 -Title: Reduce block reward -Author: Carl Larson -Type: Standard Track -Category: Core -Status: Draft -Created: 2018-01-29 +eip: 858 +title: Reduce block reward +author: Carl Larson +type: Standard Track +category: Core +status: Draft +created: 2018-01-29 --- ## Simple Summary diff --git a/EIPS/eip-868.md b/EIPS/eip-868.md index e3f3ce08c726c7..d5158a034b3251 100644 --- a/EIPS/eip-868.md +++ b/EIPS/eip-868.md @@ -1,11 +1,11 @@ --- -EIP: 868 -Title: Node Discovery v4 ENR Extension -Author: Felix Lange -Type: Standard Track -Category: Networking -Status: Draft -Created: 2018-02-02 +eip: 868 +title: Node Discovery v4 ENR Extension +author: Felix Lange +type: Standard Track +category: Networking +status: Draft +created: 2018-02-02 Requires: EIP-8, EIP-778 --- diff --git a/index.html b/index.html index d168acd02e716c..0fa5dd46e041e2 100644 --- a/index.html +++ b/index.html @@ -5,8 +5,8 @@ layout: home --- -{% assign statuses = site.pages|map:"Status"|uniq %} -{% assign pages = site.pages|sort:"EIP" %} +{% assign statuses = site.pages|map:"status"|uniq %} +{% assign pages = site.pages|sort:"eip" %} {% for status in statuses %} {% if status != undefined %}

{{status}}

@@ -15,8 +15,8 @@

{{status}}

NumberTitleAuthorLayer {% for page in pages %} - {% if page.Status == status %} - {{page.EIP}}{{page.Title|xml_escape}}{{page.Author|xml_escape}}{{page.Layer|xml_escape}} + {% if page.status == status %} + {{page.eip|xml_escape}}{{page.title|xml_escape}}{{page.author|xml_escape}}{{page.layer|xml_escape}} {% endif %} {% endfor %} From 8781574c9fd19e32a93e0304cd28d97a9e273001 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 12:54:41 +0000 Subject: [PATCH 11/28] Use EIP layout for EIPs --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 0ad1ea75ec16f8..518afe02f2d2a5 100644 --- a/_config.yml +++ b/_config.yml @@ -36,7 +36,7 @@ defaults: scope: path: "EIPS" values: - layout: "default" + layout: "eip" # Exclude from processing. # The following items will not be processed, by default. Create a custom list From 3e91f85825f1197de7fd2ad25f2b3d929891c1f7 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 12:59:50 +0000 Subject: [PATCH 12/28] Add info table to top of EIPs --- _layouts/eip.html | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 _layouts/eip.html diff --git a/_layouts/eip.html b/_layouts/eip.html new file mode 100644 index 00000000000000..8e29fdcf87a5bf --- /dev/null +++ b/_layouts/eip.html @@ -0,0 +1,19 @@ +--- +layout: default +--- + +
+

EIP {{ page.eip | xml_escape }}: {{ page.title | xml_escape }}

+ + + + + + + + +
Author{{ page.author | xml_escape }}
Status{{ page.status | xml_escape }}
Type{{ page.type | xml_escape }}
Layer{{ page.layer | xml_escape }}
Category{{ page.category | xml_escape }}
Created{{ page.created | xml_escape }}
+ + {{ content }} + +
From c231d1c9809e4ccd45375d98f6384bdde2e30525 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 13:10:08 +0000 Subject: [PATCH 13/28] Update EIP 1 with header format changes, fix a few other EIP header issues --- EIPS/eip-1.md | 40 ++++++++++++++++++++++------------------ EIPS/eip-158.md | 2 +- EIPS/eip-211.md | 3 +-- EIPS/eip-606.md | 2 +- EIPS/eip-607.md | 2 +- EIPS/eip-608.md | 2 +- EIPS/eip-609.md | 2 +- EIPS/eip-615.md | 2 +- EIPS/eip-649.md | 2 +- EIPS/eip-658.md | 4 ++-- EIPS/eip-681.md | 2 +- EIPS/eip-721.md | 2 +- EIPS/eip-868.md | 2 +- _layouts/eip.html | 17 +++++++++++++++-- 14 files changed, 50 insertions(+), 34 deletions(-) diff --git a/EIPS/eip-1.md b/EIPS/eip-1.md index b997aec1b48ccb..c2374d98b2ab0c 100644 --- a/EIPS/eip-1.md +++ b/EIPS/eip-1.md @@ -117,29 +117,31 @@ EIPs should be written in [markdown] format. Image files should be included in a EIP Header Preamble ------------------- -Each EIP must begin with an RFC 822 style header preamble. The headers must appear in the following order. Headers marked with "*" are optional and are described below. All other headers are required. +Each EIP must begin with an RFC 822 style header preamble, preceded and followed by three hyphens ('---'). The headers must appear in the following order. Headers marked with "*" are optional and are described below. All other headers are required. -` EIP: ` (this is determined by the EIP editor) +` eip: ` (this is determined by the EIP editor) -` Title: ` +` title: ` -` Author: ` +` author: ` -` * Discussions-To: ` +` * discussions-to: ` -` Status: ` +` status: ` -` Type: ` +` type: ` -` Created: ` +` created: ` -` * Replaces: ` +` * requires: ` -` * Superseded-By: ` +` * replaces: ` -` * Resolution: ` +` * superseded-by: ` -The Author header lists the names, and optionally the email addresses of all the authors/owners of the EIP. The format of the Author header value must be +` * resolution: ` + +The author header lists the names, and optionally the email addresses of all the authors/owners of the EIP. The format of the author header value must be Random J. User <address@dom.ain> @@ -149,17 +151,19 @@ Random J. User if the email address is not given. -Note: The Resolution header is required for Standards Track EIPs only. It contains a URL that should point to an email message or other web resource where the pronouncement about the EIP is made. +Note: The resolution header is required for Standards Track EIPs only. It contains a URL that should point to an email message or other web resource where the pronouncement about the EIP is made. + +While an EIP is in private discussions (usually during the initial Draft phase), a discussions-to header will indicate the mailing list or URL where the EIP is being discussed. No discussions-to header is necessary if the EIP is being discussed privately with the author. -While an EIP is in private discussions (usually during the initial Draft phase), a Discussions-To header will indicate the mailing list or URL where the EIP is being discussed. No Discussions-To header is necessary if the EIP is being discussed privately with the author. +The type header specifies the type of EIP: Standards Track, Meta, or Informational. If the track is Standards please include the subcategory (core, networking, interface, or ERC). -The Type header specifies the type of EIP: Standards Track, Meta, or Informational. If the track is Standards please include the subcategory (core, networking, interface, or ERC). +The created header records the date that the EIP was assigned a number. Both headers should be in yyyy-mm-dd format, e.g. 2001-08-14. -The Created header records the date that the EIP was assigned a number. Both headers should be in yyyy-mm-dd format, e.g. 2001-08-14. +EIPs may have a requires header, indicating the EIP numbers that this EIP depends on. -EIPs may have a Requires header, indicating the EIP numbers that this EIP depends on. +EIPs may also have a superseded-by header indicating that an EIP has been rendered obsolete by a later document; the value is the number of the EIP that replaces the current document. The newer EIP must have a Replaces header containing the number of the EIP that it rendered obsolete. -EIPs may also have a Superseded-By header indicating that an EIP has been rendered obsolete by a later document; the value is the number of the EIP that replaces the current document. The newer EIP must have a Replaces header containing the number of the EIP that it rendered obsolete. +Headers that permit lists must separate elements with commas. Auxiliary Files --------------- diff --git a/EIPS/eip-158.md b/EIPS/eip-158.md index 5b1f13c3829eb3..443e3b392d81a9 100644 --- a/EIPS/eip-158.md +++ b/EIPS/eip-158.md @@ -6,7 +6,7 @@ type: Standard Track category: Core status: Superseded created: 2016-10-16 -Superseded-By: 161 +superseded-by: 161 --- # Specification diff --git a/EIPS/eip-211.md b/EIPS/eip-211.md index c2daee4b475b2e..b2026ca8880bc4 100644 --- a/EIPS/eip-211.md +++ b/EIPS/eip-211.md @@ -6,8 +6,7 @@ type: Standard Track category: Core status: Final created: 2017-02-13 -Requires: -Replaces: 5/8 +replaces: 5,8 --- ## Simple Summary diff --git a/EIPS/eip-606.md b/EIPS/eip-606.md index 1730738d459203..d7935a8b7e56c8 100644 --- a/EIPS/eip-606.md +++ b/EIPS/eip-606.md @@ -5,7 +5,7 @@ author: Alex Beregszaszi type: Meta status: Final created: 2017-04-23 -Requires: 2, 7 +requires: 2, 7 --- ## Abstract diff --git a/EIPS/eip-607.md b/EIPS/eip-607.md index 9e713c0ff7f9a4..6d24572d8bbfbf 100644 --- a/EIPS/eip-607.md +++ b/EIPS/eip-607.md @@ -5,7 +5,7 @@ author: Alex Beregszaszi type: Meta status: Final created: 2017-04-23 -Requires: 155, 160, 161, 170 +requires: 155, 160, 161, 170 --- ## Abstract diff --git a/EIPS/eip-608.md b/EIPS/eip-608.md index 8e5eb6218e452b..9d056b0e51bbbe 100644 --- a/EIPS/eip-608.md +++ b/EIPS/eip-608.md @@ -5,7 +5,7 @@ author: Alex Beregszaszi type: Meta status: Final created: 2017-04-23 -Requires: 150 +requires: 150 --- ## Abstract diff --git a/EIPS/eip-609.md b/EIPS/eip-609.md index 23fa8ab3595d03..c315c1d9337c2e 100644 --- a/EIPS/eip-609.md +++ b/EIPS/eip-609.md @@ -6,7 +6,7 @@ type: Standard Track category: Core status: Final created: 2017-04-23 -Requires: 100, 140, 196, 197, 198, 211, 214, 649, 658 +requires: 100, 140, 196, 197, 198, 211, 214, 649, 658 --- ## Abstract diff --git a/EIPS/eip-615.md b/EIPS/eip-615.md index b57146af3b640c..4ad9c74dc6297e 100644 --- a/EIPS/eip-615.md +++ b/EIPS/eip-615.md @@ -5,7 +5,7 @@ status: Draft type: Core author: Greg Colvin , Paweł Bylica, Christian Reitwiessner created: 2016-12-10 -Edited: 2017-25-4 +edited: 2017-25-4 --- ## Abstract diff --git a/EIPS/eip-649.md b/EIPS/eip-649.md index 4429610624ebfb..52f4e1a2b86d24 100644 --- a/EIPS/eip-649.md +++ b/EIPS/eip-649.md @@ -6,7 +6,7 @@ type: Standard Track category: Core status: Final created: 2017-06-21 -Replaces: 186 +replaces: 186 --- ## Simple Summary diff --git a/EIPS/eip-658.md b/EIPS/eip-658.md index 6170436e874b48..00656acd026d47 100644 --- a/EIPS/eip-658.md +++ b/EIPS/eip-658.md @@ -6,8 +6,8 @@ type: Standard Track category: Core status: Final created: 2017-06-30 -Requires: 140 -Replaces: 98 +requires: 140 +replaces: 98 --- ## Abstract diff --git a/EIPS/eip-681.md b/EIPS/eip-681.md index 3093ffc3810bf4..6351f46a546d4c 100644 --- a/EIPS/eip-681.md +++ b/EIPS/eip-681.md @@ -6,7 +6,7 @@ type: Standard Track category: ERC status: Draft created: 2017-08-01 -Requires: 20, 137, 831 +requires: 20, 137, 831 --- ## Simple Summary diff --git a/EIPS/eip-721.md b/EIPS/eip-721.md index 5a319e031659c8..73dfdd74e89f3b 100644 --- a/EIPS/eip-721.md +++ b/EIPS/eip-721.md @@ -6,7 +6,7 @@ type: Standard category: ERC status: Draft created: 2018-01-24 -Requires: ERC-165 +requires: ERC-165 --- ## Simple Summary diff --git a/EIPS/eip-868.md b/EIPS/eip-868.md index d5158a034b3251..3ac28fa0dfb344 100644 --- a/EIPS/eip-868.md +++ b/EIPS/eip-868.md @@ -6,7 +6,7 @@ type: Standard Track category: Networking status: Draft created: 2018-02-02 -Requires: EIP-8, EIP-778 +requires: 8, 778 --- # Abstract diff --git a/_layouts/eip.html b/_layouts/eip.html index 8e29fdcf87a5bf..d55a709c8584b2 100644 --- a/_layouts/eip.html +++ b/_layouts/eip.html @@ -7,11 +7,24 @@

EIP {{ page.eip | xml_escape }}: {{ page.title | xml_es + {% if page["discussions-to"] != undefined %} + + {% endif %} - - + {% if page.requires != undefined %} + + {% endif %} + {% if page.replaces != undefined %} + + {% endif %} + {% if page["superseded-by"] != undefined %} + + {% endif %} + {% if page.resolution != undefined %} + + {% endif %}
Author{{ page.author | xml_escape }}
Discussions-To{{ page["discussions-to"] | xml_escape }}
Status{{ page.status | xml_escape }}
Type{{ page.type | xml_escape }}
Layer{{ page.layer | xml_escape }}
Category{{ page.category | xml_escape }}
Created{{ page.created | xml_escape }}
Requires{{ page.requires | xml_escape }}
Replaces{{ page.replaces | xml_escape }}
Superseded by{{ page["superseded-by"] | xml_escape }}
Resolution{{ page.resolution | xml_escape }}
{{ content }} From aea7bfceb5551395d0ca1a9faeab65eb19c6410a Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 13:14:02 +0000 Subject: [PATCH 14/28] Update eip-X template, more tweaks to EIP 1 and jekyll template. --- EIPS/eip-1.md | 4 ++++ _layouts/eip.html | 3 +++ eip-X.md | 27 ++++++++++++++------------- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/EIPS/eip-1.md b/EIPS/eip-1.md index c2374d98b2ab0c..ae65291d1e94b8 100644 --- a/EIPS/eip-1.md +++ b/EIPS/eip-1.md @@ -131,6 +131,8 @@ Each EIP must begin with an RFC 822 style header preamble, preceded and followed ` type: ` +` * category `: + ` created: ` ` * requires: ` @@ -157,6 +159,8 @@ While an EIP is in private discussions (usually during the initial Draft phase), The type header specifies the type of EIP: Standards Track, Meta, or Informational. If the track is Standards please include the subcategory (core, networking, interface, or ERC). +The category header specifies the EIP's category. This is required for standards-track EIPs only. + The created header records the date that the EIP was assigned a number. Both headers should be in yyyy-mm-dd format, e.g. 2001-08-14. EIPs may have a requires header, indicating the EIP numbers that this EIP depends on. diff --git a/_layouts/eip.html b/_layouts/eip.html index d55a709c8584b2..bb274d67234314 100644 --- a/_layouts/eip.html +++ b/_layouts/eip.html @@ -12,6 +12,9 @@

EIP {{ page.eip | xml_escape }}: {{ page.title | xml_es {% endif %} Status{{ page.status | xml_escape }} Type{{ page.type | xml_escape }} + {% if page.category != undefined %} + Category{{ page.category | xml_escape }} + {% endif %} Created{{ page.created | xml_escape }} {% if page.requires != undefined %} Requires{{ page.requires | xml_escape }} diff --git a/eip-X.md b/eip-X.md index 99de918876cd89..5536a2e4cbe6c4 100644 --- a/eip-X.md +++ b/eip-X.md @@ -1,19 +1,20 @@ +--- +eip: +title: +author: +discussions-to: +status: Draft +type: +category (*only required for Standard Track): +created: +requires (*optional): +replaces (*optional): +--- + This is the suggested template for new EIPs. Note that an EIP number will be assigned by an editor. When opening a pull request to submit your EIP, please use an abbreviated title in the filename, `eip-draft_title_abbrev.md`. -## Preamble - - EIP: - Title: - Author: - Type: - Category (*only required for Standard Track): - Status: Draft - Created: - Requires (*optional): - Replaces (*optional): - The title should be 44 characters or less. ## Simple Summary @@ -26,7 +27,7 @@ A short (~200 word) description of the technical issue being addressed. The motivation is critical for EIPs that want to change the Ethereum protocol. It should clearly explain why the existing protocol specification is inadequate to address the problem that the EIP solves. EIP submissions without sufficient motivation may be rejected outright. ## Specification -The technical specification should describe the syntax and semantics of any new feature. The specification should be detailed enough to allow competing, interoperable implementations for any of the current Ethereum platforms (cpp-ethereum, go-ethereum, parity, ethereumj, ethereumjs, ...). +The technical specification should describe the syntax and semantics of any new feature. The specification should be detailed enough to allow competing, interoperable implementations for any of the current Ethereum platforms (cpp-ethereum, go-ethereum, parity, ethereumj, ethereumjs, ...). ## Rationale The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work, e.g. how the feature is supported in other languages. The rationale may also provide evidence of consensus within the community, and should discuss important objections or concerns raised during discussion. From aecc9b33dd3b7e08709b7187149ef8ccd8e9b5ea Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 13:16:39 +0000 Subject: [PATCH 15/28] Exclude eip-X from processing --- _config.yml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/_config.yml b/_config.yml index 518afe02f2d2a5..f9ee14a4009992 100644 --- a/_config.yml +++ b/_config.yml @@ -38,14 +38,12 @@ defaults: values: layout: "eip" -# Exclude from processing. -# The following items will not be processed, by default. Create a custom list -# to override the default setting. -# exclude: -# - Gemfile -# - Gemfile.lock -# - node_modules -# - vendor/bundle/ -# - vendor/cache/ -# - vendor/gems/ -# - vendor/ruby/ +exclude: + - Gemfile + - Gemfile.lock + - node_modules + - vendor/bundle/ + - vendor/cache/ + - vendor/gems/ + - vendor/ruby/ + - eip-X.md From 264e8be5ed04dfe7a10fe6d021337f2301feafa8 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 13:36:46 +0000 Subject: [PATCH 16/28] Use pretty URLs --- EIPS/eip-1.md | 2 +- EIPS/eip-107.md | 6 +++--- EIPS/eip-858.md | 2 +- _config.yml | 2 ++ _layouts/eip.html | 1 - 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/EIPS/eip-1.md b/EIPS/eip-1.md index ae65291d1e94b8..082382aa2d5099 100644 --- a/EIPS/eip-1.md +++ b/EIPS/eip-1.md @@ -62,7 +62,7 @@ EIPs can also be superseded by a different EIP, rendering the original obsolete. The possible paths of the status of EIPs are as follows: - +![](process.png) Some Informational and Process EIPs may also have a status of “Active” if they are never meant to be completed. E.g. EIP 1 (this EIP). diff --git a/EIPS/eip-107.md b/EIPS/eip-107.md index d9a1beff3dc903..33fbee6bbfcd94 100644 --- a/EIPS/eip-107.md +++ b/EIPS/eip-107.md @@ -29,19 +29,19 @@ Account unlocked : ----------------- When the account is already unlocked, the user is presented with the following popup for every transaction that the dapp attempts to make: - +![](authorization.png) Account locked and no "personal" api exposed via rpc: ----------------- When the account is locked, and the node does not provide access to account unlocking via its rpc interface, the following popup will be presented. This is not ideal since this requires the user to know how to unlock an account: - +![](authorization-locked.png) Account locked but node exposing the "personal" api via rpc : ----------------- A better option is to ask the user for their password, but this is only possible if the node allows access to the "personal" api via rpc. In such case, the following dialog will be presented to the user so he/she can accept the transaction by providing the password required to unlock the account: - +![](authorization-password.png") Specification diff --git a/EIPS/eip-858.md b/EIPS/eip-858.md index 1c5a88e8303007..045eaa5ce33c1f 100644 --- a/EIPS/eip-858.md +++ b/EIPS/eip-858.md @@ -15,7 +15,7 @@ Reduce the block reward to 1 ETH. The current public Ethereum network has a hashrate that corresponds to a tremendous level of energy consumption. As this energy consumption has a correlated environmental cost the network participants have an ethical obligation to ensure this cost is not higher than necessary. At this time, the most direct way to reduce this cost is to lower the block reward in order to limit the appeal of ETH mining. Unchecked growth in hashrate is also counterproductive from a security standpoint. ## Motivation -The current public Ethereum network has a hashrate of 232 TH/s). This hashrate corresponds to a **lower bound** for power usage of roughly [821 MW](eip-858/calculations.md) and yearly energy consumption of 7.2 TWh (roughly 0.033% of [total](https://en.wikipedia.org/wiki/List_of_countries_by_electricity_consumption) global electricity consumption). A future switch to full Proof of Stake will solve this issue entirely. Yet that switch remains enough in the future that action should be taken in the interim to limit excess harmful side affects of the present network. +The current public Ethereum network has a hashrate of 232 TH/s). This hashrate corresponds to a **lower bound** for power usage of roughly [821 MW](calculations.md) and yearly energy consumption of 7.2 TWh (roughly 0.033% of [total](https://en.wikipedia.org/wiki/List_of_countries_by_electricity_consumption) global electricity consumption). A future switch to full Proof of Stake will solve this issue entirely. Yet that switch remains enough in the future that action should be taken in the interim to limit excess harmful side affects of the present network. ## Specification Block reward to be changed to 1 ETH / block. diff --git a/_config.yml b/_config.yml index f9ee14a4009992..2a7d120ca9f0b7 100644 --- a/_config.yml +++ b/_config.yml @@ -31,6 +31,8 @@ theme: minima plugins: - jekyll-feed +permalink: slug + defaults: - scope: diff --git a/_layouts/eip.html b/_layouts/eip.html index bb274d67234314..af6f580ff0d0e8 100644 --- a/_layouts/eip.html +++ b/_layouts/eip.html @@ -4,7 +4,6 @@

EIP {{ page.eip | xml_escape }}: {{ page.title | xml_escape }}

- {% if page["discussions-to"] != undefined %} From c80a142e8f4c9c807d11425a9a823380cfc87072 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 13:37:40 +0000 Subject: [PATCH 17/28] Fix title --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 2a7d120ca9f0b7..803cbda350412b 100644 --- a/_config.yml +++ b/_config.yml @@ -13,7 +13,7 @@ # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. # You can create any custom variable you would like, and they will be accessible # in the templates via {{ site.myvariable }}. -title: Ethereum EIPs by status +title: Ethereum Improvement Proposals email: nick@ethereum.org description: >- # this means to ignore newlines until "baseurl:" Write an awesome description for your new site here. You can edit this From f0289472d45eae676563473287209716e50edd35 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 13:43:23 +0000 Subject: [PATCH 18/28] Update site description --- _config.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/_config.yml b/_config.yml index 803cbda350412b..7a73749a0a5b31 100644 --- a/_config.yml +++ b/_config.yml @@ -14,11 +14,10 @@ # You can create any custom variable you would like, and they will be accessible # in the templates via {{ site.myvariable }}. title: Ethereum Improvement Proposals -email: nick@ethereum.org -description: >- # this means to ignore newlines until "baseurl:" - Write an awesome description for your new site here. You can edit this - line in _config.yml. It will appear in your document head meta (for - Google search results) and in your feed.xml site description. +description: >- + Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum + platform, including core protocol specifications, client APIs, and contract + standards. url: "" # the base hostname & protocol for your site, e.g. http://example.com twitter_username: ethereum github_username: ethereum From 7038c5f9b9a4845ee1bf5301c2b0ee800ec181e1 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 15:55:18 +0000 Subject: [PATCH 19/28] Add pages for each EIP type, improve listing tables with links --- EIPS/eip-1.md | 2 +- EIPS/eip-100.md | 2 +- EIPS/eip-101.md | 3 ++- EIPS/eip-107.md | 2 +- EIPS/eip-140.md | 2 +- EIPS/eip-141.md | 2 +- EIPS/eip-145.md | 2 +- EIPS/eip-150.md | 2 +- EIPS/eip-155.md | 2 +- EIPS/eip-158.md | 2 +- EIPS/eip-160.md | 2 +- EIPS/eip-161.md | 2 +- EIPS/eip-165.md | 2 +- EIPS/eip-170.md | 2 +- EIPS/eip-181.md | 2 +- EIPS/eip-196.md | 2 +- EIPS/eip-197.md | 2 +- EIPS/eip-2.md | 2 +- EIPS/eip-20.md | 2 +- EIPS/eip-211.md | 2 +- EIPS/eip-214.md | 2 +- EIPS/eip-234.md | 2 +- EIPS/eip-3.md | 2 +- EIPS/eip-5.md | 2 +- EIPS/eip-55.md | 2 +- EIPS/eip-6.md | 1 + EIPS/eip-609.md | 2 +- EIPS/eip-615.md | 3 ++- EIPS/eip-616.md | 2 +- EIPS/eip-649.md | 2 +- EIPS/eip-658.md | 2 +- EIPS/eip-681.md | 2 +- EIPS/eip-695.md | 2 +- EIPS/eip-7.md | 3 ++- EIPS/eip-706.md | 2 +- EIPS/eip-721.md | 2 +- EIPS/eip-758.md | 2 +- EIPS/eip-801.md | 2 +- EIPS/eip-831.md | 2 +- EIPS/eip-858.md | 2 +- EIPS/eip-868.md | 2 +- _config.yml | 6 ++++++ _includes/eipnums.html | 4 ++++ _includes/eiptable.html | 18 ++++++++++++++++++ _layouts/eip.html | 10 +++++----- core.html | 7 +++++++ eip-X.md | 2 +- erc.html | 7 +++++++ index.html | 20 ++++++++++++++++---- informational.html | 7 +++++++ interface.html | 7 +++++++ meta.html | 7 +++++++ networking.html | 7 +++++++ 53 files changed, 136 insertions(+), 50 deletions(-) create mode 100644 _includes/eipnums.html create mode 100644 _includes/eiptable.html create mode 100644 core.html create mode 100644 erc.html create mode 100644 informational.html create mode 100644 interface.html create mode 100644 meta.html create mode 100644 networking.html diff --git a/EIPS/eip-1.md b/EIPS/eip-1.md index 082382aa2d5099..8f811514bfc39e 100644 --- a/EIPS/eip-1.md +++ b/EIPS/eip-1.md @@ -129,7 +129,7 @@ Each EIP must begin with an RFC 822 style header preamble, preceded and followed ` status: ` -` type: ` +` type: ` ` * category `: diff --git a/EIPS/eip-100.md b/EIPS/eip-100.md index 3ea24a7f62ee5f..f1ded40d3d19f1 100644 --- a/EIPS/eip-100.md +++ b/EIPS/eip-100.md @@ -2,7 +2,7 @@ eip: 100 title: Change difficulty adjustment to target mean block time including uncles author: Vitalik Buterin -type: Standard Track +type: Standards Track category: Core status: Final created: 2016-04-28 diff --git a/EIPS/eip-101.md b/EIPS/eip-101.md index 47aa1591da1114..ed457b08123390 100644 --- a/EIPS/eip-101.md +++ b/EIPS/eip-101.md @@ -3,7 +3,8 @@ eip: 101 title: Serenity Currency and Crypto Abstraction author: Vitalik Buterin status: Active -type: Serenity feature +type: Standards Track +category: Core created: 2015-11-15 --- diff --git a/EIPS/eip-107.md b/EIPS/eip-107.md index 33fbee6bbfcd94..b39458416adb99 100644 --- a/EIPS/eip-107.md +++ b/EIPS/eip-107.md @@ -4,7 +4,7 @@ title: safe "eth_sendTransaction" authorization via html popup author: Ronan Sandford created: 2016-06-05 status: Draft -type: Standard +type: Standards Track category: Interface --- diff --git a/EIPS/eip-140.md b/EIPS/eip-140.md index 7c2af3952e13a0..f2c896e90f2425 100644 --- a/EIPS/eip-140.md +++ b/EIPS/eip-140.md @@ -2,7 +2,7 @@ eip: 140 title: REVERT instruction author: Alex Beregszaszi, Nikolai Mushegian (nikolai@nexusdev.us) -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-02-06 diff --git a/EIPS/eip-141.md b/EIPS/eip-141.md index 2cc57d11bf4d45..64b6734fb72626 100644 --- a/EIPS/eip-141.md +++ b/EIPS/eip-141.md @@ -2,7 +2,7 @@ eip: 141 title: Designated invalid EVM instruction author: Alex Beregszaszi -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-02-09 diff --git a/EIPS/eip-145.md b/EIPS/eip-145.md index 15e41ebc33047b..68d701363d4e07 100644 --- a/EIPS/eip-145.md +++ b/EIPS/eip-145.md @@ -2,7 +2,7 @@ eip: 145 title: Bitwise shifting instructions in EVM author: Alex Beregszaszi, Paweł Bylica -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-02-13 diff --git a/EIPS/eip-150.md b/EIPS/eip-150.md index dfac0de091bccf..a6c7c8db134e3a 100644 --- a/EIPS/eip-150.md +++ b/EIPS/eip-150.md @@ -2,7 +2,7 @@ eip: 150 title: Gas cost changes for IO-heavy operations author: Vitalik Buterin -type: Standard Track +type: Standards Track category: Core status: Final created: 2016-09-24 diff --git a/EIPS/eip-155.md b/EIPS/eip-155.md index e2195cb9d14fdc..7716b6ab8a634c 100644 --- a/EIPS/eip-155.md +++ b/EIPS/eip-155.md @@ -2,7 +2,7 @@ eip: 155 title: Simple replay attack protection author: Vitalik Buterin -type: Standard Track +type: Standards Track category: Core status: Final created: 2016-10-14 diff --git a/EIPS/eip-158.md b/EIPS/eip-158.md index 443e3b392d81a9..c5dbef191eaf88 100644 --- a/EIPS/eip-158.md +++ b/EIPS/eip-158.md @@ -2,7 +2,7 @@ eip: 158 title: State clearing author: Vitalik Buterin -type: Standard Track +type: Standards Track category: Core status: Superseded created: 2016-10-16 diff --git a/EIPS/eip-160.md b/EIPS/eip-160.md index 9fb35d71b2887e..4749d89f459855 100644 --- a/EIPS/eip-160.md +++ b/EIPS/eip-160.md @@ -2,7 +2,7 @@ eip: 160 title: EXP cost increase author: Vitalik Buterin -type: Standard Track +type: Standards Track category: Core status: Final created: 2016-10-20 diff --git a/EIPS/eip-161.md b/EIPS/eip-161.md index 2be4c6658033f4..fa61e602ca84d1 100644 --- a/EIPS/eip-161.md +++ b/EIPS/eip-161.md @@ -2,7 +2,7 @@ eip: 161 title: State trie clearing (invariant-preserving alternative) author: Gavin Wood -type: Standard Track +type: Standards Track category: Core status: Final created: 2016-10-24 diff --git a/EIPS/eip-165.md b/EIPS/eip-165.md index 0b3f8574c09cd1..eb1f9a23494145 100644 --- a/EIPS/eip-165.md +++ b/EIPS/eip-165.md @@ -2,7 +2,7 @@ eip: 165 title: ERC-165 Standard Interface Detection author: Christian Reitwießner , Nick Johnson , Fabian Vogelsteller , Jordi Baylina , Konrad Feldmeier , William Entriken -type: Standard Track +type: Standards Track category: ERC status: Draft created: 2018-01-23 diff --git a/EIPS/eip-170.md b/EIPS/eip-170.md index feda849b231708..5fd1b3d99397ff 100644 --- a/EIPS/eip-170.md +++ b/EIPS/eip-170.md @@ -2,7 +2,7 @@ eip: 170 title: Contract code size limit author: Vitalik Buterin -type: Standard Track +type: Standards Track category: Core status: Final created: 2016-11-04 diff --git a/EIPS/eip-181.md b/EIPS/eip-181.md index a68f8120f397bb..99f64c6b09837d 100644 --- a/EIPS/eip-181.md +++ b/EIPS/eip-181.md @@ -3,7 +3,7 @@ eip: 181 title: ENS support for reverse resolution of Ethereum addresses author: Nick Johnson status: Final -type: Standard Track +type: Standards Track category: ERC created: 2016-12-01 --- diff --git a/EIPS/eip-196.md b/EIPS/eip-196.md index 7feaf17261603a..70170741e05792 100644 --- a/EIPS/eip-196.md +++ b/EIPS/eip-196.md @@ -3,7 +3,7 @@ eip: 196 title: Precompiled contracts for addition and scalar multiplication on the elliptic curve alt_bn128 author: Christian Reitwiessner -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-02-02 diff --git a/EIPS/eip-197.md b/EIPS/eip-197.md index 827e5385d20a0b..e4355058fcfc34 100644 --- a/EIPS/eip-197.md +++ b/EIPS/eip-197.md @@ -3,7 +3,7 @@ eip: 197 title: Precompiled contracts for optimal ate pairing check on the elliptic curve alt_bn128 author: Vitalik Buterin , Christian Reitwiessner -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-02-06 diff --git a/EIPS/eip-2.md b/EIPS/eip-2.md index 673c8ab9415e49..bbdf97deae53d0 100644 --- a/EIPS/eip-2.md +++ b/EIPS/eip-2.md @@ -3,7 +3,7 @@ eip: 2 title: Homestead Hard-fork Changes author: Vitalik Buterin status: Final -type: Standard Track +type: Standards Track category: Core created: 2015-11-15 --- diff --git a/EIPS/eip-20.md b/EIPS/eip-20.md index 494c1a437eddeb..174bf0f9bc5886 100644 --- a/EIPS/eip-20.md +++ b/EIPS/eip-20.md @@ -2,7 +2,7 @@ eip: 20 title: ERC-20 Token Standard author: Fabian Vogelsteller , Vitalik Buterin -type: Standard +type: Standards Track category: ERC status: Accepted created: 2015-11-19 diff --git a/EIPS/eip-211.md b/EIPS/eip-211.md index b2026ca8880bc4..af0a20c93f10d7 100644 --- a/EIPS/eip-211.md +++ b/EIPS/eip-211.md @@ -2,7 +2,7 @@ eip: 211 title: "New opcodes: RETURNDATASIZE and RETURNDATACOPY" author: Christian Reitwiessner -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-02-13 diff --git a/EIPS/eip-214.md b/EIPS/eip-214.md index 9b20d39fdde648..9a91ccc43fe765 100644 --- a/EIPS/eip-214.md +++ b/EIPS/eip-214.md @@ -2,7 +2,7 @@ eip: 214 title: New opcode STATICCALL author: Vitalik Buterin , Christian Reitwiessner ; -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-02-13 diff --git a/EIPS/eip-234.md b/EIPS/eip-234.md index 6753f700aae984..99583142e334e4 100644 --- a/EIPS/eip-234.md +++ b/EIPS/eip-234.md @@ -2,7 +2,7 @@ eip: 234 title: Add `blockHash` to JSON-RPC filter options. author: Micah Zoltu -type: Standard Track +type: Standards Track category: Interface status: Draft created: 2017-03-24 diff --git a/EIPS/eip-3.md b/EIPS/eip-3.md index 5d405f09870eb2..2cf96c9707e428 100644 --- a/EIPS/eip-3.md +++ b/EIPS/eip-3.md @@ -4,7 +4,7 @@ title: Addition of CALLDEPTH opcode author: Martin Holst Swende status: Draft type: Standards Track -layer: Consensus (hard-fork) +category: Core created: 2015-11-19 --- diff --git a/EIPS/eip-5.md b/EIPS/eip-5.md index 6ec9bff9f8c0b3..ae6ad1655e07e9 100644 --- a/EIPS/eip-5.md +++ b/EIPS/eip-5.md @@ -4,7 +4,7 @@ title: Gas Usage for `RETURN` and `CALL*` author: Christian Reitwiessner status: Draft type: Standards Track -layer: Consensus (hard-fork) +category: Core created: 2015-11-22 --- diff --git a/EIPS/eip-55.md b/EIPS/eip-55.md index b610fc77421bc2..caab54a64acd30 100644 --- a/EIPS/eip-55.md +++ b/EIPS/eip-55.md @@ -2,7 +2,7 @@ eip: 55 title: Mixed-case checksum address encoding author: Vitalik Buterin -type: Standard Track +type: Standards Track category: ERC status: Accepted created: 2016-01-14 diff --git a/EIPS/eip-6.md b/EIPS/eip-6.md index f42032b5b07b67..ea1b1032d5946d 100644 --- a/EIPS/eip-6.md +++ b/EIPS/eip-6.md @@ -4,6 +4,7 @@ title: Renaming SUICIDE opcode author: Hudson Jameson status: Final type: Standards Track +category: Interface layer: Applications created: 2015-11-22 --- diff --git a/EIPS/eip-609.md b/EIPS/eip-609.md index c315c1d9337c2e..fce499ad34e794 100644 --- a/EIPS/eip-609.md +++ b/EIPS/eip-609.md @@ -2,7 +2,7 @@ eip: 609 title: "Hardfork Meta: Byzantium" author: Alex Beregszaszi -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-04-23 diff --git a/EIPS/eip-615.md b/EIPS/eip-615.md index 4ad9c74dc6297e..ad9d94fcf93da3 100644 --- a/EIPS/eip-615.md +++ b/EIPS/eip-615.md @@ -2,7 +2,8 @@ eip: 615 title: Subroutines and Static Jumps for the EVM status: Draft -type: Core +type: Standards Track +category: Core author: Greg Colvin , Paweł Bylica, Christian Reitwiessner created: 2016-12-10 edited: 2017-25-4 diff --git a/EIPS/eip-616.md b/EIPS/eip-616.md index f2f16e1657c221..76b5dc22af5ebe 100644 --- a/EIPS/eip-616.md +++ b/EIPS/eip-616.md @@ -2,7 +2,7 @@ eip: 616 title: SIMD Operations for the EVM author: Greg Colvin, greg@colvin.org -type: Standard Track +type: Standards Track category: Core status: Draft created: 2017-04-25 diff --git a/EIPS/eip-649.md b/EIPS/eip-649.md index 52f4e1a2b86d24..f679b2248e126d 100644 --- a/EIPS/eip-649.md +++ b/EIPS/eip-649.md @@ -2,7 +2,7 @@ eip: 649 title: Metropolis Difficulty Bomb Delay and Block Reward Reduction Authors: Afri Schoedon, Vitalik Buterin -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-06-21 diff --git a/EIPS/eip-658.md b/EIPS/eip-658.md index 00656acd026d47..e5a7cf5d0bb467 100644 --- a/EIPS/eip-658.md +++ b/EIPS/eip-658.md @@ -2,7 +2,7 @@ eip: 658 title: Embedding transaction status code in receipts author: Nick Johnson -type: Standard Track +type: Standards Track category: Core status: Final created: 2017-06-30 diff --git a/EIPS/eip-681.md b/EIPS/eip-681.md index 6351f46a546d4c..4133fdfeec806a 100644 --- a/EIPS/eip-681.md +++ b/EIPS/eip-681.md @@ -2,7 +2,7 @@ eip: 681 title: URL Format for Transaction Requests author: Daniel A. Nagy -type: Standard Track +type: Standards Track category: ERC status: Draft created: 2017-08-01 diff --git a/EIPS/eip-695.md b/EIPS/eip-695.md index 28503519da73f9..6da6bc60588f2e 100644 --- a/EIPS/eip-695.md +++ b/EIPS/eip-695.md @@ -2,7 +2,7 @@ eip: 695 title: Create `eth_chainId` method for JSON-RPC author: Isaac Ardis Wei Tang , @tcz001 -type: Standard Track +type: Standards Track category: Interface status: Draft created: 2017-08-21 diff --git a/EIPS/eip-7.md b/EIPS/eip-7.md index 1a7c06ec044519..31baa64384ff9f 100644 --- a/EIPS/eip-7.md +++ b/EIPS/eip-7.md @@ -3,7 +3,8 @@ eip: 7 title: DELEGATECALL author: Vitalik Buterin status: Final -type: Homestead feature +type: Standards Track +category: Core created: 2015-11-15 --- diff --git a/EIPS/eip-706.md b/EIPS/eip-706.md index f522dbcb1be980..e1f601250f0ea9 100644 --- a/EIPS/eip-706.md +++ b/EIPS/eip-706.md @@ -2,7 +2,7 @@ eip: 706 title: DEVp2p snappy compression author: Péter Szilágyi -type: Standard Track +type: Standards Track category: Networking status: Final created: 2017-09-07 diff --git a/EIPS/eip-721.md b/EIPS/eip-721.md index 73dfdd74e89f3b..975c97dedee390 100644 --- a/EIPS/eip-721.md +++ b/EIPS/eip-721.md @@ -2,7 +2,7 @@ eip: 721 title: ERC-721 Non-Fungible Token Standard author: William Entriken , Dieter Shirley , Jacob Evans , Nastassia Sachs -type: Standard +type: Standards Track category: ERC status: Draft created: 2018-01-24 diff --git a/EIPS/eip-758.md b/EIPS/eip-758.md index 48c6510ec1745a..61195fb3c431ea 100644 --- a/EIPS/eip-758.md +++ b/EIPS/eip-758.md @@ -2,7 +2,7 @@ eip: 758 title: Subscriptions and filters for transaction return data author: Jack Peterson -type: Standard Track +type: Standards Track category: Interface status: Draft created: 2017-11-09 diff --git a/EIPS/eip-801.md b/EIPS/eip-801.md index 2ddf716694df8a..72637b36baef64 100644 --- a/EIPS/eip-801.md +++ b/EIPS/eip-801.md @@ -2,7 +2,7 @@ eip: 801 title: ERC-801 Canary Standard author: ligi -type: Standard +type: Standards Track category: ERC status: Draft created: 2017-12-16 diff --git a/EIPS/eip-831.md b/EIPS/eip-831.md index 1a1645dc0c83a3..fe64e663eb959f 100644 --- a/EIPS/eip-831.md +++ b/EIPS/eip-831.md @@ -2,7 +2,7 @@ eip: 831 title: URL Format for Ethereum author: ligi -type: Standard Track +type: Standards Track category: ERC status: Draft created: 2018-01-15 diff --git a/EIPS/eip-858.md b/EIPS/eip-858.md index 045eaa5ce33c1f..391e1703b6fdaa 100644 --- a/EIPS/eip-858.md +++ b/EIPS/eip-858.md @@ -2,7 +2,7 @@ eip: 858 title: Reduce block reward author: Carl Larson -type: Standard Track +type: Standards Track category: Core status: Draft created: 2018-01-29 diff --git a/EIPS/eip-868.md b/EIPS/eip-868.md index 3ac28fa0dfb344..41732b42fe4a8e 100644 --- a/EIPS/eip-868.md +++ b/EIPS/eip-868.md @@ -2,7 +2,7 @@ eip: 868 title: Node Discovery v4 ENR Extension author: Felix Lange -type: Standard Track +type: Standards Track category: Networking status: Draft created: 2018-02-02 diff --git a/_config.yml b/_config.yml index 7a73749a0a5b31..79506bcb8cca67 100644 --- a/_config.yml +++ b/_config.yml @@ -23,6 +23,12 @@ twitter_username: ethereum github_username: ethereum header_pages: - index.html + - core.html + - networking.html + - interface.html + - erc.html + - informational.html + - meta.html # Build settings markdown: kramdown diff --git a/_includes/eipnums.html b/_includes/eipnums.html new file mode 100644 index 00000000000000..1c4238b63001ab --- /dev/null +++ b/_includes/eipnums.html @@ -0,0 +1,4 @@ +{% assign eips=include.eips|split:"," %} +{% for eipnum in eips %} + {{eipnum}}{% if forloop.last == false %}, {% endif %} +{% endfor %} diff --git a/_includes/eiptable.html b/_includes/eiptable.html new file mode 100644 index 00000000000000..409ae05c755e1c --- /dev/null +++ b/_includes/eiptable.html @@ -0,0 +1,18 @@ +{% assign bystatus = include.eips|sort:"eip"|group_by:"status" %} +{% for group in bystatus %} + {% if group.name != undefined %} +

{{group.name}}

+
Author{{ page.author | xml_escape }}
+ + + + {% for page in group.items %} + + + + + + {% endfor %} +
NumberTitleAuthor
{{page.eip|xml_escape}}{{page.title|xml_escape}}{{page.author|xml_escape}}
+ {% endif %} +{% endfor %} diff --git a/_layouts/eip.html b/_layouts/eip.html index af6f580ff0d0e8..ba4cf00516cc2e 100644 --- a/_layouts/eip.html +++ b/_layouts/eip.html @@ -7,7 +7,7 @@

EIP {{ page.eip | xml_escape }}: {{ page.title | xml_es {% if page["discussions-to"] != undefined %} - + {% endif %} @@ -16,16 +16,16 @@

EIP {{ page.eip | xml_escape }}: {{ page.title | xml_es {% endif %}

{% if page.requires != undefined %} - + {% endif %} {% if page.replaces != undefined %} - + {% endif %} {% if page["superseded-by"] != undefined %} - + {% endif %} {% if page.resolution != undefined %} - + {% endif %}
Author{{ page.author | xml_escape }}
Discussions-To{{ page["discussions-to"] | xml_escape }}
Discussions-To{{ page["discussions-to"] | xml_escape }}
Status{{ page.status | xml_escape }}
Type{{ page.type | xml_escape }}
Created{{ page.created | xml_escape }}
Requires{{ page.requires | xml_escape }}
Requires{% include eipnums.html eips=page.requires %}
Replaces{{ page.replaces | xml_escape }}
Replaces{{% include eipnums.html eips=page.replaces %}
Superseded by{{ page["superseded-by"] | xml_escape }}
Superseded by{% include eipnums.html eips=page['superseded-by'] %}
Resolution{{ page.resolution | xml_escape }}
Resolution{{ page.resolution | xml_escape }}
diff --git a/core.html b/core.html new file mode 100644 index 00000000000000..29cceb2e7ccaa9 --- /dev/null +++ b/core.html @@ -0,0 +1,7 @@ +--- +layout: page +title: Core +--- + +{% assign eips=site.pages|where:"type","Standards Track"|where:"category","Core" %} +{% include eiptable.html eips=eips %} diff --git a/eip-X.md b/eip-X.md index 5536a2e4cbe6c4..e9460c690b0ace 100644 --- a/eip-X.md +++ b/eip-X.md @@ -4,7 +4,7 @@ title: author: discussions-to: status: Draft -type: +type: category (*only required for Standard Track): created: requires (*optional): diff --git a/erc.html b/erc.html new file mode 100644 index 00000000000000..bc3ba28ce54365 --- /dev/null +++ b/erc.html @@ -0,0 +1,7 @@ +--- +layout: page +title: ERC +--- + +{% assign eips=site.pages|where:"type","Standards Track"|where:"category","ERC" %} +{% include eiptable.html eips=eips %} diff --git a/index.html b/index.html index 0fa5dd46e041e2..653eccfd55df30 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,22 @@ --- -# You don't need to edit this file, it's empty on purpose. -# Edit theme's home layout instead if you wanna make some changes -# See: https://jekyllrb.com/docs/themes/#overriding-theme-defaults -layout: home +layout: default +title: Home --- +

EIPs Gitter

+

Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.

+ +

Contributing

+

First review EIP-1. Then clone the repository and add your EIP to it. There is a template EIP here. Then submit a Pull Request to Ethereum's EIPs repository.

+ +

EIP status terms

+
    +
  • Draft - an EIP that is open for consideration.
  • +
  • Accepted - an EIP that is planned for immediate adoption, i.e. expected to be included in the next hard fork (for Core/Consensus layer EIPs).
  • +
  • Final - an EIP that has been adopted in a previous hard fork (for Core/Consensus layer EIPs).
  • +
  • Deferred an EIP that is not being considered for immediate adoption. May be reconsidered in the future for a subsequent hard fork.
  • +
+ {% assign statuses = site.pages|map:"status"|uniq %} {% assign pages = site.pages|sort:"eip" %} {% for status in statuses %} diff --git a/informational.html b/informational.html new file mode 100644 index 00000000000000..6c322a19c04105 --- /dev/null +++ b/informational.html @@ -0,0 +1,7 @@ +--- +layout: page +title: Core +--- + +{% assign eips=site.pages|where:"type","Informational" %} +{% include eiptable.html eips=eips %} diff --git a/interface.html b/interface.html new file mode 100644 index 00000000000000..aba214600957d0 --- /dev/null +++ b/interface.html @@ -0,0 +1,7 @@ +--- +layout: page +title: Interface +--- + +{% assign eips=site.pages|where:"type","Standards Track"|where:"category","Interface" %} +{% include eiptable.html eips=eips %} diff --git a/meta.html b/meta.html new file mode 100644 index 00000000000000..d9ff658586c8c0 --- /dev/null +++ b/meta.html @@ -0,0 +1,7 @@ +--- +layout: page +title: Meta +--- + +{% assign eips=site.pages|where:"type","Meta" %} +{% include eiptable.html eips=eips %} diff --git a/networking.html b/networking.html new file mode 100644 index 00000000000000..0c62b7fc3067f4 --- /dev/null +++ b/networking.html @@ -0,0 +1,7 @@ +--- +layout: page +title: Networking +--- + +{% assign eips=site.pages|where:"type","Standards Track"|where:"category","Networking" %} +{% include eiptable.html eips=eips %} From 4486c636b8f6e10a412a83e9c3dfe3e1aee00541 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 16:04:37 +0000 Subject: [PATCH 20/28] Neatly format author lists --- _includes/authorlist.html | 10 ++++++++++ _includes/eiptable.html | 2 +- _layouts/eip.html | 6 +++--- 3 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 _includes/authorlist.html diff --git a/_includes/authorlist.html b/_includes/authorlist.html new file mode 100644 index 00000000000000..e32a48c49ccd28 --- /dev/null +++ b/_includes/authorlist.html @@ -0,0 +1,10 @@ +{%- assign authors=include.authors|split:"," -%} +{%- for author in authors -%} + {%- if author contains "<" -%} + {%- assign authorparts=author|split:"<" -%} + "}}">{{authorparts[0]|strip}} + {%- else -%} + {{author}} + {%- endif -%} + {% if forloop.last == false %}, {% endif %} +{%- endfor -%} diff --git a/_includes/eiptable.html b/_includes/eiptable.html index 409ae05c755e1c..db2bcfa4806f3d 100644 --- a/_includes/eiptable.html +++ b/_includes/eiptable.html @@ -10,7 +10,7 @@

{{group.name}}

{{page.eip|xml_escape}} {{page.title|xml_escape}} - {{page.author|xml_escape}} + {% include authorlist.html authors=page.author %} {% endfor %} diff --git a/_layouts/eip.html b/_layouts/eip.html index ba4cf00516cc2e..f1a226e08591ca 100644 --- a/_layouts/eip.html +++ b/_layouts/eip.html @@ -5,7 +5,7 @@

EIP {{ page.eip | xml_escape }}: {{ page.title | xml_escape }}

- + {% if page["discussions-to"] != undefined %} {% endif %} @@ -19,10 +19,10 @@

EIP {{ page.eip | xml_escape }}: {{ page.title | xml_es

{% endif %} {% if page.replaces != undefined %} - + {% endif %} {% if page["superseded-by"] != undefined %} - + {% endif %} {% if page.resolution != undefined %} From 747c296d271b3691cf926cde373c3a6c9cd37335 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 16:15:26 +0000 Subject: [PATCH 21/28] Rewrite home page and add more information and links --- _config.yml | 1 - index.html | 41 ++++++++++++++++++++++++----------------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/_config.yml b/_config.yml index 79506bcb8cca67..4c9a80d54e1f50 100644 --- a/_config.yml +++ b/_config.yml @@ -22,7 +22,6 @@ url: "" # the base hostname & protocol for your site, e.g. http://example.com twitter_username: ethereum github_username: ethereum header_pages: - - index.html - core.html - networking.html - interface.html diff --git a/index.html b/index.html index 653eccfd55df30..531c53639a2ce9 100644 --- a/index.html +++ b/index.html @@ -17,20 +17,27 @@

EIP status terms

  • Deferred an EIP that is not being considered for immediate adoption. May be reconsidered in the future for a subsequent hard fork.
  • -{% assign statuses = site.pages|map:"status"|uniq %} -{% assign pages = site.pages|sort:"eip" %} -{% for status in statuses %} - {% if status != undefined %} -

    {{status}}

    -
    Author{{ page.author | xml_escape }}
    Author{% include authorlist.html authors=page.author %}
    Discussions-To{{ page["discussions-to"] | xml_escape }}
    Requires{% include eipnums.html eips=page.requires %}
    Replaces{{% include eipnums.html eips=page.replaces %}
    Replaces{% include eipnums.html eips=page.replaces %}
    Superseded by{% include eipnums.html eips=page['superseded-by'] %}
    Superseded by{% include eipnums.html eips=page.superseded-by %}
    Resolution{{ page.resolution | xml_escape }}
    - - - - {% for page in pages %} - {% if page.status == status %} - - {% endif %} - {% endfor %} -
    NumberTitleAuthorLayer
    {{page.eip|xml_escape}}{{page.title|xml_escape}}{{page.author|xml_escape}}{{page.layer|xml_escape}}
    - {% endif %} -{% endfor %} +

    EIP Types

    + +

    EIPs are separated into a number of types, and each has its own list of EIPs.

    + +

    Standard Track

    +

    A Standard Track EIP describes any change that affects most or all Ethereum implementations, such as a change to the the network protocol, a change in block or transaction validity rules, proposed application standards/conventions, or any change or addition that affects the interoperability of applications using Ethereum. Furthermore Standard EIPs can be broken down into the following categories.

    + +

    Core

    +

    Improvements requiring a consensus fork (e.g. EIP5, EIP101), as well as changes that are not necessarily consensus critical but may be relevant to “core dev” discussions (for example, EIP90, and the miner/node strategy changes 2, 3, and 4 of EIP86).

    + +

    Networking

    +

    Includes improvements around devp2p (EIP8) and Light Ethereum Subprotocol, as well as proposed improvements to network protocol specifications of whisper and swarm.

    + +

    Interface

    +

    Includes improvements around client API/RPC specifications and standards, and also certain language-level standards like method names (EIP59, EIP6) and contract ABIs. The label “interface” aligns with the interfaces repo and discussion should primarily occur in that repository before an EIP is submitted to the EIPs repository.

    + +

    ERC

    +

    Application-level standards and conventions, including contract standards such as token standards (ERC20), name registries (ERC26, ERC137), URI schemes (ERC67), library/package formats (EIP82), and wallet formats (EIP75, EIP85).

    + +

    Informational

    +

    Describes a Ethereum design issue, or provides general guidelines or information to the Ethereum community, but does not propose a new feature. Informational EIPs do not necessarily represent Ethereum community consensus or a recommendation, so users and implementers are free to ignore Informational EIPs or follow their advice.

    + +

    Meta

    +

    Describes a process surrounding Ethereum or proposes a change to (or an event in) a process. Process EIPs are like Standards Track EIPs but apply to areas other than the Ethereum protocol itself. They may propose an implementation, but not to Ethereum's codebase; they often require community consensus; unlike Informational EIPs, they are more than recommendations, and users are typically not free to ignore them. Examples include procedures, guidelines, changes to the decision-making process, and changes to the tools or environment used in Ethereum development. Any meta-EIP is also considered a Process EIP.

    From 3c19c59e858a6b17f4f00ee639f407dcf88fa3f9 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 16:18:43 +0000 Subject: [PATCH 22/28] Add counts for each type of EIP --- index.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 531c53639a2ce9..e920bde9ccd34e 100644 --- a/index.html +++ b/index.html @@ -21,23 +21,23 @@

    EIP Types

    EIPs are separated into a number of types, and each has its own list of EIPs.

    -

    Standard Track

    -

    A Standard Track EIP describes any change that affects most or all Ethereum implementations, such as a change to the the network protocol, a change in block or transaction validity rules, proposed application standards/conventions, or any change or addition that affects the interoperability of applications using Ethereum. Furthermore Standard EIPs can be broken down into the following categories.

    +

    Standard Track ({{site.pages|where:"type","Standards Track"|size}})

    +

    Describes any change that affects most or all Ethereum implementations, such as a change to the the network protocol, a change in block or transaction validity rules, proposed application standards/conventions, or any change or addition that affects the interoperability of applications using Ethereum. Furthermore Standard EIPs can be broken down into the following categories.

    -

    Core

    +

    Core ({{site.pages|where:"type","Standards Track"|where:"category","Core"|size}})

    Improvements requiring a consensus fork (e.g. EIP5, EIP101), as well as changes that are not necessarily consensus critical but may be relevant to “core dev” discussions (for example, EIP90, and the miner/node strategy changes 2, 3, and 4 of EIP86).

    -

    Networking

    +

    Networking ({{site.pages|where:"type","Standards Track"|where:"category","Networking"|size}})

    Includes improvements around devp2p (EIP8) and Light Ethereum Subprotocol, as well as proposed improvements to network protocol specifications of whisper and swarm.

    -

    Interface

    +

    Interface ({{site.pages|where:"type","Standards Track"|where:"category","Interface"|size}})

    Includes improvements around client API/RPC specifications and standards, and also certain language-level standards like method names (EIP59, EIP6) and contract ABIs. The label “interface” aligns with the interfaces repo and discussion should primarily occur in that repository before an EIP is submitted to the EIPs repository.

    -

    ERC

    +

    ERC ({{site.pages|where:"type","Standards Track"|where:"category","ERC"|size}})

    Application-level standards and conventions, including contract standards such as token standards (ERC20), name registries (ERC26, ERC137), URI schemes (ERC67), library/package formats (EIP82), and wallet formats (EIP75, EIP85).

    -

    Informational

    +

    Informational ({{site.pages|where:"type","Informational"|size}})

    Describes a Ethereum design issue, or provides general guidelines or information to the Ethereum community, but does not propose a new feature. Informational EIPs do not necessarily represent Ethereum community consensus or a recommendation, so users and implementers are free to ignore Informational EIPs or follow their advice.

    -

    Meta

    +

    Meta ({{site.pages|where:"type","Meta"|size}})

    Describes a process surrounding Ethereum or proposes a change to (or an event in) a process. Process EIPs are like Standards Track EIPs but apply to areas other than the Ethereum protocol itself. They may propose an implementation, but not to Ethereum's codebase; they often require community consensus; unlike Informational EIPs, they are more than recommendations, and users are typically not free to ignore them. Examples include procedures, guidelines, changes to the decision-making process, and changes to the tools or environment used in Ethereum development. Any meta-EIP is also considered a Process EIP.

    From d6c6b341c7c2e2ffc28b2af035bad195b4e778b1 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 16:29:32 +0000 Subject: [PATCH 23/28] Add 'all' page --- _config.yml | 1 + _includes/eiptable.html | 2 +- all.html | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 all.html diff --git a/_config.yml b/_config.yml index 4c9a80d54e1f50..6287c5a17f64d6 100644 --- a/_config.yml +++ b/_config.yml @@ -22,6 +22,7 @@ url: "" # the base hostname & protocol for your site, e.g. http://example.com twitter_username: ethereum github_username: ethereum header_pages: + - all.html - core.html - networking.html - interface.html diff --git a/_includes/eiptable.html b/_includes/eiptable.html index db2bcfa4806f3d..ee746a40695824 100644 --- a/_includes/eiptable.html +++ b/_includes/eiptable.html @@ -1,6 +1,6 @@ {% assign bystatus = include.eips|sort:"eip"|group_by:"status" %} {% for group in bystatus %} - {% if group.name != undefined %} + {% if group.name != "" %}

    {{group.name}}

    diff --git a/all.html b/all.html new file mode 100644 index 00000000000000..d57a5a94c7fc18 --- /dev/null +++ b/all.html @@ -0,0 +1,6 @@ +--- +layout: page +title: All +--- + +{% include eiptable.html eips=site.pages %} From fce8e67161f38837debf22ce25107ee6931ff389 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 16:32:13 +0000 Subject: [PATCH 24/28] EIP 779 is meta, not info --- EIPS/eip-779.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-779.md b/EIPS/eip-779.md index 8d422ee04233d7..a8669b2aec7986 100644 --- a/EIPS/eip-779.md +++ b/EIPS/eip-779.md @@ -1,8 +1,8 @@ --- eip: 779 -title: "Hardfork Info: DAO Fork" +title: "Hardfork Meta: DAO Fork" author: Casey Detrio -type: Informational +type: Meta status: Final created: 2017-11-26 --- From 68729bd541858e37c515fae75f4c9ca800a491c6 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 16:33:20 +0000 Subject: [PATCH 25/28] Fix title for informational EIPs listing page --- informational.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/informational.html b/informational.html index 6c322a19c04105..bfe27671758df6 100644 --- a/informational.html +++ b/informational.html @@ -1,6 +1,6 @@ --- layout: page -title: Core +title: Informational --- {% assign eips=site.pages|where:"type","Informational" %} From 3933e540912270a48d3f490ffc54e11708735882 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 16:45:09 +0000 Subject: [PATCH 26/28] Add link to source on EIP pages --- _layouts/eip.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/_layouts/eip.html b/_layouts/eip.html index f1a226e08591ca..23211fa1046432 100644 --- a/_layouts/eip.html +++ b/_layouts/eip.html @@ -3,7 +3,10 @@ ---
    -

    EIP {{ page.eip | xml_escape }}: {{ page.title | xml_escape }}

    +

    + EIP {{ page.eip | xml_escape }}: {{ page.title | xml_escape }} + Source +

    {% if page["discussions-to"] != undefined %} From 74aa58c7a56f01b41d4e733674654aa8e391c38c Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 16:47:06 +0000 Subject: [PATCH 27/28] Add 'fork on github' banner --- index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.html b/index.html index e920bde9ccd34e..9c3c40c2105648 100644 --- a/index.html +++ b/index.html @@ -3,6 +3,8 @@ title: Home --- +Fork me on GitHub +

    EIPs Gitter

    Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.

    From db62ab204e9143822e9d556250c131e554111352 Mon Sep 17 00:00:00 2001 From: Nick Johnson Date: Wed, 21 Mar 2018 18:15:35 +0000 Subject: [PATCH 28/28] Use github metadata for links to github --- _layouts/eip.html | 2 +- index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_layouts/eip.html b/_layouts/eip.html index 23211fa1046432..78b1d22d9807f7 100644 --- a/_layouts/eip.html +++ b/_layouts/eip.html @@ -5,7 +5,7 @@

    EIP {{ page.eip | xml_escape }}: {{ page.title | xml_escape }} - Source + Source

    Author{% include authorlist.html authors=page.author %}
    diff --git a/index.html b/index.html index 9c3c40c2105648..1b2c14e00ab6ee 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ title: Home --- -Fork me on GitHub +Fork me on GitHub

    EIPs Gitter

    Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.

    Author{% include authorlist.html authors=page.author %}