Issues with the Aztlán protocol upgrades were identified and sufficiently patched with the Phoenix protocol upgrades. However, the subsequent activation of these upgrades on the Kotti and Mordor testnets revealed inconsistencies between client implementations. This document proposes a patch for the aforementioned testnets.
The EIP-2200 defines structured definitions of net-gas metering for the
SSTORE opcode. This EIP was activated in a bundle called EIP-1679 “Istanbul” on the Ethereum Foundation network and ECIP-1061 “Aztlán” on the Ethereum Classic network.
Notably, the difference here is that Istanbul contained EIP-1884 which repriced various opcodes for trie-size dependent operations, whereas Aztlán did not.
Both EIP-1884 and EIP-2200 propose the
SLOAD_GAS to be increased from
800 but not all clients correctly implemented this change for both EIPs leaving networks configured with a pick-and-mix EIP configuration such as Aztlán with an incompatible configuration as compared to clients who correctly implemented the specifications.
This specification seeks to validate the incomplete configuration in favor of retaining the Kotti and Mordor testnets in consensus. This ECIP shall not be considered on mainnet. It’s sole purpose is to allow avoiding a rollback on the testnets and having a proper documentation on the cause for the gas mismatch and providing instructions for client developers how to circumvent this.
BLOCK_NUMBER maintain a consistent
SLOAD_GAS cost of
This applies only under the condition:
- that ECIP-1061 Aztlán was activated without ECIP-1078 Phoenix,
- OR that EIP-2200 was activated without EIP-1884.
This document proposes the following
BLOCK_NUMBER at which to implement these changes in the Classic test networks:
778_507on Mordor Classic PoW-testnet (Jan 30th, 2020)
2_058_191on Kotti Classic PoA-testnet (Feb 12th, 2020)
The inconsistency was discovered in a consensus issue on the Mordor Classic testnet between Hyperledger Besu, ETC Core Multi-Geth, and Parity Technologies Parity Ethereum.
The following code changes to the clients are relevant for this ECIP:
- Foundation Geth: ethereum/go-ethereum#20646
- Parity Ethereum: paritytech/parity-ethereum#11474
- Multi-Geth: etclabscore/multi-geth#144
Note, that accepting and merging these pull requests would either require to roll back the Kotti and Mordor testnets or to accept this ECIP-1086 to patch the
SLOAD gas to
200. As author of this proposal I will champion for a patch in favor of a rollback.
Adoption of the content of this ECIP requires a configuration for all clients to allow for configuring
SLOAD_GAS as per ECIP-1086. The implementation cost is considered low.
An implementation is available for:
Copyright and related rights waived via CC0.