Introducing Hobbits: A lightweight wire protocol for ETH 2.0

Trenton Van Epps
Whiteblock
Published in
3 min readApr 23, 2019

There and back again, and again, and again…

you go off on an epic adventure and then return to find your relatives stealing your things— WDYD??

TL;DR — Whiteblock and a few other collaborators have made Hobbits, a lightweight wire protocol that will allow ETH 2.0 clients to talk to each other without having to wait on Libp2p completion.

HOBBITS

Hobbits is a lightweight wire protocol for ETH 2.0 network testing purposes. It’s been a collaborative effort between several teams, including contributors from Whiteblock, Chainsafe, Consensys, and Yeeth.

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. Hobbits allows a client implementation to talk to other implementations — version 0.2 is ready for anyone to try out themselves.

Dig into the Hobbits repo here on the Whiteblock Github. Read on below to find out how Hobbits helps ETH 2.0 transition from a spec to performant multi-client testnets.

WHAT ETH 1.0 USES // WHAT 2.0 WILL USE

Currently, ETH 1.0 uses a protocol called DEVp2p. This was originally developed for the network release in 2015 and has functioned as a key part of the Ethereum protocol for four years. DEVp2p works with a transport protocol called RLPx for message passing throughout the network. However, there are some deficiencies, including the fact that it has a non-standard handshake — maintaining this unique blend of tech becomes more challenging.

As part of the broader ETH 1.0 to 2.0 transition, DEVp2p will be deprecated in favor of Libp2p, “a modular and extensible networking stack which solves many challenges of peer-to-peer applications.”

Libp2p, currently shepherded by Protocol Labs, introduces a number of improvements: including:

  • The addition of gossiping.
  • Supported over websockets and webRTC.
  • Aligns with common standard being integrated by Web3 projects (IPFS, Filecoin, Polkadot and others), facilitating interoperability.

The long path to a ETH 2.0 launch hinges on having proper implementations of Libp2p for each client language. It’s currently implemented in Go and Rust, with others under development. This presents an unfortunate bottleneck since complete implementations won’t be ready in time to start client testnets over the next few months. Additionally, once it’s released we can’t be certain it will be a complete solution for these evolving technologies.

ENTER HOBBITS: A LEAN NETWORKING MACHINE

Hobbits is a minimal transport spec that supports basic messaging types and allows nodes to communicate with one another. Messages are passed through the wire using standard TCP and peering is handled statically based on IP address. The protocol omits encryption, and opts for a stateless model— meaning a persistent TCP connection is not required. It’s important to emphasise that Hobbits will be a temporary stand-in, filling the transitional gap between RLPx and Libp2p.

Further into the roadmap, teams will start to stand up inter-client testnets. This is a crucial part of the network testing phase as bugs will emerge when the various 2.0 implementations communicate.

Just this week Antoine from Artemis implemented gossip using the Plumtree algorithm — the team hopes to demo the protocol at EDCON by connecting an Artemis and Lodestar client. Here are a few thoughts from the teams working on it.

Greg Markou (Chainsafe):

I’m really excited for libp2p, but unfortunately we’re building the JS implementation ground up and it’s taking quite a while … Hobbits is extremely lightweight and dead simple, we’ll be able to interop with other clients faster. Fortunately it will be trivial to swap Hobbit out for libp2p when the time comes.

Jonny Rhea (Artemis):

We want to encourage teams to start simple and establish baseline performance metrics. This will provide us with data that clearly highlights tradeoffs in future iterations of the protocol. It will never be right the first time; however, Hobbits will enable us to demonstrate progress quickly and simplify the problem space by allowing use to solve for unknowns in a logical way.

Hobbits is ready to be integrated into ETH 2.0 testnets today. Want to get involved? Drop a line to Whiteblock on twitter or the Hobbits repo. Look for longer-lived cross client testnets in the near future!

--

--

Trenton Van Epps
Whiteblock

Current: Coordinating @ Ethereum Core Dev call. Past: Community @ ETHGlobal. Interested in how chain culture manifests.