ethereum / EIPs

The Ethereum Improvement Proposal repository
https://eips.ethereum.org/
Creative Commons Zero v1.0 Universal
12.94k stars 5.31k forks source link

EIP-2228 Canonicalize the name of network ID 1 and chain ID 1 #2228

Closed fulldecent closed 2 years ago

fulldecent commented 5 years ago

LIVE VERSION: https://eips.ethereum.org/EIPS/eip-2228

Draft text follows

eip: 2228
title: Canonicalize the name of network ID 1 and chain ID 1
author: William Entriken (@fulldecent)
discussions-to: https://github.com/ethereum/EIPs/issues/2228
status: Review
type: Informational
created: 2019-08-04

Simple Summary

The Ethereum network with network ID 1 and chain ID 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 refer to this network.

Motivation

The Ethereum network with network ID 1 and chain ID 1 is referenced using several conflicting names across EIPs, client implementations, and information published on the internet at large. In several locations, even documents written by the same author use inconsistent names to refer to the Ethereum network with network ID 1 and chain ID 1. Names in use at the time of this writing include:

Specification

The network name for network ID 1 and chain ID 1 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.

Trademark note

"Ethereum" is trademarked by the Ethereum Foundation. For more information on your obligations when mentioning "Ethereum", and possibly "Ethereum Mainnet", see:

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 network referred to using inconsistent names in different software, so let's avoid this.

Backwards Compatibility

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 network ID 1 and 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 and 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.

Copyright

Copyright and related rights waived via CC0.

lightclient commented 3 years ago

Fwiw, I prefer "Ethereum Mainnet" and "mainnet" rather than capitalizing mainnet on its own.

MicahZoltu commented 3 years ago

Fwiw, I prefer "Ethereum Mainnet" and "mainnet" rather than capitalizing mainnet on its own.

Heh, I did as well initially but I couldn't come up with a sound argument for it other than "capitalization is a stupid language construct" which isn't exactly a great argument. It is being used as a proper noun, and technically in English that means it should be capitalized.

fulldecent commented 3 years ago

May I interest you in Chinese? :-) In this language you'll never need to think about capitalization again! And a bonus for web designers is that a website will barely use more than one font. Here's a top news site right now: https://www.toutiao.com

MicahZoltu commented 3 years ago

I recommend against including mention of trademarks in the EIP. As a technical standard, I personally believe that discussion of trademarks is way outside the scope of EIPs and the section even mentions that in the last sentence.

sambacha commented 3 years ago

Does this mean networkId=0
 

and what about Mainnet?

timbeiko commented 3 years ago

@fulldecent I think part of your EIP may be wrong. It states:

The note "you must not use [this mark] without the prior written permission of the Foundation" on the Ethereum Foundation website, Terms of Use page

That page actually states the following (link)

The Foundation name, the terms Ethereum Switzerland, Ethereum Asia, the Foundation logo and all related names, logos, product and service names, designs and slogans are trademarks of the Foundation or its affiliates or licensors. You must not use such marks without the prior written permission of the Foundation. All other names, logos, product and service names, designs and slogans on this Websites are the trademarks of their respective owners.

None of this is related to the trademark on "Ethereum" itself, but on the "Ethereum Foundation".

The EF does hold the trademark, but I think your wording with "it may be necessary for your application to show this as "Ethereum® Mainnet" and include a note like "Ethereum is a registered trademark of Ethereum Foundation" elsewhere" is likely excessive given that there is no precedent of the EF requiring the use of either of these sentences.

I would suggest rephrasing the section as follows (and probably moving to the end?):

Trademark note The term "Ethereum" is trademarked by the Ethereum Foundation. For more information on your obligations when mentioning the Ethereum trademark, see USPTO registration number 5110579 by Ethereum Foundation.

fulldecent commented 3 years ago

@timbeiko

First, as to the prescription. Yes, you make a good point, "it may be necessary for your application to..." was inappropriately over-prescriptive. That is now replaced to the more generic "For more information on your obligations...".

Fixed at 9dd16b8d2750e676b0449ed0f9e49f7e5b9d0ff1.


Next is the question of how the authoritative statement:

TRADEMARKS

The Foundation name... and all related names... are trademarks of the Foundation or its affiliates or licensors. You must not use such marks without the prior written permission of the Foundation.... All other names, logos, product and service names, designs and slogans on this Websites are the trademarks of their respective owners.

is referring to the "Ethereum" registered trademark.

This is the TRADEMARKS section of the website terms and it does clearly bifurcate all trademarks as either:

  1. being "trademarks of the foundation"; or
  2. being "trademarks of their respective owners".

Of course the Ethereum trademark is used all over on the Ethereum.org website, and of course it is a "trademark of the foundation" rather than some other "respective owner". So therefore the Ethereum trademark must be in-scope for the statement "You must not use such marks without the prior written permission of the Foundation."

Because the Foundation website is authoritative, and because a reasonable reading of the Foundation policy appears to place a normative restriction on the use of the word "Ethereum", and because this EIP recommends to use the word "Ethereum Mainnet" specifically in applications, now therefore it is appropriate at least to reference this normative statement in the text.

