As of July 28th, 2019, the Morden Classic testnet finally upgraded successfully to the ECIP-1054 Atlantis protocol version. This article outlines issues discovered so far, the available patch releases, and a general overview of the Atlantis testing state.

ECIP-1054 bundles the Atlantis protocol upgrade for Ethereum Classic which enables the outstanding Ethereum Foundation Spurious Dragon and Byzantium hardforks. For testing and development purposes, this upgrade has been activated on the three Classic testnets.

Atlantis could as well have been green. 💚

Morden testnet

The Morden testnet is the oldest Ethereum Classic testnet. It dates back to August 2015 when Ethereum Classic was launched, and the old pre-release Olympic testnet was abandoned.

Morden is an Ethash proof-of-work network with a custom account start nonce to protect against replay attacks, a relic from times pre-EIP150. The Atlantis hardfork happened at block 4_729_274 on July 28th, 2019.

Currently, two clients support the Morden testnet with Atlantis:

Parity Ethereum 2.4.7, 2.5.2, 2.6.0 and all subsequent stable, beta, and nightly releases. It’s recommended to upgrade Morden Parity nodes to 2.5.5-stable or 2.6.0-beta .

or . Geth Classic 6.0.7 and all subsequent releases. It’s recommended to upgrade Morden Geth nodes to 6.0.7-beta .

. Multi-Geth nodes do not support custom account start nonces anymore and therefore dropped Morden support along with the Foundation Geth.

Mantis client did not implement the Atlantis upgrade and therefore, does no longer support Morden.

Since the protocol upgrade in July, two consensus-relevant issues were discovered on Morden testnet.

An invalid state-root was detected by Parity Ethereum which was generated by a Geth Classic mining node causing a network split. This was an edge case of the state-trie clearing implementation and was patched accordingly.

It came to our attention that all Foundation and Classic Ethereum clients implement EIP-684 even though it’s not specified anywhere. To prevent potential consensus issues between all clients, Geth Classic now also implements EIP-684 by default on all chains.

The two clients supporting the network were patched and now are in consensus and report the same block hashes:

Parity Ethereum imported #4812185 0x82f7…fc41

2019-08-13 11:30:36 Imported #4812183 0xed61…c2f0 (0 txs, 0.00 Mgas, 0 ms, 1.59 KiB)

2019-08-13 11:30:40 Imported #4812184 0x9385…da1e (0 txs, 0.00 Mgas, 0 ms, 1.59 KiB)

2019-08-13 11:30:49 6/25 peers 656 KiB chain 34 MiB db 0 bytes queue 1 MiB sync RPC: 0 conn, 0 req/s, 0 µs

2019-08-13 11:30:52 Imported #4812184 0x4c32…930b (0 txs, 0.00 Mgas, 0 ms, 1.59 KiB)

2019-08-13 11:31:01 Imported #4812184 0xf217…43bb (0 txs, 0.00 Mgas, 0 ms, 1.59 KiB)

2019-08-13 11:31:06 Imported #4812185 0x82f7…fc41 (0 txs, 0.00 Mgas, 0 ms, 1.59 KiB)

Geth Classic import #4812185 82f71683

2019-08-13 11:30:36 Import #4812183 ed61bf76 0/ 0 txs/mgas 1/25 peers

2019-08-13 11:30:40 Import #4812184 93851a5b 0/ 0 txs/mgas 1/25 peers

2019-08-13 11:30:52 Import #4812184 4c3247cf 0/ 0 txs/mgas 1/25 peers

2019-08-13 11:31:01 Import #4812184 f217d002 0/ 0 txs/mgas 1/25 peers

2019-08-13 11:31:06 Import #4812185 82f71683 0/ 0 txs/mgas 1/25 peers

Everything is fine. 🔥

Kotti testnet

The Kotti testnet is the first cross-client proof-of-authority testnet for Ethereum Classic. It was launched in December 2018 by the Görli Testnet Initiative in cooperation with the ETC Cooperative, ETCLabs Core, and individual community members.

Kotti is a Clique proof-of-authority network. The Atlantis hardfork happened at block 716_617 on June 20th, 2019.

Currently, two clients support the Kotti testnet with Atlantis:

Parity Ethereum 2.4.7, 2.5.2, 2.6.0 and all subsequent stable, beta, and nightly releases. It’s recommended to upgrade Kotti Parity nodes to 2.5.5-stable or 2.6.0-beta .

or . Multi-Geth 1.9.1, and all subsequent stable and unstable releases. It’s recommended to upgrade Kotti Geth nodes to 1.9.2-stable .

. Geth Classic does not support the Clique proof-of-authority engine and therefore does not offer a configuration for Kotti.

Mantis client does not support the Clique proof-of-authority engine and therefore does not offer a configuration for Kotti.

Since the protocol upgrade in June, no issues were discovered on Kotti testnet. The two clients supporting the network are in consensus and report the same block hashes:

Parity Ethereum imported #1028977 0xa7c2…dafb

019-08-13 11:39:10 6/25 peers 0 bytes chain 0 bytes db 0 bytes queue 32 KiB sync RPC: 0 conn, 0 req/s, 0 µs

2019-08-13 11:39:13 Imported #1028974 0x4a88…74a0 (0 txs, 0.00 Mgas, 5 ms, 0.59 KiB)

2019-08-13 11:39:29 Imported #1028975 0x184d…33c2 (0 txs, 0.00 Mgas, 4 ms, 0.59 KiB)

