# 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