The SPECIFICATION section is where it is recommended "The network name... shall be Ethereum Mainnet", so this is where it is appropriate for the TRADEMARK NOTE section to follow. (TRADEMARK NOTE is a subsection under SPECIFICATION.)


So yes, I agree with you that this EIP should not over-prescribe. That is now fixed. I hope you will agree that the note of relevant information should remain included.

timbeiko commented 3 years ago

This generally LGTM :+1:

fulldecent commented 3 years ago

@MicahZoltu @lightclient considering the updates and some consensus above, request please a merge at https://github.com/ethereum/EIPs/pull/3550/files#diff-20b043411c238ab80bbf6fb38a2f619b922e30f521af70d6952bc895810619fb

axic commented 2 years ago

References to Mainnet that are inconsistent with this specification are made in: EIP-2, EIP-779, EIP-150, EIP-155, EIP-161, EIP-170, EIP-190, EIP-225, EIP-1013, EIP-1679, EIP-1716, EIP-2028, EIP-2200, and EIP-2387. For consistency, we recommend the editor will update EIPs to consistently use the name as specified in this EIP.

@fulldecent you have the above in the backwards compatibility section. Feel free to submit individual PRs to get these changed.

fulldecent commented 2 years ago

Pull requests are made for affected EIPs.

EIP authors, please accept these changes below to use the consistent name "Ethereum Mainnet" and "Mainnet" in your respective EIPs. This wording is standardized in EIP-2228.

Thank you @axic, you got it. Above are all the individual PRs. 😉 and one's yours

axic commented 2 years ago

I commented based on your list in the EIP, which listed substantially fewer. Oh well, approved a lot. I think a bunch of them will be closed by the issue closer bot as there is practically zero chance for any response on them 😓

Correction: your list seems to exactly match the opened PRs. My impression was it is less.

lightclient commented 2 years ago

@axic @MicahZoltu are we okay to just merge these without consent from the authors? Given 2228 is final, this is just a minor correction.

axic commented 2 years ago

I have no objection to that.

axic commented 2 years ago

@fulldecent once all of these are merged, would it make sense removing that clause from 2228?

fulldecent commented 2 years ago

@axic Yes, I will do that, I am keeping a note of my commitment here.

Additionally I have made a PR now removing the items based on progress so far up to today: https://github.com/ethereum/EIPs/pull/4599

MicahZoltu commented 2 years ago

@axic @MicahZoltu are we okay to just merge these without consent from the authors? Given 2228 is final, this is just a minor correction.

I'm not because it is a slippery slope from here to changing terminology for political reasons against the desire of EIP authors (see: blacklist, master, etc.). I have no problem with someone submitting these PRs and soliciting feedback from the individual authors and I even encourage authors to accept the PRs. I do have a problem with forcing specific word choices onto EIPs without author buy-in though.

fulldecent commented 2 years ago

All good points. And definitely don't force merge my "blacklist", that's surely a discussion between me and individual authors.

For The "Mainnet" change specifically, I would like to see that adopted/referenced specifically by EF and on their website just as a good brand identity measure. At that point editors here could be free to force merge that as a typo fix, not as a word choice fix.

fulldecent commented 2 years ago

I have created an issue for the Ethereum.org website as well -- https://github.com/ethereum/ethereum-org-website/issues/4968

Please support that issue, and I can make a PR there.

lightclient commented 2 years ago

I'm not because it is a slippery slope from here to changing terminology for political reasons against the desire of EIP authors

IMO this is not very slippery because we have standardized how "Mainnet" should be referred to and we should now rectify the wording in EIPs the misuse it. I think this should be a new consideration when editing, the same way EIP1234 is not an acceptable way of referring to an EIP.

MicahZoltu commented 2 years ago

IMO this is not very slippery because we have standardized how "Mainnet" should be referred to and we should now rectify the wording in EIPs the misuse it. I think this should be a new consideration when editing, the same way EIP1234 is not an acceptable way of referring to an EIP.

There exists a standard for "Mainnet" but there is no consensus that the standard SHOULD be used. Anyone can create a standard as long as they follow the rules for doing so, but adoption is completely out of scope of this repository and the editors.

I feel like there is a significant step between standardize formatting of links and references within this repository (something that can benefit automation and tooling) and standardizing on word choice. I generally like this particular standard, but I am pretty loath to get into the game of word selection standardization by committee.

lightclient commented 2 years ago

I feel like we should adopt this standard in EIP-1.

fulldecent commented 2 years ago

@lightclient @MicahZoltu just FYI, Ethereum.org website has officially adopted EIP-2228 by implementing it their style guide

https://ethereum.org/en/contributing/style-guide/#mainnet

This is the most favorable support we could want from EF regarding EIP-2228. I hope this helps.

fulldecent commented 2 years ago

Per commitment above, here is a PR to remove an item from the Backwards Compatibility issues as it has been resolved.

https://github.com/ethereum/EIPs/pull/4703


I will set myself another reminder and will follow up here again I can further remove items from this list based on more changes in the future.

MicahZoltu commented 2 years ago

Closing this for housekeeping purposes. Feel free to continue using this issue for discussion about EIP-2228.