# Hive Shapella Builder API Results ## Test Description - Two client types, each running a single instance containing 50% of the validation keys each - Clients are configured to connect to a mock builder, which simulates a working builder by querying the execution client for block production - Mock builder is capable determining correct prevrandao and withdrawals list from the consensus client by querying the beacon state - Chain config specifies Capella fork on epoch 2 or 5, depending on the client type - Mock builder produces valid payloads up until before the Capella fork - After Capella fork, the builder produces seemingly valid blinded payloads (valid withdrawals list), but a corrupted state root. - Upon payload unblinding, client is expected to detect the issue and not include the signed beacon block in its chain - Client is expected to circuit-break the usage of the builder due to the missing slots and network conditions - Test finishes once the Capella fork epoch is finalized by the chain ## Specific Client Configuration #### lighthouse version: Lighthouse/v3.4.0-9c81be8 minimum capella fork epoch: 5 #### teku version: teku/v23.2.0+16-gf97c16165/linux-x86_64/-eclipseadoptium-openjdk64bitservervm-java-17 minimum capella fork epoch: 5 #### prysm version: commit: f6cfd8590975f05a18b6e36dd3d8b28d14bcce6c minimum capella fork epoch: 2 #### nimbus version: Nimbus/v23.2.0-ffaa42-stateofus minimum capella fork epoch: 2 #### lodestar version: v1.4.3/960b8c5 minimum capella fork epoch: 2 ## How to reproduce hive branch: https://github.com/marioevz/hive/tree/add-builder-tests-to-eth2 example command: ``` cd hive go build -v . ./hive --client go-ethereum,teku-bn,teku-vc,prysm-bn,prysm-vc --sim eth2/withdrawals --sim.limit "/test-builders-capella-invalid-payload" ``` ## Results | Client 1 | Client 2 | Capella Fork Epoch| Capella Finalization Epoch | Percentage Filled Slots | Missed Slots Client 1 | Missed Slots Client 2 | | -------- | -------- | - | -------- | - | - | - | | Lighthouse | Teku | 5 | 7 | 71.875% | Epoch 5: 6 Epoch 6: 3 | Epoch 5: 3 Epoch 6: 5 | Lighthouse | Prysm | 5 | 7 | 71.875% | Epoch 5: 3 Epoch 6: 6 | Epoch 5: 3 Epoch 6: 3 | Lighthouse | Nimbus | 5 | 7 | Epoch 5: 31.25%, Epoch 6: 59.375% | Epoch 5: 0 Epoch 6: 0 | Epoch 5: **22** Epoch 6: **12** | Lighthouse | Lodestar | 5 | 7 | Epoch 5: 46.875%, Epoch 6: 53.125% | Epoch 5: 4 Epoch 6: 0 | Epoch 5: **13** Epoch 6: **15** | Prysm | Teku | 5 | 7 | 71.875% | Epoch 5: 5 Epoch 6: 0 | Epoch 5: 4 Epoch 6: **9** | Nimbus | Teku | 5 | 7 | Epoch 5: 40.625%, Epoch 6: 46.875% | Epoch 5: **15** Epoch 6: **17** | Epoch 5: 4 Epoch 6: 0 | Lodestar | Teku | 5 | 7 | Epoch 5: 40.625%, Epoch 6: 59.375% | Epoch 5: **15** Epoch 6: **13** | Epoch 5: 4 Epoch 6: 0 | Nimbus | Prysm | N/A* | | Lodestar | Prysm | 2 | 4 | Epoch 2: 37.5%, Epoch 3: 59.375% | Epoch 2: **16** Epoch 3: **13** | Epoch 2: 3 Epoch 3: 0 | Nimbus | Lodestar | 2 | 4 | Epoch 2: 28.125%, Epoch 3: 56.25% | Epoch 2: **16** Epoch 3: **14** | Epoch 2: 7 Epoch 3: 0 \*Client combination has unrelated bootnode pair issues in hive