:::info
:mega: fusaka-devnet-4 targets to launch on 8th Aug 2025 and will shut off on 15th Aug 2025
:::
:::info
We aim to test 1500 nodes on this testnet, using the same spec as devnet-3.
:::
### Changes include:
- Data column sidecars by root
- validator custody
- distributed blob building
- shifting cell proof computation to transaction sender
### Client split
#### Consensus:
Lighthouse: 42% (626)
Prysm: 31% (462)
Teku: 14% (209)
Nimbus: 9% (134)
Lodestar: 3% (45)
Grandine: 1% (14)
#### Execution:
Geth: 39% (581)
Nethermind: 39% (581)
Besu: 16% (238)
Erigon: 3% (45)
Reth: 2% (30)
NimbusEL: 1% (15)
#### Full Distribution Matrix:
| | Geth | Neth | Besu | Erig | Reth | NimbEL |
|--------|------|------|------|------|------|--------|
| Light | 245 | 245 | 100 | 19 | 12 | 5 |
| Prysm | 180 | 180 | 74 | 14 | 9 | 5 |
| Teku | 82 | 82 | 33 | 6 | 4 | 2 |
| Nimbus| 52 | 52 | 22 | 4 | 3 | 1 |
| Lode | 18 | 18 | 7 | 1 | 1 | 0 |
| Grand | 4 | 4 | 2 | 1 | 1 | 2 |
## EIP List for fusaka-devnet-3
The list below links the specific commit versions of the EIPs included in devnet-4.
Fusaka mega [EIP-7607](https://eips.ethereum.org/EIPS/eip-7607)
[EIP-7594: PeerDAS - Peer Data Availability Sampling](https://github.com/ethereum/EIPs/blob/ed447a1105230659fdce084710ae36bc309ff99f/EIPS/eip-7594.md)
[EIP-7823: Set upper bounds for MODEXP](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7823.md)
[EIP-7825: Transaction Gas Limit Cap](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7825.md)
[EIP-7883: ModExp Gas Cost Increase](https://eips.ethereum.org/EIPS/eip-7883)
[EIP-7892: Blob Parameter Only Hardforks](https://eips.ethereum.org/EIPS/eip-7892)
[EIP-7910: eth_config JSON-RPC Method](https://eips.ethereum.org/EIPS/eip-7910)
[EIP-7917: Deterministic proposer lookahead](https://eips.ethereum.org/EIPS/eip-7917)
[EIP-7918: Blob base fee bounded by execution cost](https://eips.ethereum.org/EIPS/eip-7918)
[EIP-7934: RLP Execution Block Size Limit](https://eips.ethereum.org/EIPS/eip-7934)
[EIP-7939: Count leading zeros (CLZ) opcode](https://eips.ethereum.org/EIPS/eip-7939)
[EIP-7951: Precompile for secp256r1 Curve Support](https://github.com/ethereum/EIPs/pull/9833)
**Key:**
- :up:, EIP has updated!
- :new:, new EIP added.
### Test Releases
**Consensus Specs:** [`v1.6.0-alpha.4`](https://github.com/ethereum/consensus-specs/releases/tag/v1.6.0-alpha.4) :heavy_check_mark:
**Execution Specs:** [`
[email protected]`](https://github.com/ethereum/execution-spec-tests/releases/tag/
[email protected]) :heavy_check_mark:
### Spec versions required & Open PRs
**Beacon Metrics**
[PeerDAS metrics: add data column, kzg, custody metrics](https://github.com/ethereum/beacon-metrics/pull/14) Open :exclamation:
**Execution Metrics**
[Add Initial Setup + GetBlobsV2 Metrics](https://github.com/ethereum/execution-metrics/pull/2) Open :exclamation:
**Beacon API**
**Builder Specs**
**Consensus Specs**
**Execution APIs**
**Execution Spec PRs**
### Validator custody
| Client | Status |
|------------|---------|
| Teku | Supports with backfill |
| Nimbus | Not yet supported |
| Prysm | Supports without backfill |
| Lighthouse | Supports without backfill |
| Grandine | Supports without backfill |
| Lodestar | Not yet supported |
## Kurtosis Interop Conifg (Pre-devnet testing)
```yaml
participants_matrix:
el:
- el_type: besu
el_image: ethpandaops/besu:main
- el_type: reth
el_image: ethpandaops/reth:fusaka-devnet-3
- el_type: nimbus
el_image: ethpandaops/nimbus-eth1:fusaka-devnet-3
- el_type: erigon
el_image: ethpandaops/erigon:fusaka-devnet-3
- el_type: geth
el_image: ethpandaops/geth:fusaka-devnet-3
- el_type: nethermind
el_image: ethpandaops/nethermind:fusaka-devnet-3
cl:
- cl_type: lighthouse
cl_image: ethpandaops/lighthouse:unstable
supernode: true
- cl_type: prysm
cl_image: ethpandaops/prysm-beacon-chain:fusaka-devnet-3
supernode: true
- cl_type: teku
cl_image: ethpandaops/teku:master
supernode: true
- cl_type: grandine
cl_image: ethpandaops/grandine:fusaka-devnet-3
supernode: true
- cl_type: lodestar
cl_image: ethpandaops/lodestar:fusaka-devnet-3
supernode: true
- cl_type: nimbus
cl_image: ethpandaops/nimbus-eth2:fusaka-devnet-3
supernode: true
network_params:
fulu_fork_epoch: 1
bpo_1_epoch: 2
bpo_1_max_blobs: 12
bpo_1_target_blobs: 9
bpo_2_epoch: 3
bpo_2_max_blobs: 6
bpo_2_target_blobs: 4
bpo_3_epoch: 4
bpo_3_max_blobs: 9
bpo_3_target_blobs: 6
bpo_4_epoch: 5
bpo_4_max_blobs: 18
bpo_4_target_blobs: 12
bpo_5_epoch: 6
bpo_5_max_blobs: 9
bpo_5_target_blobs: 6
withdrawal_type: "0x02"
preset: mainnet
additional_services:
- dora
- spamoor
spamoor_params:
image: ethpandaops/spamoor:master
max_mem: 4000
spammers:
- scenario: eoatx
config:
throughput: 200
- scenario: blobs
config:
throughput: 20
```
### Testing:
#### EIP-7594: PeerDAS - Peer Data Availability Sampling
* Validator custody testing - kurtosis - add validators and verify cgc value changes
* This can be easy by setting validators to 0x02 credential and make manual deposits
* MEV workflow testing - pending of flashbots/mock builder
* Minimal spec testing
* Minimal spec testing with mev workflow
* Validator custody testing with assertoor. Have a new assertoor test where 0x02 credentials are toped up 32eth at a time and monitoring the node's cgc value to ensure that its going up as expected.
* Sync testing script found [here](https://github.com/ethpandaops/kurtosis-sync-test/blob/main/README.md#peerdas-sync-test)
* Figure out proper cgc behaviour, do we want the cgc value to change before fulu? Otherwise we might be without supernodes during fork transition. This would really stress the actual fork
* Finalized root bug - what should the genesis root hash be? @potuz @hangleang
* Prysm <> Grandine peering bug
* What steps can we do to have resource optimization? We see significantly more ram usage with fulu active.
* We see very stable 9 blob spamming with pre fulu.
* Once fulu active, with the same constant load, we see significantly less blobs included.
* We might need some assertoor test for checking the content of blob pool and see if a proposer have included all the blobs that is has seen locally. And then we can investigate if there are any client pairs that are struggling with local blob building with peerdas.
* Test blob reconstruction. Have node propose only 50% of the columns, and see if all clients are able to complete reconstruction.
#### EIP-7825: Transaction gas limit cap
* Spamoor - create a new scenario with aiming to have 16M+ in a single transaction - @pk910
* Assertoor - verify that all ELs reject such tx
* Malicous test - get a node that accepts 16M tx+ and see if we can propagate it in the network.
Spamoor config:
```yaml=
# wallet settings
seed: gasburnertx-5 # seed for the wallet
refill_amount: 5000000000000000000 # refill 5 ETH when
refill_balance: 1000000000000000000 # balance drops below 1 ETH
refill_interval: 600 # check every 10 minutes
# scenario: gasburnertx
total_count: 0
throughput: 1
max_pending: 2
max_wallets: 40
rebroadcast: 120
base_fee: 20
tip_fee: 2
gas_units_to_burn: 31000000
client_group: ""
```
Besu :heavy_check_mark:
```
04 Jun 12:06:51 | Rejected invalid block 65 (0xcc465caeaca9e0a764bc1229350a61890ae76668a4ee83b19b3f1a15b6bde261), ExtraData: Nethermind v1.33.0a, reason: TxGasLimitCapExceeded: Gas limit 32050000 exceeed cap of 30000000.
```
Nethermind:
#### EIP-7823, EIP-7883, EIP-7918
* Hive tests
#### EIP-7892: Blob Parameter Only Hardforks
* Kurtosis tests, going up, down with max blobs
* Figure out final form of BPO [format](https://github.com/ethereum/EIPs/pull/9623)
* Figure out future forks in blob schedule planning
* Figure out if we want hard fork names in the blob schedule fields.
* Test future compatibility, see if we can start with fulu genesis and higher BPO at genesis.
* out of order fork execution issues, glamsterdam becoming active without triggering bpos
#### EIP-7917: Deterministic proposer lookahead
* Kurtosis local test to determine that interop works among all clients
* Make prediction of the next 64 slots proposers, make a deposit in the first 32 slots. Observer balance change, the proposer for slots 32 -> 64 should not change from earlier snapshot
## Client Interop Readiness
Manu's test scenarios:
https://hackmd.io/@manunalepa/BJzNsCnvyx
### Prysm
| Scenario | Grandine | Lighthouse | Lodestar | Nimbus | Prysm | Teku |
| -------- | -------- | ---------- | -------- | ------ | ----- | ---- |
| 1a | :question: | :question: | :question: | :question: | :question: | :question: |
| 1b | :question: | :question: | :question: | :question: | :question: | :question: |
| 2a| :question: | :question: | :question: | :question: | :question: | :question: |
| 2b | :question: | :question: | :question: | :question: | :question: | :question: |
| 3a | :question: | :question: | :question: | :question: | :question: | :question: |
| 3b | :question: | :question: | :question: | :question: | :question: | :question: |
| 4 | :question: | :question: | :question: | :question: | :question: | :question: |
## Reference spec for previous devnet:
https://notes.ethereum.org/@ethpandaops/fusaka-devnet-0