Today the Ethereum network has faced a malfunction, causing exchanges to stop running transactions with ETH. The network’s two main implementation clients - Geth and Parity - went out of sync, accidentally creating two separate chains operating in parallel.
What happened?
The network’s accidental split is largely a result of a very recent network upgrade. The developing team had just finished introducing a number of optimizations to address the system’s vulnerabilities, however a bug in a slightly different approach of the two clients has resulted in a network split. As said in a statement by the Ethereum team, Geth’s journal was failing to revert account deletions when a transaction that deleted empty accounts went OOG.
For this reason, exchanges have discontinued accepting Ethereum for deposits and making withdrawals. Meanwhile, mining pools were advised to switch to Parity or stop mining.
Ethereum quickly identified a fix and is now testing it.
Zsolt Felföldi from Ethereum commented:
“Our codebase is quite clean and well maintained. Still, of course, large complexity brings more errors, and this project is extremely sensitive to any kinds of bugs. Parity is really clean and minimalistic, its design is also based on a lot of previous experience (rewrites are always better quality, this is why we are also doing a lot of refactoring). I'm really glad that we have it around as a safety insurance while we're constantly adding complexity with all the new features. I'd say Geth is more focused on progress while Parity is more about safety and performance, which is probably the best combination we can have at the moment.”
How can they fix it?
The Geth team is currently coding up a patch to fix Geth’s behavior to match that of Parity.
A source close to Ethereum said that it will most likely be necessary to roll back a part of the transaction in one of the chains formed after the moment the fork occurred. Rolling back the chain formed by the geth would mean that all transactions carried out after the faulty block will be canceled, while funds from the respective users will be charged.
However, in a statement it was said that after the new release, users will simply need to run the new geth if they synced past the fork, and it will rewind to the point of the fork and sync from there.
The Ethereum community remains devoted and expresses their full support: “They are making it incredibly strong compared to other chains. As an Ethereum ICO participant and investor as well, I'm totally trusting what the devs are doing within the possibilities that they have.”
While Cointelegraph reached out to the Ethereum team for more details about the malfunction, the primary source for updates on the situation is their Twitter account:
Attention: Consensus fork in progress. Geth is on an incorrect fork. Don't assume transaction finality on Geth fork and switch to Parity!
— ETHCORE (@ethcoreproject) November 24, 2016