# Summary of DAS Playground (WIP) Within this document I talk about specific concepts within [DAS-Playground](https://github.com/EchoAlice/das-playground).   # Motivation **Required Reading:** [What is Danksharding?](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq#What-is-Danksharding) #### A TLDR on **Required Reading**: Ethereum's [rollup-centric roadmap](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) requires extra *blob* data to be placed on chain. The more blob data that can be placed on chain, the more Ethereum can scale. But... Extra data = extra cost to run a node = reduced decentralization =    : ( With Danksharding, the Ethereum chain is split into `n` sub-chains, where `n` sets of *committees* (randomly chosen validators) each verify that blob data is [available](https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding) within its sub-chain. This increases the amount of blobs that can go on chain, without increasing the hardware requirements for any individual node. **Q:** -But what if a validator committee takes over? Now only one subset of validators is needed to pass invalid blocks! **A:** -Honest validators in each subnet can verify their own blob data is *available* by downloading all blob data specific to the shard (full computation) **AND**, verify blobs in other subnets are available through *data availability sampling* (light computation).   **Data Availability Sampling** is the process of randomly asking nodes within other shard subnetworks for small pieces of blob data (samples). After responding to a small number of requests, one can be statistically confident that all blob data for that shard is available.   ## Goal **The goal for DAS Playground is to create a simple peer to peer networking simulation that models a possible solution (Secure Kademlia DHT discv5 overlay) to the [Data Availability Sampling Networking problem](https://github.com/ethereum/requests-for-proposals/blob/master/open-rfps/das.md#problem-statement).**   Our Secure Kademlia DHT discv5 overlay network is a set of validator-only nodes that are connected to one another through a secondary routing table. Validators are incentivized to behave! **Best case:** Our main DAS [*discv5 overlay network*](https://hackmd.io/b1RkdpviRompv-S6oLCGlw?both#Discv5-Overlay-Networks) is used to communicate DAS data. Any node can participate. **Worst case:** If our main DAS network is under attack, nodes switch to our SecureDAS [*discv5 overlay network*](https://hackmd.io/b1RkdpviRompv-S6oLCGlw?both#Discv5-Overlay-Networks). This network relies upon validators to control DAS information flow.   **This repository is where I learn how to make the DAS and SecureDAS overlay networks a reality.** Once the Secure Kademlia DHT overlay is operational, I'll instantiate it within a forked version of [DAS Prototype](https://github.com/ChainSafe/das-prototype) to measure performance benchmarks.   # Preface ## Eth P2P Networking Ethereum is made up of a bunch of individual nodes that run multiple networking protocols (the networking stack) to facilitate communication. *Write about blockchain being composed of two parts. See [Networking Layer](https://ethereum.org/en/developers/docs/networking-layer/)*   ## DAS Networking **Ethereum's Consensus Layer networking stack needs to be changed** to allow validators to come to consensus on this new set of data being available on the blockchain. (Link Data Availability things here?) There are different p2p architectural designs to pass around this blob data that researchers are investigating. See Danny's blog post: [DAS Building Blocks](https://notes.ethereum.org/@djrtwo/das-building-blocks). I've chosen to explore utilizing discv5 overlays to solve the DAS Networking problem. See writings on Danksharding within my Notion Board, [Wonderland](https://www.notion.so/Wonderland-d59a677c4bdd45318e54945e6b1d5580). M*ention Portal Network more!* ## Discv5 Overlay Networks **Discv5** ([Discovery version 5](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md)) is a protocol that Ethereum nodes run to *discover* other peers participating within the network. Discv5 also allows for custom subprotocols to be built upon it via the *TalkReq/TalkResp message* An **overlay** is a subset of nodes from a specific network (in our case, the Discovery v5 network) agreeing to come together to share information about a specific topic (data availability sampling), forming a "subnetwork". *A node participating within an overlay network contains a base protocol routing table and an overlay routing table* Arbitrary overlay networks can be created atop discv5 by passing messages to one another via TalkReq/TalkResp. Details on discv5 overlays: - https://notes.ethereum.org/@pipermerriam/B1SS-nhad - https://github.com/ethereum/devp2p/issues/156 - [Discv5's talkreq/talkresp specs](https://github.com/ethereum/devp2p/blob/master/discv5/discv5-wire.md#talkreq-request-0x05) ## Model DAS + DAS Playground [Model DAS](https://github.com/EchoAlice/Model-DAS) is my project which aims to utilize Eric and Timofey's p2p testground, [DAS-Prototype](https://github.com/ChainSafe/das-prototype), to measure benchmarks on implementing a secure K-DHT discv5 overlay. [DAS-Playground](https://github.com/EchoAlice/das-playground) recreates a simplified version of DAS-Prototype while integrating an additional overlay network (our Secure DAS overlay) to create our *possible* solution to the DAS Networking Problem. See [project proposal](https://hackmd.io/@nWQbi7_nQnWPS0Xt_GbOVQ/HyHiEpD8j).   ### Prerequisite Reading If you're already proficient in these three topics, feel free to go into DAS Playground Explained. If not, I'd *highly* suggest you read these articles:      [The Internet explained from first principles](https://explained-from-first-principles.com/internet/) - Basics of computer networking      [Ethereum's Networking Layer](https://ethereum.org/en/developers/docs/networking-layer/) - Basics of Ethereum's network stack      [Tokio Tutorial](https://tokio.rs/tokio/tutorial) - Networking in Rust   # DAS Playground Explained: (WIP)