A tweet from Trump regarding the upcoming mid-term elections has broken ethereum’s Ropsten testnet, leading to a three way chain-split.
The testnet is for testing, so all funds are safe and nothing at all is affected. Coders are simply seeing how the new Metropolis clients would behave on the live network by testing it first on a clone in lab settings.
This testing was meant to start today, or maybe tomorrow, but testnet blocks have apparently been moving faster than expected, so block 4,230,000 (423) was found this Saturday.
Some testnet miners, who just run on CPU, had apparently not upgraded. This led to a split straight away, which would have easily been solved by the testnet miners upgrading.
That, however, might have hidden for at least a few blocks what looks like a consensus bug somewhere. We’re not sure how reliable a block comparing site is, but Geth and Parity appeared in sync before block 423. Afterwards, the block comparing site seems to be giving different values.
It’s not until Trump got involved, however, that Geth and Parity chain-split. Trump said:
Keith made his way to our testnet thanks to TwitterHunt, a dapp that runs a lottery of sorts on ethereum’s testnet, with people betting on what word Trump will mention next. The top runners currently are big america fake deal stupid. Big wins.
The real winner, however, is Keith and TwitterHunt, which luck now has them on our pages thanks to block 4,230,605:
As you can see, the values look very different starting with difficulty. Assuming both of the above clients have upgraded, then there’s some sort of miscalculation somewhere.
Now they need to figure out why the two clients are behaving differently. Specifically, it seems Parity charged 791,587, while Geth charged 1,078,987. So there must have been some miscalculation somewhere.
Some speculate it might have something to do with the proposed SSTORE opcode in EIP 1283 which makes some improvements for more efficient gas usage.
“Just compare each line of execution in the EVM and find where it differs. Then see which one interpreted the EIP incorrectly and fix it,” someone who appears to be familiar with the matter says.
That might suggest the bug is somewhat easy to solve, but some are saying the upgrade may now be put off until January 2019.
It was set for around the end of November, meaning about a month and a half of testing, but that was under the assumption that there would be no problems.
Now, however, they have to determine just how serious this testnet gas miscalculation bug was, and whether it needs much work to fix.
Devs are enjoying their Sunday today, so not much will be happening on that front, but on Monday we should learn a lot more about what exactly happened, why, and how they now plan to move forward.