Ethereum 2.0: New Messaging Protocols Being Developed, Hobbits, an Interim Solution

The codebase for Ethereum 2.0, a major upcoming upgrade to the Ethereum blockchain network that is aimed at improving the platform’s scalability and usability, is reportedly half complete.

Currently, many of the updates included in the Ethereum 2.0 codebase have not yet been finalized as developers are still conducting testing and research on several aspects of the planned upgrades.

On April 23, 2019, Ethereum’s developers released new code for Ethereum 2.0, which aims to facilitate communication between the blockchain network’s nodes. Referred to as Hobbits, the communication protocol was created through a collaborative effort involving some of the leading organizations in the crypto space.

Organizations involved in Hobbits’ development include ConsenSys, a Brooklyn, New York-based Ethereum-related project incubator, Whiteblock, a firm focused on blockchain performance testing, and Ethereum 2.0 implementer groups Yeeth and Chainsafe.

Ethereum 2.0 Clients To Communicate Using Wire Protocol

Commenting on the initiative, Trenton Van Epps, an Ethereum community member, remarked:

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.

As explained by Ethereum co-founder Vitalik Buterin (in February 2019), the wire protocol has been designed to determine “the rules for what messages get sent across the network.” Buterin added:

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?

According to Ethereum’s developers, Ethereum 2.0 will use a wire protocol, referred to as “libp2p”, which has been created and maintained by Protocol Labs, a San Francisco-based crypto startup which has also been involved in the development of highly-anticipated projects such as Filecoin and IPFS.

While Ethereum’s development team continues to refine the wire protocol, Hobbits will reportedly be used to create cross-communication channels between Ethereum clients that have not yet installed libp2p.

Jonny Rhea, a senior software engineer at ConsenSys who was involved in Hobbits’ development, noted: “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.”

According to Buterin, a wire protocol, also called a “mini-language,” is used to define the format of how messages are sent and received on the Ethereum network.

Current Messaging System Won’t Work With Ethereum 2.0

Currently, the Bitcoin and Ethereum blockchains make use of “gossip networks,” which Buterin described as follows:

For Bitcoin and [Ethereum 1.0], the communication protocols are] 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 an improved version of Ethereum’s current messaging system, the Ethereum 2.0 wire protocol, or libp2p, is based on a new design, called “gossipsub.” The updated “gossipsub” system aims to prevent the Ethereum blockchain from becoming congested due to numerous messages being broadcasted by the network’s nodes.

Explaining how this process works, Rhea noted:

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. I propagate that message. Then those nodes have peers, they don’t send it back to me, but they probabilistically pick two more peers to send the message to.

In addition to preventing the Ethereum network from becoming clogged up, the libp2p wire protocol allows for greater modularity. As explained by Rhea:

The nice thing about libp2p is that it is modular. 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.