slideOptions | ||
---|---|---|
|
- Community & Operations, SPADEco
- Volunteer Organizer for EthMagicians
- Check out FISSION Codes - ERC1066 & ERC1044
-
List of EIPs that made it to draft https://eips.ethereum.org/
-
EIP-1: Purpose and Guidelines https://eips.ethereum.org/EIPS/eip-1
"Ethereum Improvement Proposals describe standards for the Ethereum platform, including core protocol specs, client APIs, and contract standards."
"ERCs are a type of EIP which describe application-level standards and conventions, including contract standards."
Superseded -- but not widely adopted yet -- by ERC223 and ERC777.
- ERC 721 Non-Fungible Tokens
- ERC 1066 FISSION Codes + 1444 FISSION Translate
- ERC 1337 Subscriptions
- ERC 1400 Security Token
- The process exists to create high quality proposals, accepted by consensus of the community
- For quality, we seek competent input
- For acceptance, we seek buy-in from stakeholders
Because the EIPs are maintained as text files in a versioned repository, their revision history is the historical record of the feature proposal.
- Needs-finding, defining requirements, engineering, prototyping
- Write the EIP using the style and format described
- Shepherd the discussions in the appropriate forums
- Build community consensus around the idea
- Read the EIP to check if it is ready
- Check the EIP for language
- Assign an EIP number
- Merge the corresponding pull request
"The editors don't pass judgment on EIPs. We merely do the administrative & editorial part."
The current EIP editors are:
- Nick Johnson (@arachnid)
- Casey Detrio (@cdetrio)
- Hudson Jameson (@Souptacular)
- Vitalik Buterin (@vbuterin)
- Nick Savers (@nicksavers)
- Martin Becze (@wanderer)
-
Standard Track EIPs
- Core - improvements requiring a consensus fork
- Networking - devp2p, LES
- Interface - client API/RPC specifications
- ERC - app-level standards and conventions
- Informational EIPs - general guidelines or information
- Meta EIPs - includes decision-making surrounding Ethereum
- You, the champion or EIP author
- EIP editors
- Ethereum Core Developers
- Are there other important stakeholders?
Initial Submission
- Fork the repo in GitHub.
- Add your EIP to your fork. Use the EIP template.
- Submit a Pull Request & Status Change to the repo.
WIP -> DRAFT -> LAST CALL -> ACCEPTED -> FINAL
WIP -> DRAFT -> LAST CALL -> ACCEPTED -> FINAL
- Champion creates a WIP EIP as a pull request
- Each status change is requested by the EIP author and reviewed by the EIP editors
WIP -> DRAFT -> LAST CALL -> ACCEPTED -> FINAL
Champion seeks support, creates a draft EIP as a pull request.
If agreeable, EIP editor will assign the EIP a number
- unfocused, broad, duplication of effort
- technically unsound
- not addressing backwards compatibility
- not in keeping with the Ethereum philosophy (huh?)
WIP -> DRAFT -> LAST CALL -> ACCEPTED -> FINAL
Champion creates a Last Call EIP as a pull request
Notifies key stakeholders, etc.
- IF agreeable, the EIP editor sets a review end date
FAIL
- material changes are still expected to be made to the draft
FAIL++
- material changes or substantial unaddressed technical complaints will cause the EIP to revert to Draft!
WIP -> DRAFT -> LAST CALL -> ACCEPTED -> FINAL
- this is now in the hands of the client developers.
- developer decisions to implement is NOT part of the EIP process!
WIP -> DRAFT -> LAST CALL -> ACCEPTED -> FINAL
- a Last Call without material changes or unaddressed technical complaints will become Final
- Core EIPs must be implemented in at least three viable Ethereum clients
- when the implementation is complete and adopted by the community, the status will be changed to Final
-
Hardfork inclusion and scheduling is also out of scope of the EIP process
-
Some areas (e.g. JSON-RPC) don't necessarily trigger hard fork
-
Ethereum is moving to have hardforks more often (3 - 6 months)
EIPs are written in markdown format.
Each EIP should have the following parts:
Preamble
Simple Summary
Abstract
Motivation
Specification
Rationale
Backwards Compatibility
Test Cases
Implementations
Copyright Waiver
- Formal Specification for Ethereum / EVM https://github.com/ethereum/yellowpaper, complimented by the Jello Paper https://jellopaper.org/
- DevP2P https://github.com/ethereum/devp2p/
- JSON-RPC https://github.com/ethereum/wiki/wiki/JSON-RPC
- Light Ethereum Subprotocol https://github.com/ethereum/wiki/wiki/Light-client-protocol
- Whisper https://github.com/ethereum/go-ethereum/wiki/Whisper-Overview
- Swarm ethereum/go-ethereum#2959
- ETH2 Specifications Repo https://github.com/ethereum/eth2.0-specs
Start a discussion on ethresear.ch or ethereum-magicians.org
Slides adapted from Jamie Pitts how-to-eip
Contact Boris [email protected]
- Twitter / Github @bmann
Presented 2018/12/20
- Link to JSON-RPC repo
- All EVM
- Previously outstanding question re: patent assignment