A critical bug in Parity and OpenEthereum clients 2.7 and later rendered 13% of Ethereum nodes unusable, highlighting the problem of centralizing network clients.The bug first appeared on GitHub in May. According to the data published at that time, Parity and OpenEthereum clients of versions 2.7 and later contain an unknown critical error that prevents nodes from synchronizing with the last block of the network.
Such errors would be normal if it didn’t take so long to fix them and they didn’t put additional load on the main Ethereum client Geth, which supports about 80% of the network. This dependence of the network on one client is a known potential attack vector on the blockchain, which forced developers to postpone the July hard fork of Berlin so that other clients can increase their stake in the network. However, eight weeks later, Geth’s share has only increased. And it is likely to grow further as operators on affected sites have a choice of shutting down their client, backing up to an older version of the client, or completely switching to another client. Parity Technologies, which originally created the Parity client, dropped its service in December 2019, citing costs. The client was then transferred to the decentralized autonomous organization OpenEthereum. Ethereum developers knew the Parity client was out of specification. OpenEthereum project manager Marcelo Ruiz de Olano said his team found both unsolvable and “very serious problems affecting memory and disk usage.”
A critical bug was left in the @OpenEthereumOrg 'stable' release for months, today they tell node operators to downgrade to a release from 2019— Liam Aharon (@liamaharon) August 24, 2020
Downgrading so far requires re-syncing from scratch, which for some node configurations will take months
As LocalCryptos pointed out back in May, a quick look at the changes to the Geth and Parity codebase on GitHub, especially after the client is handed over to new developers, raises a number of questions regarding the integrity of the latter’s codebase. The OpenEthereum team encouraged node operators to revert to client version 2.5 to start nodes again. De Olano said there are four engineers working on the project, and he hopes to have a workable version of the client released by mid-September, but client diversification remains a challenge for the network.
Do you know what this chart is, #Ethereum? The first person to answer correctly wins 0.1 ETH. Hint: It’s one of the reasons why LocalCryptos—and other big Ethereum projects—made an infrastructure change. pic.twitter.com/qnQzgk3yB0— LocalCryptos (@LocalCryptosEN) May 8, 2020
“Ultimately, it is the community’s goal to increase the variety of clients used on Ethereum, and we appreciate everyone’s help,” said de Olano.