2019-08-13 11:39:40 6/25 peers 2 MiB chain 0 bytes db 0 bytes queue 32 KiB sync RPC: 0 conn, 0 req/s, 0 µs

2019-08-13 11:39:44 Imported #1028976 0x4667…2f62 (0 txs, 0.00 Mgas, 3 ms, 0.59 KiB)

2019-08-13 11:39:58 Imported #1028977 0xa7c2…dafb (0 txs, 0.00 Mgas, 1 ms, 0.59 KiB)

Multi-Geth new chain segment number=1028977 hash=a7c285…76dafb

INFO [08-13|11:39:14.711] Imported new chain segment blocks=3 txs=0 mgas=0.000 elapsed=1.313ms mgasps=0.000 number=1028974 hash=4a883b…9774a0 dirty=22.12KiB

INFO [08-13|11:39:29.693] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=360.628µs mgasps=0.000 number=1028975 hash=184d48…4533c2 dirty=22.12KiB

INFO [08-13|11:39:44.607] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=373.175µs mgasps=0.000 number=1028976 hash=46673d…2c2f62 dirty=22.12KiB

INFO [08-13|11:39:53.073] Deep froze chain segment blocks=4284 elapsed=559.486ms number=938975 hash=5cd6c0…23ef76

INFO [08-13|11:39:58.383] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=358.96µs mgasps=0.000 number=1028977 hash=a7c285…76dafb dirty=22.12KiB

Kensington testnet

Due to the constraints of Morden Classic not being available on Multi-Geth, and Kotti not being supported by Geth Classic, a third custom proof-of-work testnet was launched in May 2019 for Ethereum Classic, namely Kensington.

Kensington is an Ethash proof-of-work network. The Atlantis hardfork happened at block 100 on June 10th, 2019.

Currently, three clients support the Kensington testnet with Atlantis:

Parity Ethereum 2.4.7, 2.5.2, 2.6.0 and all subsequent stable, beta, and nightly releases. It’s recommended to upgrade Kensington Parity nodes to 2.5.5-stable or 2.6.0-beta .

or . Multi-Geth 1.9.1, and all subsequent stable and unstable releases. It’s recommended to upgrade Kensington Geth nodes to 1.9.2-stable .

. Geth Classic 6.0.7 and all subsequent releases. It’s recommended to upgrade Kensington Geth nodes to 6.0.7-beta .

. Mantis client did not implement the Atlantis upgrade and therefore doesn’t support Kensington.

Since the protocol upgrade in June, four consensus-issues were discovered on Kensington testnet.

The three clients supporting the network were patched and now are in consensus and report the same block hashes:

Parity Ethereum imported #427131 0xb481…9390

2019-08-13 11:02:21 Imported #427129 0x0230…35f2 (0 txs, 0.00 Mgas, 9 ms, 0.53 KiB) + another 76 block(s) containing 118 tx(s)

2019-08-13 11:02:28 Imported #427130 0x4957…8fc2 (0 txs, 0.00 Mgas, 0 ms, 0.53 KiB)

2019-08-13 11:02:50 6/25 peers 244 KiB chain 16 MiB db 0 bytes queue 10 MiB sync RPC: 0 conn, 0 req/s, 0 µs

2019-08-13 11:03:20 6/25 peers 465 KiB chain 16 MiB db 0 bytes queue 10 MiB sync RPC: 0 conn, 0 req/s, 0 µs

2019-08-13 11:03:21 Imported #427131 0xb481…9390 (11 txs, 1.37 Mgas, 5 ms, 7.89 KiB)

Multi-Geth new chain segment number=427131 hash=b48186…079390

INFO [08-13|11:02:57.647] Commit new mining work number=427131 sealhash=57df89…ecd402 uncles=0 txs=8 gas=924000 fees=0.03696 elapsed=1.261ms

INFO [08-13|11:03:00.666] Commit new mining work number=427131 sealhash=2b71a7…0387be uncles=0 txs=10 gas=1155000 fees=0.0462 elapsed=18.206ms

INFO [08-13|11:03:06.650] Commit new mining work number=427131 sealhash=2faec4…44e762 uncles=0 txs=11 gas=1365000 fees=0.0546 elapsed=1.813ms

INFO [08-13|11:03:21.450] Imported new chain segment blocks=1 txs=11 mgas=1.365 elapsed=39.712ms mgasps=34.372 number=427131 hash=b48186…079390 dirty=32.90KiB

INFO [08-13|11:03:21.451] Commit new mining work number=427132 sealhash=f5eab5…1b07d9 uncles=0 txs=0 gas=0 fees=0 elapsed=282.55µs

Geth Classic import #427131 b4818694

2019-08-13 11:01:41 Import #427127 c62cfa68 0/ 0 txs/mgas 2/25 peers

2019-08-13 11:01:44 Import #427128 780836ee 0/ 0 txs/mgas 2/25 peers

2019-08-13 11:01:59 Import #427129 0230bbdc 0/ 0 txs/mgas 2/25 peers

2019-08-13 11:02:27 Import #427130 49577213 0/ 0 txs/mgas 2/25 peers

2019-08-13 11:03:21 Import #427131 b4818694 11/ 1 txs/mgas 2/25 peers

This fork is as old as Morden, apparently. 📝

Moving forward, we will conduct further testing on private ad-hoc and the public testnets and encourage everyone to break the Atlantis features with the three clients Parity Ethereum, Multi-Geth, and Geth Classic.

Someone even made a video. 🎥