testing a fork
The Spurious Dragon fork is scheduled for next week; block 2675000 is likely to occur on Tuesday night (CET). The block number for the “Morden” testnet was programmed at block 1885000. Performing the fork on the testnet before forking on the mainnet was an important measure taken in the testing process to ensure a smooth transfer. smoothly to the post-fork state. .
The Morden fork occurred on November 20, 2016, 06:12:20 + UTC, at block 1885000 as planned. A bit later, at block 1885074, there was a consensus issue between Geth and Parity.
Modern reproduction protection
The Morden testnet has been running since the launch of the Ethereum blockchain (July 2015). At the time, concerns about replay attacks between Morden and Mainnet were addressed through the use of nonce compensation. All accounts in Morden used an initial nonce of 2^20 instead of 0ensuring that any valid transactions on one chain would not be valid on the other.
FOOT 161 specifies new EVM rules regarding nonces. Implementation of those rules, in combination with Morden-specific nonce rules, resulted in Geth and Parity creating incompatible blocks at block 1885074.
Consequences for the main network
All issues encountered during the implementation of Spurious Dragon on the testnet were Morden-specific. There are currently no known issues affecting Mainnet.
Commissioning of the new “Ropsten” test network
Before the current hard forks, there were already discussions about restarting the testnet from a new genesis block to make the full sync simpler and less resource intensive. And due to the low difficulty of the testnet, the difficulty bomb it was already causing noticeable increases in block times, which would continue to grow if left unaddressed. So now is the right time to leave Morden behind and start a new testnet.
New clients will be released using Ropsten instead of Morden as the default testnet.
Developers who want to get started with Ropsten right away can download the genesis file hereand start a client with the Ropsten network ID:3
- geth: geth –datadir /path/to/testnet/data init genesis.json; geth –datadir /path/to/testnet/data –networkid 3 console
- parity: Discharge ropstone.jsonafter parity –string path/to/ropsten.json