On September 13th, Afri Schoedon of Parity Technologies posted a call for participation to create a more universal testnet.
The idea seems to have arisen at the recent ETHBerlin hackathon where Afri Schoedon worked alongside members of the ChainSafe team. In his proposal, he notes that the existing testnets do not adequately support all clients and aren’t “robust enough to guarantee consistent availability and high reliability.”
Afri Schoedon’s preferred specifications are that clients choose a proof-of-authority (PoA) engine, such as Aura or Clique, and implement it. As it stands, Parity and Geth already use PoA testnets for efficiency’s sake. The existing proof-of-work testnet, Ropsten, is technically compatible with both Parity and Geth, but has had reliability issues.
PoA chains do not require as much participation or hash power (any hash power at all, for that matter), making them the much more reliable choice.
At the moment, Parity and Geth use different testnets with different PoA algorithms. However, if the two can agree to one algorithm and implement it, then the community could “bootstrap a new Görli proof-of-authority testnet based on the available implementations that simply mimics main network conditions.”
In accordance to the protocol for Ethereum development, progress on Görli would begin with the creation of an Ethereum improvement proposal to specify the PoA engine clients should implement to then build the testnet around. Regardless of which is chosen, clients hoping to use the Görli testnet would need to implement it.
Mr. Schoedon links to an EIP in development that uses Aura, likely because Aura is a consensus algo pioneered by Parity and used to power the Kovan testnet. Geth, the other major Ethereum client, uses Clique for its Rinkeby testnet. Mr. Schoedon is careful to specify that this is not a political choice, though there seems to be some tension around a statement on Twitter.
ChainSafe co-founder and CEO Aidan Hyman writes in a Medium post that his team is working on implementing Aura, Parity’s PoA algorithm, in Geth. Hyman explains that they’re using Geth instead of Parity because they happen to be more familiar with Go, the language Geth is written in, than Rust, the language Parity is written in. Hyman does state, however, that “the Görli team” also plans to implement Clique in Rust, just less immediately. In an email to CBNN, Hyman clarified that folks from ChainSafe would be involved in the Clique-Rust implementation, but that development is also open to anyone willing and able to participate.
Political or not, at this very early stage there seems to be more work to bring Geth over to Parity’s algorithm than the other way around. Which engine ends up winning out (if indeed either does) will largely depend on who ends up contributing to the development process. However, once the clients can agree on a consensus algo and any further necessary client specifications, Hyman and Schoeden seem to suggest that building the testnet itself would be fairly straightforward.
One notable difference between ChainSafe’s and Schoedon’s framing of this project is that Schoedon emphasizes this as a more universal testnet, open to all clients, whereas ChainSafe only focuses on Geth and Parity. However, in an follow-up email, Hyman clarified that although they are only focusing on these two clients at the moment, ChainSafe also intends that Görli be usable by all clients. Though, as is the case with any decentralized project, this is dependent on developer participation.