# peerdas-devnet-4 specs :::info :mega: Peerdas-devnet-4 is live as of Feb 7! https://peerdas-devnet-4.ethpandaops.io/ Dora: https://dora.peerdas-devnet-4.ethpandaops.io/ ::: :::info :mega: Note: PeerDAS is activated at the `FULU_FORK_EPOCH` ::: ## EIP List for peerdas-devnet-4 The list below links the specific commit versions of the EIPs included in devnet-3. - [EIP-7594: PeerDAS - Peer Data Availability Sampling](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7594.md) ### Spec changes for peerdas-devnet-4: Data column RPC must work prior to launching devnet **Consensus Specs** [v1.5.0-alpha.10](https://github.com/ethereum/consensus-specs/releases/tag/v1.5.0-alpha.10) :heavy_check_mark: [EIP-7594: Decouple network subnets from das-core](https://github.com/ethereum/consensus-specs/pull/3832) - Merged :heavy_check_mark: [Rebase eip7594 onto Electra](https://github.com/ethereum/consensus-specs/pull/3893) Merged :heavy_check_mark: [P2P clarifications when introducing engine_getBlobsV1](https://github.com/ethereum/consensus-specs/pull/3864) :heavy_check_mark: Merged [Fulu: Remove V3 of blob sidecar by root/range RPC](https://github.com/ethereum/consensus-specs/pull/4073) :heavy_check_mark: Merged **Beacon Metrics** [PR-13](https://github.com/ethereum/beacon-metrics/pull/13) - Peerdas metrics :exclamation: Open **Engine API** [PR-559](https://github.com/ethereum/execution-apis/pull/559) - Define engine_getBlobsV1 Merged :heavy_check_mark: **Execution APIs** [Define engine_getBlobsV1](https://github.com/ethereum/execution-apis/pull/559) Merged :heavy_check_mark: **Beacon API** :::info :mega: [Validator custody ](https://github.com/ethereum/consensus-specs/pull/3871) - This is up to clients to decide if they would like to implement it. It isn't a requirement for devnets. ::: ## Kurtosis Interop Conifg (Pre-devnet testing) ```yaml participants: # Super nodes # ----------- # Lighthouse - cl_type: lighthouse cl_image: ethpandaops/lighthouse:peerdas-devnet-4 cl_max_mem: 4096 cl_extra_params: - --subscribe-all-data-column-subnets # Prysm - cl_type: prysm cl_image: ethpandaops/prysm-beacon-chain:peerDAS-01705d1 cl_max_mem: 4096 cl_extra_params: - --minimum-peers-per-subnet=1 - --subscribe-all-subnets # Teku - cl_type: teku cl_image: ethpandaops/teku:das cl_max_mem: 4096 cl_extra_params: - --p2p-subscribe-all-custody-subnets-enabled - cl_type: grandine cl_image: ethpandaops/grandine:peerdas-fulu cl_max_mem: 4096 cl_extra_params: - --subscribe-all-subnets # Nimbus - cl_type: nimbus cl_image: ethpandaops/nimbus-eth2:columns cl_extra_params: - --debug-peerdas-supernode=true - --sync-light-client=no # Lodestar - cl_type: lodestar cl_image: ethpandaops/lodestar:peerDAS cl_extra_params: - --persistNetworkIdentity - --supernode # Full nodes # ----------- # Lighthouse - cl_type: lighthouse cl_image: ethpandaops/lighthouse:peerdas-devnet-4 cl_max_mem: 4096 # Prysm - cl_type: prysm cl_image: ethpandaops/prysm-beacon-chain:peerDAS-01705d1 cl_max_mem: 4096 cl_extra_params: - --minimum-peers-per-subnet=1 # Teku - cl_type: teku cl_image: ethpandaops/teku:das # Grandine - cl_type: grandine cl_image: ethpandaops/grandine:peerdas-fulu # Nimbus - cl_type: nimbus cl_image: ethpandaops/nimbus-eth2:columns cl_extra_params: - --debug-peerdas-supernode=false - --sync-light-client=no # Lodestar - cl_type: lodestar cl_image: ethpandaops/lodestar:peerDAS cl_extra_params: - --persistNetworkIdentity global_log_level: debug network_params: electra_fork_epoch: 1 fulu_fork_epoch: 2 additional_services: - dora - spamoor_blob - prometheus_grafana snooper_enabled: false dora_params: image: ethpandaops/dora:fulu-support ``` ## Client Interop Readiness Manu's test scenarios: https://hackmd.io/@manunalepa/BJzNsCnvyx ### Prysm | Scenario | Grandine | Lighthouse | Lodestar | Nimbus | Prysm | Teku | | -------- | -------- | ---------- | -------- | ------ | ----- | ---- | | 1a | ✅ | ✅ | ❓ | ✅ | ✅ | ✅ | | 1b | ✅ | ✅ | ❓ | ✅ | ✅ | ✅ | | 2a | ✅ | ✅ | ❓ | ✅ | ✅ | ✅ | | 2b | ✅ | ✅ | ❓ | ✅ | ✅ | ✅ | | 3a | ❌ | ✅ | ❓ | ✅ | ✅ | ✅ | | 3b | ❌ | ✅ | ❓ | ✅ | ✅ | ✅ | | 4 | ❌ | ✅ | ❓ | ✅ | ✅ | ❌ | ### Prysm - Lighthouse - [x] 🐛 Lighthouse does not unsubscribe from blob topics after Fulu - [x] 🐛 FIXED: Prysm continue to send gossip blobs on Fulu slots - [x] ❓ Prysm not getting range data columns back from Lighthouse due to rate limiting. - This is because there's only one single node to request from and the requests were sent too quick in a short period, due to the size of the network - Jimmy: it's possible to add `--disable-rate-limiting` flag to the Kurtosis config for local testing purpose (@Manu suggested to leave it on by default, as node must be able to sync even when rate limiting is present) - [x] ❓ Lighthouse may need to review rate limits - [x] 🐛 Prysm sending data column by range requests for a block with no blobs (found the bug, fixing it) ### Prysm - Teku - [x] ✅ Blocks and blobs after Fulu fork - [ ] 🤨 Prysm super node crashes, but may not be PeerDAS related ### Prysm - Grandine - [x] ✅Blocks and blobs after Fulu fork ### Teku - Lighthouse - [x] ✅ Blocks and blobs after Fulu fork ### Teku - Grandine - [x] ✅ Blocks and blobs after Fulu fork ### Grandine - Lighthouse - [x] ✅ Blocks and blobs after Fulu fork ## Reference spec for previous devnet: https://notes.ethereum.org/@ethpandaops/peerdas-devnet-3