From 823ac0e2f05fa3c731421c0742750e76ba883138 Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 07:28:04 -0500 Subject: [PATCH 01/12] draft(ECIP1087): draft way to unfuck the Aztlan+Phoenix testnet situation Signed-off-by: meows --- _specs/ecip-1087.md | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 _specs/ecip-1087.md diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md new file mode 100644 index 000000000..cf1f0b209 --- /dev/null +++ b/_specs/ecip-1087.md @@ -0,0 +1,56 @@ +--- +ecip: 1087 +title: EIP2200 Correction on Mordor Testnet +discussions-to: TBD +status: Draft +type: Standards Track (Core) +created: 2020-02-20 +license: Apache-2.0 +--- + +### Abstract + +Don't touch Kotti; allow ECIP1061, ECIP1078, and ECIP1086 (EIP2200, EIP2200Disable) to continue as specified and implemented there. + +Rollback Mordor to 750000, activate ECIP1078 at block 778508. + +### Motivation + +ECIP1061 specifies a hard fork "Aztlan" for ETC networks. (google it) +ECIP1078 specifies a hard fork "Phoenix" for ETC Networks (discussions here: https://github.com/ethereumclassic/ECIPs/issues/262). + +ECIP1061 includes EIP2200. +ECIP1078 disables EIP2200 + +EIP2200 was incorrectly implemented in ethereum/go-ethereum, etclabscore/multi-geth, multi-geth/multi-geth, and paritytech/parityethereum clients, which together compose the lion's share of ETC network providership. +EIP2200 has since been (simply) corrected (in all impacted providers AFAIK). + +ECIP1061 and ECIP1078 have equal activation block numbers on mainnet. +But, ECIP1061 has already been activated on testnets, while ECIP1078, with a later testnet activation values, is not yet enabled on testnets. + +This means that an incorrect implementation of EIP2200 is live on testnets. +This means that protocol providers publishing releasing which include ECIP1078 for testnets are faced with a dilemma: + +- Don't correct EIP2200 before the testnets ECIP1078 fork. +- Do correct EIP2200 before the fork, but follow specification (ECIP1086) to "allow" the incorrect EIP2200 implementation. +- Do correct EIP2200 before the fork, but rollback the effected testnets to "reset" prior to the impact of the incorrect EIP2200 implementation. + +There seem to be two major, sometimes contradictory, philosophies about ETC testnets. + +A. Testnets are a public service; a place for ETC-based dapp developers to try out their stuff in public. +B. Testnets are a public test; a place to demonstrate network feature acceptance before equivalent changes risk actual value on ETC mainnet. + +### Specification + +Accept and include ECIP1086 on Kotti testnet. It's a PoA network, so it doesn't mirror ETC mainnet in the first place since it uses different consensus rules. + +Change Mordor testnet ECIP1078 activation number to 778507. This will place ECIP1061 and ECIP1078 activation at equal blocks, and they will activate simulaneously, just like they are scheduled to on mainnet. +Reset Mordor testnet back to block 775000 (3507 blocks prior to its ECIP1061 -- and, as proposed, ECIP1078 -- activation). + +### Rationale + +This allows one testnet (Kotti, the one already consensus-different from mainnet) to continue as an unedited public resource, and the other (Mordor, the Proof of Work one) to simulate the feature and feature-activation behavior of mainnet equivalently. + +### Implementation + +### Copyright/Licensing From 63b71c111a50ad066f641136a9707336018a3609 Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 07:35:29 -0500 Subject: [PATCH 02/12] typo(ECIP1087): fix Signed-off-by: meows --- _specs/ecip-1087.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index cf1f0b209..60e97b5d3 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -12,7 +12,7 @@ license: Apache-2.0 Don't touch Kotti; allow ECIP1061, ECIP1078, and ECIP1086 (EIP2200, EIP2200Disable) to continue as specified and implemented there. -Rollback Mordor to 750000, activate ECIP1078 at block 778508. +Rollback Mordor to 750000, activate ECIP1078 at block 778507. ### Motivation From 00baa61510bec38b591b32685af65f4986f3b022 Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 07:37:20 -0500 Subject: [PATCH 03/12] draft(ECIP1087): more detailed abstract Signed-off-by: meows --- _specs/ecip-1087.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index 60e97b5d3..3378ed388 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -12,7 +12,7 @@ license: Apache-2.0 Don't touch Kotti; allow ECIP1061, ECIP1078, and ECIP1086 (EIP2200, EIP2200Disable) to continue as specified and implemented there. -Rollback Mordor to 750000, activate ECIP1078 at block 778507. +Rollback Mordor to 750000 (3507 block prior to ECIP1061 activation), with ECIP1078 activation at block 778507 (same as ECIP1061). ### Motivation From 6d8f5dce4bffedd9d4c701936f986bbebb2d97ce Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 07:56:24 -0500 Subject: [PATCH 04/12] draft(ECIP1087): improve wording, rationale Signed-off-by: meows --- _specs/ecip-1087.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index 3378ed388..98efe9387 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -12,24 +12,26 @@ license: Apache-2.0 Don't touch Kotti; allow ECIP1061, ECIP1078, and ECIP1086 (EIP2200, EIP2200Disable) to continue as specified and implemented there. -Rollback Mordor to 750000 (3507 block prior to ECIP1061 activation), with ECIP1078 activation at block 778507 (same as ECIP1061). +Rollback Mordor to 750000 (3507 blocks prior to ECIP1061 activation), with ECIP1078 activation at block 778507 (same as ECIP1061). ### Motivation ECIP1061 specifies a hard fork "Aztlan" for ETC networks. (google it) + ECIP1078 specifies a hard fork "Phoenix" for ETC Networks (discussions here: https://github.com/ethereumclassic/ECIPs/issues/262). -ECIP1061 includes EIP2200. +ECIP1061 enables EIP2200. + ECIP1078 disables EIP2200 EIP2200 was incorrectly implemented in ethereum/go-ethereum, etclabscore/multi-geth, multi-geth/multi-geth, and paritytech/parityethereum clients, which together compose the lion's share of ETC network providership. EIP2200 has since been (simply) corrected (in all impacted providers AFAIK). -ECIP1061 and ECIP1078 have equal activation block numbers on mainnet. -But, ECIP1061 has already been activated on testnets, while ECIP1078, with a later testnet activation values, is not yet enabled on testnets. +ECIP1061 and ECIP1078 have equal activation block numbers on mainnet (10_500_839). +But ECIP1061 has already been activated on testnets, while ECIP1078, with a later testnet activation, is not yet enabled on the testnets. This means that an incorrect implementation of EIP2200 is live on testnets. -This means that protocol providers publishing releasing which include ECIP1078 for testnets are faced with a dilemma: +This means that protocol providers publishing releases which include ECIP1078 for testnets are faced with a dilemma: - Don't correct EIP2200 before the testnets ECIP1078 fork. - Do correct EIP2200 before the fork, but follow specification (ECIP1086) to "allow" the incorrect EIP2200 implementation. @@ -38,18 +40,23 @@ This means that protocol providers publishing releasing which include ECIP1078 f There seem to be two major, sometimes contradictory, philosophies about ETC testnets. A. Testnets are a public service; a place for ETC-based dapp developers to try out their stuff in public. + B. Testnets are a public test; a place to demonstrate network feature acceptance before equivalent changes risk actual value on ETC mainnet. ### Specification -Accept and include ECIP1086 on Kotti testnet. It's a PoA network, so it doesn't mirror ETC mainnet in the first place since it uses different consensus rules. +Accept and include ECIP1086 on Kotti testnet. This leaves ECIP1061, ECIP1078, and the current proposal for handling the EIP2200 in/correction as-is and unchanged. Change Mordor testnet ECIP1078 activation number to 778507. This will place ECIP1061 and ECIP1078 activation at equal blocks, and they will activate simulaneously, just like they are scheduled to on mainnet. Reset Mordor testnet back to block 775000 (3507 blocks prior to its ECIP1061 -- and, as proposed, ECIP1078 -- activation). ### Rationale -This allows one testnet (Kotti, the one already consensus-different from mainnet) to continue as an unedited public resource, and the other (Mordor, the Proof of Work one) to simulate the feature and feature-activation behavior of mainnet equivalently. +Kotti is a PoA network, so it doesn't simulate (_ie_ test) ETC mainnet in the first place (at least not _well_) since it uses different consensus rules. +If it is a public simulation and test of ETC mainnet, it isn't a good one. So we can follow the logic of A: Testnets-as-service. + +Mordor is a PoW network, so is is a pretty good simulator of ETC mainnet. +We can follow the logic of B: Testnets-as-test, and not only resolve the issue of EIP2200 correction, but improve the network's simulation of mainnet activation for ECIP1061 and ECIP1078. ### Implementation From 62c6cc682c5ba3248fdde119490fd9e424336f32 Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 07:57:51 -0500 Subject: [PATCH 05/12] draft(ECIP1087): improve abstract Signed-off-by: meows --- _specs/ecip-1087.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index 98efe9387..3d3c99020 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -12,7 +12,7 @@ license: Apache-2.0 Don't touch Kotti; allow ECIP1061, ECIP1078, and ECIP1086 (EIP2200, EIP2200Disable) to continue as specified and implemented there. -Rollback Mordor to 750000 (3507 blocks prior to ECIP1061 activation), with ECIP1078 activation at block 778507 (same as ECIP1061). +Set Mordor ECIP1078 activation to 778507 (equivalent to ECIP1061), and rollback to 750000. ### Motivation From c6076e0db66766ea840798b4b527547b7f01b5c8 Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 08:24:34 -0500 Subject: [PATCH 06/12] draft(ECIP1087): note that eip2200 won't event actually be enabled on etc mainnet Signed-off-by: meows --- _specs/ecip-1087.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index 3d3c99020..e1884d051 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -30,7 +30,7 @@ EIP2200 has since been (simply) corrected (in all impacted providers AFAIK). ECIP1061 and ECIP1078 have equal activation block numbers on mainnet (10_500_839). But ECIP1061 has already been activated on testnets, while ECIP1078, with a later testnet activation, is not yet enabled on the testnets. -This means that an incorrect implementation of EIP2200 is live on testnets. +This means that an incorrect (and mainnet irrelevant) implementation of EIP2200 is live on testnets. This means that protocol providers publishing releases which include ECIP1078 for testnets are faced with a dilemma: - Don't correct EIP2200 before the testnets ECIP1078 fork. From 635b4ff84111667846406f07fc40ece878ce7c98 Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 08:26:21 -0500 Subject: [PATCH 07/12] draft(ECIP1087): use a colon Signed-off-by: meows --- _specs/ecip-1087.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index e1884d051..e6f3ba758 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -37,7 +37,7 @@ This means that protocol providers publishing releases which include ECIP1078 fo - Do correct EIP2200 before the fork, but follow specification (ECIP1086) to "allow" the incorrect EIP2200 implementation. - Do correct EIP2200 before the fork, but rollback the effected testnets to "reset" prior to the impact of the incorrect EIP2200 implementation. -There seem to be two major, sometimes contradictory, philosophies about ETC testnets. +There seem to be two major, sometimes contradictory, philosophies about ETC testnets: A. Testnets are a public service; a place for ETC-based dapp developers to try out their stuff in public. From a57f2e8ea521c1de7105b870065be4e7ffbbe9b6 Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 08:28:10 -0500 Subject: [PATCH 08/12] draft(ECIP1087): minor words mod Signed-off-by: meows --- _specs/ecip-1087.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index e6f3ba758..438b9664e 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -55,7 +55,7 @@ Reset Mordor testnet back to block 775000 (3507 blocks prior to its ECIP1061 -- Kotti is a PoA network, so it doesn't simulate (_ie_ test) ETC mainnet in the first place (at least not _well_) since it uses different consensus rules. If it is a public simulation and test of ETC mainnet, it isn't a good one. So we can follow the logic of A: Testnets-as-service. -Mordor is a PoW network, so is is a pretty good simulator of ETC mainnet. +Mordor is a PoW network, making it a better simulator of ETC mainnet. We can follow the logic of B: Testnets-as-test, and not only resolve the issue of EIP2200 correction, but improve the network's simulation of mainnet activation for ECIP1061 and ECIP1078. ### Implementation From 6e30fd43c1d3d555ad5de4add288b537a1c0bf0c Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 08:30:11 -0500 Subject: [PATCH 09/12] draft(ECIP1087): make title more descriptive and referential kind of Signed-off-by: meows --- _specs/ecip-1087.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index 438b9664e..f58dc2b90 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -1,6 +1,6 @@ --- ecip: 1087 -title: EIP2200 Correction on Mordor Testnet +title: ECIP1061/ECIP1078/ECIP1086 on Mordor Testnet (with rollback) discussions-to: TBD status: Draft type: Standards Track (Core) From 75673d1e4e7a69c4b6f574450eea40549ab83757 Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 20 Feb 2020 12:22:07 -0500 Subject: [PATCH 10/12] draft(ECIP1087): require the required ECIPS Signed-off-by: meows --- _specs/ecip-1087.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index f58dc2b90..ae82aaf8a 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -6,6 +6,7 @@ status: Draft type: Standards Track (Core) created: 2020-02-20 license: Apache-2.0 +requires: ECIP1061 ECIP1078 ECIP1086 --- ### Abstract From c4d67b98e9ba2e030219026dd430ee6456f89cd8 Mon Sep 17 00:00:00 2001 From: meows Date: Wed, 26 Feb 2020 14:23:57 -0500 Subject: [PATCH 11/12] status(ECIP1087): Withdrawn Signed-off-by: meows --- _specs/ecip-1087.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index ae82aaf8a..46b0971ec 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -2,7 +2,7 @@ ecip: 1087 title: ECIP1061/ECIP1078/ECIP1086 on Mordor Testnet (with rollback) discussions-to: TBD -status: Draft +status: Withdrawn type: Standards Track (Core) created: 2020-02-20 license: Apache-2.0 From 22877aca8409b07a902c96d606d23c070390c8d0 Mon Sep 17 00:00:00 2001 From: meows Date: Thu, 27 Feb 2020 11:29:23 -0500 Subject: [PATCH 12/12] add licensing and spec sections per https://github.com/ethereumclassic/ECIPs/pull/295#issuecomment-592044633 Signed-off-by: meows --- _specs/ecip-1087.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/_specs/ecip-1087.md b/_specs/ecip-1087.md index 46b0971ec..3cdd46071 100644 --- a/_specs/ecip-1087.md +++ b/_specs/ecip-1087.md @@ -61,4 +61,9 @@ We can follow the logic of B: Testnets-as-test, and not only resolve the issue o ### Implementation +N/A + ### Copyright/Licensing + +This work is licensed under [Apache License, Version +2.0](http://www.apache.org/licenses/).