So many users are dependent on Ethereum client Geth that a bug could temporarily freeze the network â something blockchains arenât supposed to do, ever. In light of this, Ethereum Core developers decided Friday to postpone work on the Berlin hard fork until at least August in an effort to give other clients a chance to increase their share of the network.
Geth makes up only one of 11 client specifications, but 79% of Ethereum nodes run on it, according to Ether Nodes. That percentage is also up 5% since December. Developers worry that a serious bug could break Ethereum â particularly as rolling updates to Eth 1.x continue before the network transitions to a Proof-of-Stake (PoS) consensus algorithm under Eth 2.0.
âGeth is the majority of the network,â Geth team leader Péter Szilágyi said in last Fridayâs All Core Developers group call. âItâs super important that we are correct because we cannot afford to not be correct.â
Having a diversity of clients is good for the network. It allows different projects to join Ethereumâs developer community â from the tiniest startup to JPMorgan. Ethereum had eight languages in various levels of completeness one year after its 2015 launch. The Ethereum Foundation currently lists clients in five languages including Go, Solidity, Java, JavaScript and Python.Â
Read more: The Zcash Privacy Tech Underlying Ethereumâs Transition to Eth 2.0
Yet, like the human tongue, every programming language has its nuances and therefore implementation drawbacks. When Ethereum developers conduct updates those nuances can turn into nasty bugs.
âThe main reason [to postpone Berlin] would be to reduce dependency on Geth and allow it to fail without bringing down the whole network,â said independent developer Alexey Akhunov in a private chat. âCurrently the burden is too high since Geth correctness is so critical, and they end up doing most of the work on ensuring everything works correctly.â
This has been accelerated by the deprecation of the Parity Ethereum client as announced by Parity Technologies in December 2019. âParity is increasingly unable to dedicate the level of resources required for even simple maintenance of this project,â the Parity team wrote in a blog post at the time.
That projectâs codebase was handed off to a decentralized autonomous organization (DAO) of developers funded by ConsenSys spinout Gnosis. It now operates under the name âOpen Ethereum.â Since December, the client has lost nearly 60% of its nodes, according to the Web Archive. (Note: Geth has lost some 14% of its nodes since December as well.)
âIn an ideal world we would have multiple clients with no client having a higher market share than 33%,â Gnosis founder Martin Köppelmann said in a private message. âWhile it is true that Open Ethereum has not reached the number of nodes running [that] the Parity client had, we donât see that as a decline. Quite the opposite. When Gnosis effectively took over the responsibility for Open Ethereum we started at a market share of 0.â
Szilágyiâs concerns remain valid regardless of Köppelmannâs enthusiasm, however. Getting individuals, exchanges or clients to run anything but Geth has been difficult and that dependency would be fatally exposed if Geth ever encounters technical issues.
This dependency is the very reason Eth 2.0 is so slow to launch. Eth 2.0 researchers have agreed to wait until a diversity of clients can launch in concert to prevent any hiccups if one or more goes down.
Comparatively, bitcoin and most other cryptocurrencies donât hard fork as often or have as many applications running on them. Ethereum faces something of a bind: loads of projects depending on it for 100% uptime but rolling hard forks every six to 12 months.Â
Moreover, how to get other clients to catch Gethâs lead remains an open question.
Ethereum developer Greg Colvin said in the developer call that it has become a business question and one unlikely to be resolved by developer initiatives. Projects will choose to work with a minority client because they have acute needs that Geth cannot address, such as code not being open sourced. That being said, Colvin said Geth should hire more staff, if possible.
Suspension of testing Ethereum Improvement Proposals (EIPs) slated for Berlin was one option the developers settled on. Still, Szilágyi concluded the 24/7 responsibility of keeping the âworld computerâ turning is burning out his team.
âIf we are wrong, and for example, [Ethereum client] Nethermind is correct, then it doesnât matter that Nethermindâs code was correct and ours was wrong, because the network went off on the wrong chain,â he said.