Introducing Hobbits: A lightweight wire protocol for ETH 2.0

Trenton Van Epps
Apr 23, 2019 · 3 min read

There and back again, and again, and again…

Image for post
Image for post
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.

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!

Whiteblock

A distributed systems development and testing sandbox for…

Thanks to Zak Cole and Eric Lim

Trenton Van Epps

Written by

Community Management at ETHGlobal. Interested in how incentivised networks develop and compete with incumbents, how chain culture manifests.

Whiteblock

A distributed systems development and testing sandbox for the masses.

Trenton Van Epps

Written by

Community Management at ETHGlobal. Interested in how incentivised networks develop and compete with incumbents, how chain culture manifests.

Whiteblock

A distributed systems development and testing sandbox for the masses.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store