# EPF5 Week-5: PeerDAS metrics ## Week overview - [X] Focused on wrapping up my project idea. - [X] Learned PeerDAS materials. - [X] Ran Kurtosis with PeerDAS config. - [X] Studied PeerDAS research, clients' implementation, metrics. - [X] Dived into Lighthouse and Teku PeerDAS metrics. - [X] Had calls and discussions with EthPandaOps team on how I can contribute. - [X] Installed and configured Kurtosis on a remote server. - [X] Watched videos related to PeerDAS. - [X] Explored Dora oportunities for DAS visualization. - [X] Wrapped up my project idea. - [X] Solved a Docker image bug with the DevOps team. This week was dedicated to running Kurtosis specifically for updating PeerDAS clients and exploring metrics implementation across various clients. I applied the Kurtosis PeerDAS configuration and DAS Docker images. Additionally, some of the week was spent interacting with mentors and discussing the concept of my project with both the EthPandaOps and Teku teams. I also collaborated with the EthPandaOps team to solve a GitHub issue. ## Kurtosis PeerDAS and metrics I worked with the Kurtosis parameters yaml file and CLI options to run the PeerDAS configurations. I got a list of metrics from the channel. Here are a couple of metric examples: * **Total count of reconstructed columns (counter)** * **Time taken to reconstruct columns (histogram)** Currently, there are over 20 metrics available. I downloaded the Lighthouse and Teku clients and explored the metrics within their code. Here is an example from Lighthouse: ![Screenshot 2024-07-14 at 14.48.02](https://hackmd.io/_uploads/ByVIsEb_A.png) ## Grafana Currently I am exploring the DevOps Grafana dashboard. My plan is to run Grafana locally with PeerDAS metrics and subsequently integrate it into the shared dashboards, making it accessible to all clients. ## PeerDAS theory This week, I delved deeply into PeerDAS research and implementation, Reed Solomon Codes, cryptographic commitments. One of the best resources for understanding this topic is [Dankrad's article](https://ethresear.ch/t/from-4844-to-danksharding-a-path-to-scaling-ethereum-da/18046). At present, Stage 1 is being implemented. In this stage, nodes perform DAS on columns, and the number of column subnets they participate in is selected to ensure that a node's peer set can reliably cover all columns. According to the [current specifications](https://github.com/ethereum/consensus-specs/blob/dev/specs/_features/eip7594/das-core.md#data-size), the maximum blob count is 128. ![Screenshot 2024-07-14 at 14.40.25](https://hackmd.io/_uploads/S198YNZOA.png) Here are the videos on PeerDAS theory that I recommend for further learning: [EPF Study Group Week 6: Sharding and DAS](https://www.youtube.com/live/ro2AGRkLC2s?si=sd7uNJM9kRwaBN6F) [EF: Foundations of DAS by Benedikt Wagner, April, 2023](https://youtu.be/KUNE3kR1kwU?si=_zJSN6vVdY9SbbU5) [EthPrague 2024: PeerDAS, Ethereum danksharding v0](https://youtu.be/fCIPNxGXmmE?si=ri70zqnP7sDCjt0f) ## Project idea Discussions with different teams have helped me finalize my project idea. I discovered that DAS visualization is not straightforward due to its dependency on APIs. Initially, my plan was to contribute to Dora to enable the display of PeerDAS statistics. After discussing this with @pk910, I learned that this approach is currently irrelevant. Implementing such a feature requires an API, and creating a new API across all clients is complex. Given these constraints, I cannot proceed with implementing it on Dora immediately. Instead, I will begin with Grafana. The goal is to start testing and visualizing data with Grafana and then, based on the results, conduct analyses, discuss findings with the research team, and potentially create visualizations if necessary. Additionally, I have prepared for the project presentation during our next Office Hours Call. ## Weekly EPF Activity - [EPF5 Standup]() - [EPF5 Office Hours]() - [PeerDAS Breakout Room #3](https://ethereum-magicians.org/t/peerdas-breakout-3-july-9-2024/20482) [Issue #1093](https://github.com/ethereum/pm/issues/1093) Devnet-2 discussion, EIP-7594, blob limits, client updates - [ACDC #137]() [Github issue #1096](https://github.com/ethereum/pm/issues/1096) Teku research team presented [Fork Choice compliance test suites & test generator](https://ethresear.ch/t/fork-choice-compliance-test-suites-test-generator/19954) [FC compliance test suite Slides](https://docs.google.com/presentation/d/1W2DUwcu411cebQXi_9m-zVk1MASirpIop1cPdqg8dGE/edit#slide=id.g2ead0dd7c78_2_97) [Fork Choice complience test generator PR](https://github.com/ethereum/consensus-specs/pull/3831) ## TODO - [ ] Run Grafana locally for PeerDAS metrics - [ ] Run Kurtosis PeerDAS on the remote server - [ ] Debug PeerDAS on Kurtosis - [ ] Start working on Teku metrics ## Glossary | Term | Description | | -------- | -------- | |ENR | Ethereum Node Records (ENR) is an open format for p2p connectivity information. A node record usually contains the network endpoints of a node, i.e. the node's IP addresses and ports. It also holds information about the node's purpose on the network so others can decide whether to connect to the node. Ethereum Node Records were originally proposed in EIP-778. | ## Links [DAS specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/_features/eip7594/das-core.md) [From 4844 to Danksharding: a path to scaling Ethereum DA](https://ethresear.ch/t/from-4844-to-danksharding-a-path-to-scaling-ethereum-da/18046) [Beaconchain Explorer - Dora](https://beaconlight.ephemery.dev/) [Blobscan](https://github.com/Blobscan/blobscan) [Eth Beacon Node API](https://ethereum.github.io/beacon-APIs/) [Teku metrics Issue 65](https://github.com/Nashatyrev/teku/issues/65) [Grafana devnet](https://grafana.observability.ethpandaops.io/login) [Lighthouse DAS metrics](https://github.com/sigp/lighthouse/blob/das/beacon_node/beacon_chain/src/metrics.rs) [Lighthouse DAS tracking issue #4983](https://github.com/sigp/lighthouse/issues/4983) [Lighthouse DAS Prototype Devnet](https://gist.github.com/jimmygchen/54574443ea8a94118f0f748b69a5e610) [Lighthouse PeerDAS implementation PR #5683](https://github.com/sigp/lighthouse/pull/5683) [Teku DAS branch](https://github.com/Nashatyrev/teku/tree/das) [Teku DAS Sampler](https://github.com/Nashatyrev/teku/pull/60) [Dankrad: How to help self builders with blobs](https://notes.ethereum.org/@dankrad/self-builder-strategies#Before-PeerDAS) [Dapplion: Fetch blobs from EL pool](https://hackmd.io/@dapplion/blob_fetch) [Ethereum Roadmap: The Surge](https://ethroadmap.com/surge.html) [CL specs: Max blobs per block](https://github.com/ethereum/consensus-specs/pull/3800) [ENR in Ethereum p2p specs](https://github.com/ethereum/devp2p/blob/master/enr.md)