# EPF Cohort 5 - Week 16 Date: 30/09/2024 ### Updates 1. Tested rated list implementation with random graphs. We ran into an infinite loop problem because of cycles in the graph. This was always expected. Nevertheless, it is fixed now. * A weird behaviour that we are noticing is that not all evicted nodes belond to the malicious sub tree. If this is not a bug(yet to be investigated) then it means that the current spec of rated list kicks out honest nodes since they maintain connections with malicious peers. 2. Finished the sample gossip part. With fullDAS, we are gonna have 512 rows and 512 columns and within them 512x512 cells. While the rated list already covers sampling (coloquially known as "peer sampling") it uses the peerDAS construction for sample distribution. Here are some design questions that helped me form a better understanding of peerDAS * Why distribute samples as columns or rows? Why not shuffle individual cells directly into subnets? It is convenient and does not dent any security assumptions compared to shuffling samples. * What is the maximum number of subnets the Ethereum network can support? Subnet size matters more than the number of subnets itself. A network with `n` nodes can only support about `n/3` subnets. Higher than that we would have subnets with just two nodes in them which is essentially just a connection. While `n/3` is the hard limit, to maintain a good amount of redundancy in times of node churn, the limit drops further below. To put that in perspective, Ethereum has about 8000 p2p nodes in the network, with 512 rows and 512 columns we have about 1024 subnets. But since, every node will subscribe to a minimum of 4 row/column subnets, the subnet size would be 8000/256 = ~31 nodes. * Why have a public deterministic selection of rows/columns? Enables scoring of peers. ### Technical Notes Metrics that will help us: 1. Comparing average degree of the graph with the average number of children and parents 2. Comparing how many of the evicted nodes belong to the offline subtree. This metric helped us in writing the below tests. * Filtering out nodes in an offline subtree of an acyclic graph * Filtering out nodes in an offline subtree of a random graph - failing 3. Comparing the number of nodes evicted in a traditional scoring versus the rated list scoring ### Next Steps 1. Finish implementing score function of the existing gossip sub network 2. Finish up on making the markdown file executable 3. Implement proportional custody of samples 4. Test for sybil attacks