https://ethresear.ch/t/peerdas-a-simpler-das-approach-using-battle-tested-p2p-components/16541
Custody
- Each node downloads and custodies a minimum number of rows and columns per slot (e.g., 2 rows and 2 columns).
- Custody assignments are selected pseudo-randomly based on node ID, epoch, and custody size.
- Nodes store custodied rows/columns for the pruning period and respond to peer requests for samples.
Peer Discovery
- Nodes maintain a set of diverse and reliable peers (e.g., 70 peers).
- Peer discovery includes various custody sizes and row/column assignments.
- Discovery methods include DHT-based mechanisms like discv5 and additional methods like libp2p gossipsub.
Sampling
- Nodes make a specific number of sample queries per slot (e.g., 75 queries).
- Sample requests are determined by custodied_rows() and custodied_columns() functions.
- Nodes send DO_YOU_HAVE packets to peers to check for sample availability and distribute received samples to peers missing them.
Peer Scoring
- Nodes score peers based on their responses to sample requests.
- Non-responsive peers are downscored or disconnected.
- Peers are assessed for honesty, bandwidth capabilities, and consistency.
DA Providers
- DAS providers are high-capacity nodes available for DAS queries, appearing as regular nodes with high capacity.
- Providers can be discovered via standard mechanisms or configured out-of-band.