Try   HackMD

Development Update 8

In the previous update I mentioned creating a repository, DAS-Playground, built to facilitate the understanding of Ethereum p2p networking concepts. This repository has been my primary focus over the past two weeks.

I've also been working on a summary of the entire repository where I explain the p2p networking concepts that are being implemented. You can check out the summary of DAS Playground here!

 

TLDR

To model a future DAS networking design, you need to create the network(s) that Ethereum nodes would use to communicate.

The networking stack that makes up a secure K-DHT overlay consists of three two major protocols:

  1. Discv5 Protocol
    The underlying network that offers TalkReq/TalkResp methods to allow for application layer messaging.

  2. Overlay Protocol
    This single overlay protocol allows for multiple subnetworks to be built on top of Discv5. These networks utilize Discv5's TalkReq/TalkResp methods to facilitate communication between peers. See details in Piper's Sub-Protocol Architecture protocol post.

    The two overlay networks that Ethereum nodes will theoretically use to pass around Data Availability Sampling information are:

    • DAS overlay network: Where any node can participate in sharing information over the network
    • Secure DAS overlay network: Where only validators (who are highly incentivized to "play nice") can participate in sharing information over the network

I'm in the process of instantiating this networking stack for nodes within my mini simulation, DAS-Playground. Once these protocols and subnetworks are up and running, I'll integrate my secure DAS Overlay subnetwork with Timofey and Eric's p2p DAS networking simulation, DAS Prototype.

 

DAS Playground Update

Completed

I've created nodes that run the Discv5 protocol, built a function which populates these nodes' routing tables, and obtained event streams from each discv5 service (used for polling/message processing).

Currently

Now I'm creating the overlay protocol for our DASNodes.

The overlay requires a uTP (think UDP but no packet loss) communication channel between nodes and message processing between tasks within each node to interact with others in the network.

To understand the code behind overlay communication, you need to grasp general client/server communication + shared state manipulation via task managers and message passing. I hope to explain some of the details soon in Summary of DAS Playground!

Next Steps

DAS Playground
DAS Prototype simulates a DAS network that contains a single overlay subnetwork, while Trin handles messaging across multiple subnetworks by implementing a proxy between Discv5's TalkReq/TalkResp and specific overlay networks.

I'll need to modify overlay logic from Timofey to behave like Trin to support my secondary subnetwork.

Writing
- Continue writing within Summary of DAS Playground
- Write comprehensive DAS Networking Discv5 Overlay Doc (after implementing secure overlay within DAS-Playground)

 

PS

It was really cool seeing Vitalik, Dankrad and Danny's responses to "Is DAS necessary" Check out Ethereum Researchers' answers to the most recent AMA!