A Consensus Issue Between The Geth and Parity Ethereum Clients Caused an Unintentional Fork of the Network

An issue in the Geth implementation of the Ethereum protocol, maintained by the foundation of the same name, caused an unintentional fork in the network. Nick Johnson, an ETH developer, confirmed the problem on reddit and said that the foundation has identified the root cause. 

Ethereum developers can’t catch a break. After successfully performing its #4 hard fork, Ethereum was set to clear the path of roadblocks such as the ongoing DDoS attack on the network and the blockchain bloat. However, a flawed implementation of the EIP 161 in Geth (the “official” implementation of Ethereum) caused a major consensus issue, effectively forking the network between Parity clients and Geth users.

The EIP 161 was a solution intended to clear the “state” (the sum of all accounts and transactions over the history of the blockchain) of spam accounts generated by the attacker who performed a Distributed Denial of Service attack (DDoS).

Consensus issues between Ethereum clients caused disruptions of service among exchanges and trading platforms. Bitfinex, Poloniex, and others decided to halt ETH deposits and withdrawals to avoid more problems. Vitalik Buterin, co-founder of Ethereum, said:

Essentially, Geth’s journal was failing to revert account deletions when a transaction that deleted empty accounts went OOG. This transaction triggered it. We have identified a fix, and are now in the process of testing it. We recommend that exchanges stop accepting deposits/withdrawals until a release is pushed, and that mining pools switch to parity or stop.

Once again the multiple implementations of the Ethereum protocol saved the day, especially Parity, the software maintained by Ethcore.

Ethcore was founded by former Ethereum CTO Dr. Gavin Wood, creator of the Ethereum specification and, together with several former core Ethereum team members, the smart contract programming language, Solidity.

This approach to have multiple clients guarantees that faults or errors in one piece of software don’t affect the whole network. Users can simply switch to another one. Most mining pools have implemented a redundancy policy to increase robustness levels. It appears, however, that the biggest ethereum exchange by market volume, Poloniex, has refused to implement such policies. Dr. Gavin Wood, said:

Given they’re [Poloniex] the biggest exchange in ether land, they should be running at least two clients. We have tried time and again to contact them, yet they refuse to engage. I know that other (large) exchanges are way more sensible in this regard.

The price of ether quickly plummeted across all major exchanges, going from $9.5 to a local low of $8.67 (data via Kraken). Ethereum developers are currently working on a fix, which will probably be released in a short timespan. Its progress can be tracked through this GitHub pull request.

Image via Shutterstock.

If you liked this article, follow us on Twitter @themerklenews and make sure to subscribe to our newsletter to receive the latest bitcoin, cryptocurrency, and technology news.