Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EIP: PeerDAS - Peer Data Availability Sampling #8105

Merged
merged 5 commits into from
May 12, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions EIPS/peerdas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---

Check failure on line 1 in EIPS/peerdas.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble is missing header(s): `eip`, `title`, `description`, `author`, `discussions-to`, `status`, `type`, `created`

error[preamble-req]: preamble is missing header(s): `eip`, `title`, `description`, `author`, `discussions-to`, `status`, `type`, `created` --> EIPS/peerdas.md | | = help: see https://ethereum.github.io/eipw/preamble-req/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
---
---
eip: 7594

Assigning next sequential EIP/ERC/RIP number.
Numbering changed to sequential from 7500 and is no longer the PR number.

Please also update the filename.

title: PeerDAS - Peer Data Availability Sampling

Check failure on line 3 in EIPS/peerdas.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

missing delimiter `:` in preamble field

error: missing delimiter `:` in preamble field --> EIPS/peerdas.md | |
description: Introducing simple DAS utilizing gossip distribution and peer requests
author: Danny Ryan (@djrtwo), Dankrad Feist (@dankrad), Francesco D'Amato (@fradamt), Hsiao-Wei Wang (@hwwhww)
discussions-to: <URL>
status: Draft
type: Standards Track
category: Networking
created: 2024-01-12
requires: 4844
---

## Abstract

PeerDAS (Peer Data Availability Sampling) is a networking protocol that allows beacon nodes to perform data availability sampling (DAS) to ensure that blob data has been made available while downloading only a subset of the data. PeerDAS utilizes gossip for distribution, discovery for finding peers of particular data custody, and peer requests for sampling.

## Motivation

DAS is a method of scaling data availability beyond the levels of EIP-4844 by not requiring all nodes to download all data while still ensuring that all of the data has been made available.

Check failure on line 20 in EIPS/peerdas.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

the first match of the given pattern must be a link

error[markdown-link-first]: the first match of the given pattern must be a link --> EIPS/peerdas.md | 20 | DAS is a method of scaling data availability beyond the levels of EIP-4844 by not requiring all nodes to download all data while still ensuring that all of the data has been made available. | = info: the pattern in question: `(?i)(?:eip|erc)-[0-9]+` = help: see https://ethereum.github.io/eipw/markdown-link-first/

Providing additional data availability helps bring scale to Ethereum users in the context of layer 2 systems called "roll-ups" whose dominant bottleneck is layer 1 data availability.

## Specification

We extend the blobs introduced in EIP-4844 using a one-dimensional erasure coding extension. Each row consists of the blob data combined with its erasure code. It is subdivided into cells, which are the smallest units that can be authenticated with their KZG commitments. Each column, associated with a specific gossip subnet, consists of the cells from all rows for a specific index. Each node is responsible for maintaining and custodying a deterministic set of column subnets and data as a function of their node ID.

Check failure on line 26 in EIPS/peerdas.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

the first match of the given pattern must be a link

error[markdown-link-first]: the first match of the given pattern must be a link --> EIPS/peerdas.md | 26 | We extend the blobs introduced in EIP-4844 using a one-dimensional erasure coding extension. Each row consists of the blob data combined with its erasure code. It is subdivided into cells, which are the smallest units that can be authenticated with their KZG commitments. Each column, associated with a specific gossip subnet, consists of the cells from all rows for a specific index. Each node is responsible for maintaining and custodying a deterministic set of column subnets and data as a function of their node ID. | = info: the pattern in question: `(?i)(?:eip|erc)-[0-9]+`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a diagram here would be very illustrative (just a suggestion, so if you already have one please patch it)


Nodes find and maintain a diverse peer set and sample columns from their peers to perform DAS.

A node can reconstruct the entire data matrix if it acquires over 50% of all the columns. If a node has less than 50%, it can request the necessary columns from the peer nodes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

>= 50%

Suggested change
A node can reconstruct the entire data matrix if it acquires over 50% of all the columns. If a node has less than 50%, it can request the necessary columns from the peer nodes.
A node can reconstruct the entire data matrix if it acquires at least 50% of all the columns. If a node has less than 50%, it can request the necessary columns from the peer nodes.


The detailed specifications are on [ethereum/consensus-specs](TBD).

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.

## Rationale

TBD

## Backwards Compatibility

## Test Cases

## Reference Implementation

## Security Considerations

Needs discussion.

## Copyright

Copyright and related rights waived via [CC0](../LICENSE.md).
Loading