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

PeerDAS #1

Closed
wants to merge 39 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
bb674ef
Copied from Danny's ethresearch post
hwwhww Nov 9, 2023
b62d532
wip
hwwhww Nov 14, 2023
af9a9b7
wip
hwwhww Nov 29, 2023
54661f4
Add `TARGET_NUMBER_OF_PEERS`
hwwhww Nov 29, 2023
a27bee0
Add networking spec draft
hwwhww Nov 29, 2023
5a0b661
fix
hwwhww Nov 29, 2023
ef3586e
simplification
hwwhww Nov 29, 2023
88d840e
Rename `DoYouHave` to `GetCustodyStatus`
hwwhww Nov 29, 2023
ab85c7c
Add DataLineSidecar design
hwwhww Nov 29, 2023
0440a8c
Apply suggestions from code review
hwwhww Dec 1, 2023
b2d08fa
Revamp after reviews and discussion
hwwhww Dec 1, 2023
65ce492
Remove `CustodyStatus`
hwwhww Dec 1, 2023
b36bbf5
minor fix
hwwhww Dec 2, 2023
b970213
Change`DataColumn` to `List[DataCell, MAX_BLOBS_PER_BLOCK]`
hwwhww Dec 2, 2023
28a914a
Move folder
hwwhww Dec 2, 2023
3c386fe
Replace `DataColumnByRootAndIndex` with `DataColumnSidecarByRoot` mes…
hwwhww Dec 2, 2023
b5d1220
Remove `DataRow`
hwwhww Dec 2, 2023
9d0cd0f
Apply suggestions from @jacobkaufmann code review
hwwhww Dec 4, 2023
8d55943
Represent matrix in `BLSFieldElement` form
hwwhww Dec 4, 2023
8e7dca2
Merge branch 'dev' into peer-das
hwwhww Dec 5, 2023
b2ffa27
Misc minor fix
hwwhww Dec 5, 2023
2feed04
Add linter support
hwwhww Dec 5, 2023
82d2e58
Add column subnet validation. Split `verify_column_sidecar` into two …
hwwhww Dec 5, 2023
208a4f7
Fix `get_data_column_sidecars` by using `compute_samples_and_proofs`
hwwhww Dec 5, 2023
be5a0e2
Apply suggestions from code review
hwwhww Dec 5, 2023
9435da3
Do not assign row custody
hwwhww Dec 5, 2023
e896d40
Apply suggestions from code review
hwwhww Dec 6, 2023
0dde817
Revamp reconstruction section
hwwhww Dec 6, 2023
6f08051
Use depth as the primary preset for inclusion proof. Fix `get_data_co…
hwwhww Dec 6, 2023
b08e1ed
Change `SAMPLES_PER_SLOT` to 8 and add tests (requirement TBD)
hwwhww Dec 6, 2023
d714e97
Apply PR feedback from @ppopth and @jtraglia
hwwhww Dec 7, 2023
826782c
Fix `get_data_column_sidecars`
hwwhww Dec 7, 2023
08856d0
Apply suggestions from code review
hwwhww Dec 11, 2023
317b30e
Apply suggestions from code review
hwwhww Dec 12, 2023
8e28884
Fix `get_data_column_sidecars` and `get_custody_lines`
hwwhww Dec 12, 2023
df76abf
Apply suggestions from code review
hwwhww Dec 12, 2023
e61f454
Enhance tests
hwwhww Dec 12, 2023
e38c4c4
fix typo
hwwhww Dec 19, 2023
f40c75e
Remove `epoch` from `get_custody_lines`
hwwhww Dec 19, 2023
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
Prev Previous commit
Next Next commit
fix
hwwhww committed Nov 29, 2023
commit 5a0b661c2deaef027947b8f00689ab7a1c629982
16 changes: 10 additions & 6 deletions specs/peerdas/p2p-interface.md
Original file line number Diff line number Diff line change
@@ -53,21 +53,19 @@ class SlotDataLine(Container):

```python
class CustodyStatus(Container):
row: Bitvector[NUMBER_OF_ROWS]
column: Bitvector[NUMBER_OF_COLUMNS]
custody_bits: Bitvector[NUMBER_OF_ROWS * NUMBER_OF_COLUMNS]
```

#### `DASSample`

```python
class DASSample(Container):
slot: Slot
chunk: ByteList[MAX_BLOBS_PER_BLOCK * BYTES_PER_BLOB * 4 // (NUMBER_OF_ROWS * NUMBER_OF_COLUMNS)]
```

### The gossip domain: gossipsub

Some gossip meshes are upgraded in the fork of Deneb to support upgraded types.
Some gossip meshes are upgraded in the fork of Pe to support upgraded types.

#### Topics and messages

@@ -105,7 +103,7 @@ Request Content:
Response Content:
```
(
CustodyStatus
custody_status: CustodyStatus
)
```

@@ -115,6 +113,12 @@ Response Content:

The `<context-bytes>` field is calculated as `context = compute_fork_digest(fork_version, genesis_validators_root)`:

[1]: # (eth2spec: skip)

| `fork_version` | Chunk SSZ type |
|--------------------------|-------------------------------|
| `PEERDAS_FORK_VERSION` | `peerdas.DASSample` |

Request Content:
```
(
hwwhww marked this conversation as resolved.
Show resolved Hide resolved
@@ -128,7 +132,7 @@ Request Content:
Response Content:
```
(
das_sample: ByteList[MAX_BLOBS_PER_BLOCK * BYTES_PER_BLOB * 4 // (NUMBER_OF_ROWS * NUMBER_OF_COLUMNS)]
das_sample: DASSample
)
```