-
-
owned this note
-
Published
Linked with GitHub
# PeerDAS Interop Milestones
:::info
:mega: Note: `EIP7594_FORK_VERSION` will be set to the same value as the Deneb fork and `EIP7594_FORK_EPOCH` will be set to 0 for the purposes of devnet-0.
:::
:::info
:mega: Devnet-0 launched on 15th May 2024 and shut down on 31th May 2024.
:::
## EIP List for peerdas-devnet-0
The list below links the specific commit versions of the EIPs included in devnet-0.
- [EIP-7594 (PeerDAS)](https://github.com/ethereum/EIPs/pull/8105)
---
## Milestones
### 1-client implementation tracker
| Client/Milestone | M1 | M2 | M3 | M4 | M5 | M6
|-|-|-|-|-|-|-|
|Lighthouse|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:skull: |:heavy_check_mark:|:heavy_check_mark:
|Teku |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| | |
|Lodestar |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: | |
|Prysm |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: |
|Nimbus |:heavy_check_mark:|:heavy_check_mark:| | | |
|Grandine |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: | | |
### multi-client interop tracker
| Client/Milestone | M1 | M2 | M3 | M4 | M5 | M6
|-|-|-|-|-|-|-|
|Lighthouse|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:skull:|:question:|:heavy_check_mark:
|Teku |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:skull:| |
|Lodestar |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: | |
|Prysm |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: |:heavy_check_mark: |:question: |
|Nimbus |:heavy_check_mark:|:heavy_check_mark:| | | |
|Grandine | | | | | |
### M1. Distribute columns to subnets
1. Being able to construct `DataColumnSidecar`
2. Being able to distribute colmuns to the `data_column_sidecar_{subnet_id}` subnets.
### M2. Receive columns from subnets
1. Being able to receive colmuns from the `data_column_sidecar_{subnet_id}` subnets.
2. [Bonus] Apply `verify_data_column_sidecar_kzg_proofs` with KZG library.
### M3. Store and serve custody columns over `DataColumnSidecarsByRoot` RPC
1. Being able to store the custody columns over `DataColumnSidecarsByRoot` RPC with the peers.
2. Being able to serve the custody columns over `DataColumnSidecarsByRoot` RPC with the peers.
3. [Bonus] Apply `verify_data_column_sidecar_kzg_proofs` with KZG library.
### M4. Sync chain via `DataColumnSidecarsByRange` and `DataColumnSidecarsByRoot` RPCs
:::info
[**Spec merged**] `DataColumnSidecarsByRange` added to the CL specs.
PR: https://github.com/ethereum/consensus-specs/pull/3750
:::
1. Missing data column lookup sync via `DataColumnSidecarsByRoot` RPC.
1. Sync chain via `DataColumnSidecarsByRange` RPC.
### M5. Apply sampling during syncing
:::warning
**"devnet-0" version simplified FC**: we don't do the full `is_data_available` check. Instead, the node checks if all columns of this block they are custodying are downloadable through either
1. Column subnets
2. Data column lookup over RPC
If they can, it's available. Otherwise, it's unavailable.
i.e. This milestone covers performing peer sampling, but does not including updating `is_data_available` based on sampling results.
:::
1. Being able to find corresponding peers by `get_custody_columns`.
2. Apply peer sampling when processing new blocks.
3. [Bonus] Apply sampling when performing historic block sync.
### M6. Reconstruct the Full Extended Matrix [Bonus]
1. Nodes are able to recover and reconstruct the full extended matrix.
2. Nodes reseed/broadcast the missing columns to the network.