Create eip-2228.md (#3141)

Create eip-2228.md
This commit is contained in:
William Entriken 2020-12-04 15:16:01 -05:00 committed by GitHub
parent 3a078f91e4
commit d12f21446e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

106
EIPS/eip-2228.md Normal file
View File

@ -0,0 +1,106 @@
---
eip: 2228
title: Canonicalize the name of network with chain ID 1
author: William Entriken (@fulldecent)
discussions-to: https://github.com/ethereum/EIPs/issues/2228
status: Draft
type: Informational
created: 2019-08-04
---
## Simple Summary
The Ethereum network with chainid 1 is named Ethereum Mainnet.
## Abstract
The name for the Ethereum network with network ID 1 and chain ID 1 shall be Ethereum Mainnet or just Mainnet. This is a proper noun.
This standard specifies the name for this network and provides reference examples in an effort to standardize the word choice and provide a common language for use to use to refer to this network.
## Motivation
The Ethereum network with chainid 1 is referenced from authoritative sources using several names that are conflicting:
* Vitalik has called it "main net" at http://eips.ethereum.org/EIPS/eip-155 http://eips.ethereum.org/EIPS/eip-170
* Vitalik has called it "mainnet" at http://eips.ethereum.org/EIPS/eip-86
* Vitalik has called it "Main net" at http://eips.ethereum.org/EIPS/eip-2* http://eips.ethereum.org/EIPS/eip-150
* \* In EIP-2, it is unclear if the first letter is capital because it is a proper noun or if it is the the first word in a text column presented in sentence case
* Vitalik has called it "Mainnet" at http://eips.ethereum.org/EIPS/eip-7
* Geth documentation calls its "mainnet" at https://geth.ethereum.org/support/FAQ
* A final EIP here has referred to it as "Mainnet" at http://eips.ethereum.org/EIPS/eip-779
## Specification
The network name shall be Ethereum Mainnet, or just Mainnet if the context is known to be discussing Ethereum networks. This IS a proper noun. Several examples are given below which differentiate between usage of the name of the network versus a descriptive reference to the network.
Any name or word styling (i.e. capitalization of the letters) of the network which is inconsistent with the test cases cited below shall NOT be used.
## Rationale
Choosing common word use promotes interoperability of implementations and increases customer awareness. Also, it adds a sense of professionalism when customers see the same word and word styling (i.e. capitalization of letters) across different implementations.
Anybody that has travelled to certain countries and seen an "IPhone [sic]" repair store should immediately recognize that this is off-brand and unofficial. Likewise, the astute customer of Ethereum should recognize if they see the name of the network referred to using different names in different software, so let's avoid this.
## Backwards Compatibility
- MetaMask currently uses the wording "Main Ethereum Network" in the account network chooser. In this context, it is understood that "main" is used as an adjective, not a proper noun form. Such usage is acceptable per this EIP. Also, MetaMask is using "Main" and "Network" with a capitalized first letter for stylistic purposes, not to designate a proper noun.
- Certain references to "Mainnet" and alternate spellings are published in EIPs made in the following published EIPs 2, 7, 150, 155, 170 and 779.
## Test Cases
### Examples referencing the name of the network
> The contract was deployed to Ethereum Mainnet.
> Ethereum runs many applications, this Dapp was deployed to Mainnet.
No specification is made on whether Dapp, dapp, dApp, etc. is preferred.
> SWITCH TO MAINNET
This example shows a user interface which is in uppercase. To be semantically correct, this could be written in HTML as `<span style="text-transform: uppercase">Switch to Mainnet</span>`.
> switch to mainnet
This example shows a user interface which is in lowercase. To be semantically correct, this could be written in HTML as `<span style="text-transform: lowercase">Switch to Mainnet</span>`.
### Examples referencing the network in a descriptive way
> Mainnet has ### times the number of transactions as the test networks.
### Examples of other correct word usage
> The main network on Ethereum is Mainnet
This shows that "main" is used as a descriptive word, but Mainnet is the specific network which is having chain ID 1.
### Examples of poor word choice (avoid this)
> Deploy your contract to the Ethereum main network.
This is referring to a "main" network which is context-dependent. If you were reading this text on a page about Ethereum Classic, they would be referring to network_id: 2 / chain_id: 62. Therefore this word usage is less crisp. Do NOT use wording like this.
> Connect to mainnet.
These words literally mean nothing. The lowercase, not-proper-noun word "mainnet" is not a plain English word and it should not be in any dictionary. Do NOT use wording like this.
## Implementation
An exhaustive list of examples is provided above in the specification and test cases sections.
## References
**Standards**
1. [EIP-2](./eip-2.md) Homestead Hard-fork Changes.
1. [EIP-7](./eip-7.md) DELEGATECALL.
1. [EIP-150](./eip-150.md) Gas cost changes for IO-heavy operations.
1. [EIP-155](./eip-155.md) Simple replay attack protection.
1. [EIP-170](./eip-170.md) Contract code size limit.
1. [EIP-779](./eip-779.md) Hardfork Meta: DAO Fork.
## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).