Developers working to create the next iteration of the ethereum blockchain have developed code intended to help client developers boost their testing efforts ahead of the upgrade.
Ethereum 2.0 is by far the biggest upgrade on the agenda of developers said to bring massive improvements to scalability and usability on the now four-year-old blockchain network, which with its $17 billion market capitalization is the worldâs second-most valuable blockchain. The work on the 2.0 iteration (also known as Serenity) continues apace, and according to Fredik Harryson, chief technology officer for client developer Parity, code specifications for the initial phased roll-out of the upgrade are about half complete.
As such, while many aspects of the upgrade are still under research and presently being finalized, on April 23 new code was unveiled that, if approved and ultimately implemented, will facilitate the basic communication between nodes that run the ethereum 2.0 software.
The protocol, called Hobbits, was developed in partnership between blockchain performance testing company Whiteblock, ethereum venture capital studio Consensys, and ethereum 2.0 implementer teams Chainsafe and Yeeth.
In a blog post introducing the tech, Trenton Van Epps wrote:
âAs Ethereum 2.0 clients get closer to live testnets, theyâre going to need a way to pass information back and forth between each client. This occurs over a set of links called the wire protocol.â
The wire protocol gets at the heart of how these distributed networks work, because nodes pass critical information between one another â namely transaction histories â that compose the blockchain itself.
Speaking to CoinDesk back in February, ethereum founder Vitalik Buterin explained that a wire protocol essentially determines âthe rules for what messages get sent across the network.â
âFor example, if two nodes talk to each other and one node wants to sync to the blockchain or publish a block, then how do you say I want to hear about a block? How do you say I want to hear about transactions? â Buterin told CoinDesk.
Ethereum 2.0 will be actually be leveraging a wire protocol called âlibp2pâ developed and maintained by San Francisco-based startup Protocol Labs, the firm behind projects like Filecoin and IPFS. However, until that implementation is fleshed out for all ethereum 2.0 clients, Hobbits is envisioned as a means to establish cross-communication between those clients who donât have libp2p ready.
Jonny Rhea, a protocol engineer at Consensys who contributed to building Hobbits, explained to CoinDesk:
âWe donât have libp2p yet so we needed to find a minimum wire protocol, sort of like a test wire protocol, just until we can put all the pieces together.â
Every blockchain, Buterin pointed out at the time, has a wire protocol or âmini-languageâ to define how messages get transmitted and received across the network. For bitcoin and ethereum presently, the wire protocol uses what are called gossip networks.
As Buterin told CoinDesk:
âFor bitcoin and [ethereum 1.0], theyâre both what we call gossip networks. Anything thatâs broadcasted eventually reaches everyone but for [ethereum 2.0] we canât do that because thereâs more total messages than any single node can download.â
As such, the new ethereum 2.0 wire protocol â libp2p â will have two major benefits. It will first leverage a new protocol design called âgossipsubâ to prevent the network from being flooded and congested every time a node wants to send a message.
âIf I have a new block and Iâm connected to six of my peers, Iâll randomly send that block to two or three of my peers,â Rhea said. âI propagate that message. Then those nodes have peers, they donât send it back to me, but they probabilistically pick two more peer to send the message to.â
More generally, the second benefit of using a libp2p wire protocol Rhea adds is modularity.
âThe nice thing about libp2p is that it is modular,â Rhea said. âLetâs say you donât like ⦠how one node finds another node on the Internet. That can be replaced. It can be swapped out.â
At present, according to Van Epps, there are only two implementations of libp2p for ethereum clients written in programming languages Go and Rust.
However, Van Epps notes that âthe long path to a ETH 2.0 launch hinges on having proper implementations of libp2p for each client language.â
As such, until these other implementations in programming languages such as Java, Javascript, Â and Swift reach completion, Hobbits will serve as a âminimal transport spec that supports basic messaging types and allows nodes to communicate with one another.â
Rhea told CoinDesk:
âThereâs a lot of [research and development] stuff that we want to be able to test. We developed this basic wire protocol so that our team, Chainsafe and any other team that doesnât have a libp2p implementation in the [programming] language their developing in can all make a [test network] and basically still be able to communicate.â
Wires image via Shutterstock