From June 25-29, the Whiteblock team was joined in Toronto by members of several Ethereum 2.0 client teams to work on client interoperability. Teams represented included Artemis, Prysmatic, Nimbus, Lodestar, and Yeeth. The broad goal for the week was to facilitate simple networking between two clients: a HELLO message sent between Artemis and Prysm according to the Hobbits wire spec. This is what nodes use to establish and confirm network relationships, and it’s a crucial component of any p2p protocol. Given its significance, the team was excited for the challenge.
The first roadblock was that the Prysm client had been set up to only parse the initial HELLO, whereas received GOSSIP messages would simply `return nil`. On the Artemis side, the client was sending HELLO followed by GOSSIP messages. Due to a hard-coded p2p port in Prysm, the Artemis message type had to be changed in order to accommodate Prysm.
After a few days of exploration and troubleshooting we were able to get both clients to exchange HELLO messages. This is an important milestone on the path towards standing up long lived inter-client testnets. Prysm listens on a p2p port for incoming messages, while Artemis sends a Hobbits HELLO message when the client starts. Right now, the order is important: Prysm first, then Artemis nodes can attach and automatically send a HELLO. This means that Prysm to Prysm will not automatically send and establish a Hobbits HELLO message.
Spec construction will be an ongoing and iterative process involving Prysmatic (Prysm), Chainsafe (Lodestar), Pegasys (Artemis), Status (Nimbus), Sigma Prime (Lighthouse) Yeeth, Whiteblock and other interested participants.
The teams will continue to collaborate on integrating Gossipsub, working up the stack in terms of complexity. Next steps include continuing to build out the remainder of RPC query and response handling as well as GOSSIP message propagation in Prysm and Lodestar. The Whiteblock team will also be looking to support test networks for the various clients by snapshotting state after the genesis kickoff, which will make test cycles more efficient.
There’s certainly a large amount of work ahead of us, but we’re excited to share our progress as the summer continues. Stay tuned for more updates.