use v1.3.0-rc.0 consensus spec test vectors (#4472)

This commit is contained in:
tersec 2023-01-09 14:15:43 +00:00 committed by GitHub
parent 0ba9fc4ede
commit 787703bd0c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 302 additions and 91 deletions

View File

@ -52,6 +52,7 @@ ConsensusSpecPreset-mainnet
+ EF - Altair - Rewards - with_slashed_validators_leak [Preset: mainnet] OK
+ EF - Altair - Slots - double_empty_epoch [Preset: mainnet] OK
+ EF - Altair - Slots - empty_epoch [Preset: mainnet] OK
+ EF - Altair - Slots - historical_accumulator [Preset: mainnet] OK
+ EF - Altair - Slots - over_epoch_boundary [Preset: mainnet] OK
+ EF - Altair - Slots - slots_1 [Preset: mainnet] OK
+ EF - Altair - Slots - slots_2 [Preset: mainnet] OK
@ -124,6 +125,7 @@ ConsensusSpecPreset-mainnet
+ EF - Bellatrix - Rewards - with_slashed_validators_leak [Preset: mainnet] OK
+ EF - Bellatrix - Slots - double_empty_epoch [Preset: mainnet] OK
+ EF - Bellatrix - Slots - empty_epoch [Preset: mainnet] OK
+ EF - Bellatrix - Slots - historical_accumulator [Preset: mainnet] OK
+ EF - Bellatrix - Slots - over_epoch_boundary [Preset: mainnet] OK
+ EF - Bellatrix - Slots - slots_1 [Preset: mainnet] OK
+ EF - Bellatrix - Slots - slots_2 [Preset: mainnet] OK
@ -196,6 +198,7 @@ ConsensusSpecPreset-mainnet
+ EF - Capella - Rewards - with_slashed_validators_leak [Preset: mainnet] OK
+ EF - Capella - Slots - double_empty_epoch [Preset: mainnet] OK
+ EF - Capella - Slots - empty_epoch [Preset: mainnet] OK
+ EF - Capella - Slots - historical_accumulator [Preset: mainnet] OK
+ EF - Capella - Slots - over_epoch_boundary [Preset: mainnet] OK
+ EF - Capella - Slots - slots_1 [Preset: mainnet] OK
+ EF - Capella - Slots - slots_2 [Preset: mainnet] OK
@ -268,6 +271,7 @@ ConsensusSpecPreset-mainnet
+ EF - EIP4844 - Rewards - with_slashed_validators_leak [Preset: mainnet] OK
+ EF - EIP4844 - Slots - double_empty_epoch [Preset: mainnet] OK
+ EF - EIP4844 - Slots - empty_epoch [Preset: mainnet] OK
+ EF - EIP4844 - Slots - historical_accumulator [Preset: mainnet] OK
+ EF - EIP4844 - Slots - over_epoch_boundary [Preset: mainnet] OK
+ EF - EIP4844 - Slots - slots_1 [Preset: mainnet] OK
+ EF - EIP4844 - Slots - slots_2 [Preset: mainnet] OK
@ -343,6 +347,7 @@ ConsensusSpecPreset-mainnet
+ EF - Phase 0 - Rewards - with_slashed_validators_leak [Preset: mainnet] OK
+ EF - Phase 0 - Slots - double_empty_epoch [Preset: mainnet] OK
+ EF - Phase 0 - Slots - empty_epoch [Preset: mainnet] OK
+ EF - Phase 0 - Slots - historical_accumulator [Preset: mainnet] OK
+ EF - Phase 0 - Slots - over_epoch_boundary [Preset: mainnet] OK
+ EF - Phase 0 - Slots - slots_1 [Preset: mainnet] OK
+ EF - Phase 0 - Slots - slots_2 [Preset: mainnet] OK
@ -495,6 +500,7 @@ ConsensusSpecPreset-mainnet
+ [Invalid] EF - Capella - Sanity - Blocks - slash_and_exit_same_index [Preset: mainnet] OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_all_zeroed_sig [Preset: mainnet] OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_attester_slashing_same_block OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_bls_changes_same_block [Prese OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_deposit_same_block [Preset: m OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_proposer_slashings_same_block OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_validator_exit_same_block [Pr OK
@ -507,6 +513,8 @@ ConsensusSpecPreset-mainnet
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_prev_slot_block_transition [Preset: mai OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_same_slot_block_transition [Preset: mai OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_similar_proposer_slashings_same_block [ OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_two_bls_changes_of_different_addresses_ OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_withdrawal_fail_second_block_payload_is OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - slash_and_exit_same_index [Preset: mainnet] OK
+ [Invalid] EF - Phase 0 - Sanity - Blocks - invalid_all_zeroed_sig [Preset: mainnet] OK
+ [Invalid] EF - Phase 0 - Sanity - Blocks - invalid_duplicate_attester_slashing_same_block OK
@ -730,22 +738,27 @@ ConsensusSpecPreset-mainnet
+ [Valid] EF - EIP4844 - Sanity - Blocks - full_random_operations_1 [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - full_random_operations_2 [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - full_random_operations_3 [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - full_withdrawal_in_epoch_transition [Preset: ma OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - high_proposer_index [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - historical_batch [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - inactivity_scores_full_participation_leaking [P OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - inactivity_scores_leaking [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - is_execution_enabled_false [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - many_partial_withdrawals_in_epoch_transition [P OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - max_blobs [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - multiple_attester_slashings_no_overlap [Preset: OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - multiple_attester_slashings_partial_overlap [Pr OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - multiple_different_proposer_slashings_same_bloc OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - multiple_different_validator_exits_same_block [ OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - one_blob [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - partial_withdrawal_in_epoch_transition [Preset: OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - proposer_after_inactive_index [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - proposer_self_slashing [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - proposer_slashing [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - skipped_slots [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - slash_and_exit_diff_index [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - success_bls_change [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - success_exit_and_bls_change [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee__empty [Preset: mainne OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee__full [Preset: mainnet OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee__half [Preset: mainnet OK
@ -753,6 +766,7 @@ ConsensusSpecPreset-mainnet
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee_genesis__full [Preset: OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee_genesis__half [Preset: OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - voluntary_exit [Preset: mainnet] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - withdrawal_success_two_blocks [Preset: mainnet] OK
+ [Valid] EF - Phase 0 - Finality - finality_no_updates_at_genesis [Preset: mainnet] OK
+ [Valid] EF - Phase 0 - Finality - finality_rule_1 [Preset: mainnet] OK
+ [Valid] EF - Phase 0 - Finality - finality_rule_2 [Preset: mainnet] OK
@ -799,7 +813,7 @@ ConsensusSpecPreset-mainnet
+ [Valid] EF - Phase 0 - Sanity - Blocks - slash_and_exit_diff_index [Preset: mainnet] OK
+ [Valid] EF - Phase 0 - Sanity - Blocks - voluntary_exit [Preset: mainnet] OK
```
OK: 787/796 Fail: 0/796 Skip: 9/796
OK: 801/810 Fail: 0/810 Skip: 9/810
## Attestation
```diff
+ [Invalid] EF - Altair - Operations - Attestation - invalid_after_epoch_slots OK
@ -1159,15 +1173,24 @@ OK: 150/150 Fail: 0/150 Skip: 0/150
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_bad_signature OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_incorrect_from_bls OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_val_index_out_of_r OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_already_0x01 OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_bad_signature OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_incorrect_from_bls OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_val_index_out_of_r OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_exited OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_in_activation_queu OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_in_exit_queue OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_not_activated OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_withdrawable OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - no_op OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_exited OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_in_activation_queu OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_in_exit_queue OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_not_activated OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_withdrawable OK
```
OK: 11/11 Fail: 0/11 Skip: 0/11
OK: 20/20 Fail: 0/20 Skip: 0/20
## Block Header
```diff
+ [Invalid] EF - Altair - Operations - Block Header - invalid_multiple_blocks_single_slot OK
@ -1283,6 +1306,7 @@ OK: 30/30 Fail: 0/30 Skip: 0/30
+ [Valid] EF - EIP4844 - Operations - Deposit - new_deposit_non_versioned_withdrawal_crede OK
+ [Valid] EF - EIP4844 - Operations - Deposit - new_deposit_over_max OK
+ [Valid] EF - EIP4844 - Operations - Deposit - new_deposit_under_max OK
+ [Valid] EF - EIP4844 - Operations - Deposit - success_top_up_to_withdrawn_validator OK
+ [Valid] EF - EIP4844 - Operations - Deposit - top_up__less_effective_balance OK
+ [Valid] EF - EIP4844 - Operations - Deposit - top_up__max_effective_balance OK
+ [Valid] EF - EIP4844 - Operations - Deposit - top_up__zero_balance OK
@ -1302,7 +1326,7 @@ OK: 30/30 Fail: 0/30 Skip: 0/30
+ [Valid] EF - Phase 0 - Operations - Deposit - top_up__max_effective_balance OK
+ [Valid] EF - Phase 0 - Operations - Deposit - top_up__zero_balance OK
```
OK: 97/97 Fail: 0/97 Skip: 0/97
OK: 98/98 Fail: 0/98 Skip: 0/98
## EF - Altair - Epoch Processing - Effective balance updates [Preset: mainnet]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: mainnet] OK
@ -1649,9 +1673,9 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Eth1 data reset - eth1_vote_reset [Preset: mainnet] OK
```
OK: 2/2 Fail: 0/2 Skip: 0/2
## EF - Capella - Epoch Processing - Historical roots update [Preset: mainnet]
## EF - Capella - Epoch Processing - Historical summaries update [Preset: mainnet]
```diff
+ Historical roots update - historical_root_accumulator [Preset: mainnet] OK
+ Historical summaries update - historical_summaries_accumulator [Preset: mainnet] OK
```
OK: 1/1 Fail: 0/1 Skip: 0/1
## EF - Capella - Epoch Processing - Inactivity [Preset: mainnet]
@ -1781,6 +1805,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing Fork OK
+ Testing ForkData OK
+ Testing HistoricalBatch OK
+ Testing HistoricalSummary OK
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
@ -1805,7 +1830,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing VoluntaryExit OK
+ Testing Withdrawal OK
```
OK: 44/44 Fail: 0/44 Skip: 0/44
OK: 45/45 Fail: 0/45 Skip: 0/45
## EF - EIP4844 - Epoch Processing - Effective balance updates [Preset: mainnet]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: mainnet] OK
@ -1817,9 +1842,9 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Eth1 data reset - eth1_vote_reset [Preset: mainnet] OK
```
OK: 2/2 Fail: 0/2 Skip: 0/2
## EF - EIP4844 - Epoch Processing - Historical roots update [Preset: mainnet]
## EF - EIP4844 - Epoch Processing - Historical summaries update [Preset: mainnet]
```diff
+ Historical roots update - historical_root_accumulator [Preset: mainnet] OK
+ Historical summaries update - historical_summaries_accumulator [Preset: mainnet] OK
```
OK: 1/1 Fail: 0/1 Skip: 0/1
## EF - EIP4844 - Epoch Processing - Inactivity [Preset: mainnet]
@ -1950,6 +1975,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing Fork OK
+ Testing ForkData OK
+ Testing HistoricalBatch OK
+ Testing HistoricalSummary OK
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
@ -1975,7 +2001,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing VoluntaryExit OK
+ Testing Withdrawal OK
```
OK: 46/46 Fail: 0/46 Skip: 0/46
OK: 47/47 Fail: 0/47 Skip: 0/47
## EF - Phase 0 - Epoch Processing - Effective balance updates [Preset: mainnet]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: mainnet] OK
@ -2456,6 +2482,25 @@ OK: 63/63 Fail: 0/63 Skip: 0/63
+ [Invalid] EF - Capella - Operations - Withdrawals - invalid_one_of_many_incorrectly_full OK
+ [Invalid] EF - Capella - Operations - Withdrawals - invalid_one_of_many_incorrectly_partia OK
+ [Invalid] EF - Capella - Operations - Withdrawals - invalid_two_expected_partial_withdrawa OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_a_lot_fully_withdrawable_too_f OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_a_lot_mixed_withdrawable_in_qu OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_a_lot_partially_withdrawable_t OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_address_full OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_address_partial OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_amount_full OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_amount_partial OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_withdrawal_index OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_many_incorrectly_full OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_many_incorrectly_partial OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_max_per_slot_full_withdrawals_ OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_max_per_slot_partial_withdrawa OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_non_withdrawable_non_empty_wit OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_expected_full_withdrawal_a OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_expected_full_withdrawal_a OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_expected_partial_withdrawa OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_of_many_incorrectly_full OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_of_many_incorrectly_partia OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_two_expected_partial_withdrawa OK
+ [Valid] EF - Capella - Operations - Withdrawals - all_withdrawal OK
+ [Valid] EF - Capella - Operations - Withdrawals - no_withdrawals_but_some_next_epoch OK
+ [Valid] EF - Capella - Operations - Withdrawals - random_0 OK
@ -2487,9 +2532,39 @@ OK: 63/63 Fail: 0/63 Skip: 0/63
+ [Valid] EF - Capella - Operations - Withdrawals - withdrawable_epoch_but_0_balance OK
+ [Valid] EF - Capella - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
+ [Valid] EF - Capella - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - no_op OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - all_withdrawal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - no_withdrawals_but_some_next_epoch OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_0 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_full_withdrawals_0 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_full_withdrawals_1 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_full_withdrawals_2 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_full_withdrawals_3 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_1 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_2 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_3 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_4 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_5 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_all_fully_withdrawable_in_one_ OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_all_partially_withdrawable_in_ OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_excess_balance_but_no_max_effe OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_max_partial_withdrawable OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_max_per_slot OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_no_excess_balance OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_no_max_effective_balance OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_full_withdrawal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_activ OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_exite OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_exite OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_in_ex OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_not_y OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_two_partial_withdrawable OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_zero_expected_withdrawals OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - withdrawable_epoch_but_0_balance OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
```
OK: 51/51 Fail: 0/51 Skip: 0/51
OK: 100/100 Fail: 0/100 Skip: 0/100
---TOTAL---
OK: 2197/2206 Fail: 0/2206 Skip: 9/2206
OK: 2272/2281 Fail: 0/2281 Skip: 9/2281

View File

@ -54,6 +54,7 @@ ConsensusSpecPreset-minimal
+ EF - Altair - Rewards - with_slashed_validators_leak [Preset: minimal] OK
+ EF - Altair - Slots - double_empty_epoch [Preset: minimal] OK
+ EF - Altair - Slots - empty_epoch [Preset: minimal] OK
+ EF - Altair - Slots - historical_accumulator [Preset: minimal] OK
+ EF - Altair - Slots - over_epoch_boundary [Preset: minimal] OK
+ EF - Altair - Slots - slots_1 [Preset: minimal] OK
+ EF - Altair - Slots - slots_2 [Preset: minimal] OK
@ -132,6 +133,7 @@ ConsensusSpecPreset-minimal
+ EF - Bellatrix - Rewards - with_slashed_validators_leak [Preset: minimal] OK
+ EF - Bellatrix - Slots - double_empty_epoch [Preset: minimal] OK
+ EF - Bellatrix - Slots - empty_epoch [Preset: minimal] OK
+ EF - Bellatrix - Slots - historical_accumulator [Preset: minimal] OK
+ EF - Bellatrix - Slots - over_epoch_boundary [Preset: minimal] OK
+ EF - Bellatrix - Slots - slots_1 [Preset: minimal] OK
+ EF - Bellatrix - Slots - slots_2 [Preset: minimal] OK
@ -210,6 +212,7 @@ ConsensusSpecPreset-minimal
+ EF - Capella - Rewards - with_slashed_validators_leak [Preset: minimal] OK
+ EF - Capella - Slots - double_empty_epoch [Preset: minimal] OK
+ EF - Capella - Slots - empty_epoch [Preset: minimal] OK
+ EF - Capella - Slots - historical_accumulator [Preset: minimal] OK
+ EF - Capella - Slots - over_epoch_boundary [Preset: minimal] OK
+ EF - Capella - Slots - slots_1 [Preset: minimal] OK
+ EF - Capella - Slots - slots_2 [Preset: minimal] OK
@ -288,6 +291,7 @@ ConsensusSpecPreset-minimal
+ EF - EIP4844 - Rewards - with_slashed_validators_leak [Preset: minimal] OK
+ EF - EIP4844 - Slots - double_empty_epoch [Preset: minimal] OK
+ EF - EIP4844 - Slots - empty_epoch [Preset: minimal] OK
+ EF - EIP4844 - Slots - historical_accumulator [Preset: minimal] OK
+ EF - EIP4844 - Slots - over_epoch_boundary [Preset: minimal] OK
+ EF - EIP4844 - Slots - slots_1 [Preset: minimal] OK
+ EF - EIP4844 - Slots - slots_2 [Preset: minimal] OK
@ -367,6 +371,7 @@ ConsensusSpecPreset-minimal
+ EF - Phase 0 - Rewards - with_slashed_validators_leak [Preset: minimal] OK
+ EF - Phase 0 - Slots - double_empty_epoch [Preset: minimal] OK
+ EF - Phase 0 - Slots - empty_epoch [Preset: minimal] OK
+ EF - Phase 0 - Slots - historical_accumulator [Preset: minimal] OK
+ EF - Phase 0 - Slots - over_epoch_boundary [Preset: minimal] OK
+ EF - Phase 0 - Slots - slots_1 [Preset: minimal] OK
+ EF - Phase 0 - Slots - slots_2 [Preset: minimal] OK
@ -575,6 +580,7 @@ ConsensusSpecPreset-minimal
+ [Invalid] EF - Capella - Sanity - Blocks - slash_and_exit_same_index [Preset: minimal] OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_all_zeroed_sig [Preset: minimal] OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_attester_slashing_same_block OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_bls_changes_same_block [Prese OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_deposit_same_block [Preset: m OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_proposer_slashings_same_block OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_duplicate_validator_exit_same_block [Pr OK
@ -587,6 +593,8 @@ ConsensusSpecPreset-minimal
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_prev_slot_block_transition [Preset: min OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_same_slot_block_transition [Preset: min OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_similar_proposer_slashings_same_block [ OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_two_bls_changes_of_different_addresses_ OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - invalid_withdrawal_fail_second_block_payload_is OK
+ [Invalid] EF - EIP4844 - Sanity - Blocks - slash_and_exit_same_index [Preset: minimal] OK
+ [Invalid] EF - Phase 0 - Sanity - Blocks - invalid_all_zeroed_sig [Preset: minimal] OK
+ [Invalid] EF - Phase 0 - Sanity - Blocks - invalid_duplicate_attester_slashing_same_block OK
@ -830,22 +838,27 @@ ConsensusSpecPreset-minimal
+ [Valid] EF - EIP4844 - Sanity - Blocks - full_random_operations_1 [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - full_random_operations_2 [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - full_random_operations_3 [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - full_withdrawal_in_epoch_transition [Preset: mi OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - high_proposer_index [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - historical_batch [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - inactivity_scores_full_participation_leaking [P OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - inactivity_scores_leaking [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - is_execution_enabled_false [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - many_partial_withdrawals_in_epoch_transition [P OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - max_blobs [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - multiple_attester_slashings_no_overlap [Preset: OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - multiple_attester_slashings_partial_overlap [Pr OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - multiple_different_proposer_slashings_same_bloc OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - multiple_different_validator_exits_same_block [ OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - one_blob [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - partial_withdrawal_in_epoch_transition [Preset: OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - proposer_after_inactive_index [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - proposer_self_slashing [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - proposer_slashing [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - skipped_slots [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - slash_and_exit_diff_index [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - success_bls_change [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - success_exit_and_bls_change [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee__empty [Preset: minima OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee__full [Preset: minimal OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee__half [Preset: minimal OK
@ -853,6 +866,7 @@ ConsensusSpecPreset-minimal
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee_genesis__full [Preset: OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - sync_committee_committee_genesis__half [Preset: OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - voluntary_exit [Preset: minimal] OK
+ [Valid] EF - EIP4844 - Sanity - Blocks - withdrawal_success_two_blocks [Preset: minimal] OK
+ [Valid] EF - Phase 0 - Finality - finality_no_updates_at_genesis [Preset: minimal] OK
+ [Valid] EF - Phase 0 - Finality - finality_rule_1 [Preset: minimal] OK
+ [Valid] EF - Phase 0 - Finality - finality_rule_2 [Preset: minimal] OK
@ -904,7 +918,7 @@ ConsensusSpecPreset-minimal
+ [Valid] EF - Phase 0 - Sanity - Blocks - slash_and_exit_diff_index [Preset: minimal] OK
+ [Valid] EF - Phase 0 - Sanity - Blocks - voluntary_exit [Preset: minimal] OK
```
OK: 892/901 Fail: 0/901 Skip: 9/901
OK: 906/915 Fail: 0/915 Skip: 9/915
## Attestation
```diff
+ [Invalid] EF - Altair - Operations - Attestation - invalid_after_epoch_slots OK
@ -1264,15 +1278,24 @@ OK: 150/150 Fail: 0/150 Skip: 0/150
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_bad_signature OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_incorrect_from_bls OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_val_index_out_of_r OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_already_0x01 OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_bad_signature OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_incorrect_from_bls OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_val_index_out_of_r OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_exited OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_in_activation_queu OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_in_exit_queue OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_not_activated OK
+ [Valid] EF - Capella - Operations - BLS to execution change - success_withdrawable OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - no_op OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_exited OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_in_activation_queu OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_in_exit_queue OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_not_activated OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_withdrawable OK
```
OK: 11/11 Fail: 0/11 Skip: 0/11
OK: 20/20 Fail: 0/20 Skip: 0/20
## Block Header
```diff
+ [Invalid] EF - Altair - Operations - Block Header - invalid_multiple_blocks_single_slot OK
@ -1388,6 +1411,7 @@ OK: 30/30 Fail: 0/30 Skip: 0/30
+ [Valid] EF - EIP4844 - Operations - Deposit - new_deposit_non_versioned_withdrawal_crede OK
+ [Valid] EF - EIP4844 - Operations - Deposit - new_deposit_over_max OK
+ [Valid] EF - EIP4844 - Operations - Deposit - new_deposit_under_max OK
+ [Valid] EF - EIP4844 - Operations - Deposit - success_top_up_to_withdrawn_validator OK
+ [Valid] EF - EIP4844 - Operations - Deposit - top_up__less_effective_balance OK
+ [Valid] EF - EIP4844 - Operations - Deposit - top_up__max_effective_balance OK
+ [Valid] EF - EIP4844 - Operations - Deposit - top_up__zero_balance OK
@ -1407,7 +1431,7 @@ OK: 30/30 Fail: 0/30 Skip: 0/30
+ [Valid] EF - Phase 0 - Operations - Deposit - top_up__max_effective_balance OK
+ [Valid] EF - Phase 0 - Operations - Deposit - top_up__zero_balance OK
```
OK: 97/97 Fail: 0/97 Skip: 0/97
OK: 98/98 Fail: 0/98 Skip: 0/98
## EF - Altair - Epoch Processing - Effective balance updates [Preset: minimal]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: minimal] OK
@ -1784,9 +1808,9 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Eth1 data reset - eth1_vote_reset [Preset: minimal] OK
```
OK: 2/2 Fail: 0/2 Skip: 0/2
## EF - Capella - Epoch Processing - Historical roots update [Preset: minimal]
## EF - Capella - Epoch Processing - Historical summaries update [Preset: minimal]
```diff
+ Historical roots update - historical_root_accumulator [Preset: minimal] OK
+ Historical summaries update - historical_summaries_accumulator [Preset: minimal] OK
```
OK: 1/1 Fail: 0/1 Skip: 0/1
## EF - Capella - Epoch Processing - Inactivity [Preset: minimal]
@ -1931,6 +1955,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing Fork OK
+ Testing ForkData OK
+ Testing HistoricalBatch OK
+ Testing HistoricalSummary OK
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
@ -1955,7 +1980,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing VoluntaryExit OK
+ Testing Withdrawal OK
```
OK: 44/44 Fail: 0/44 Skip: 0/44
OK: 45/45 Fail: 0/45 Skip: 0/45
## EF - EIP4844 - Epoch Processing - Effective balance updates [Preset: minimal]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: minimal] OK
@ -1967,9 +1992,9 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Eth1 data reset - eth1_vote_reset [Preset: minimal] OK
```
OK: 2/2 Fail: 0/2 Skip: 0/2
## EF - EIP4844 - Epoch Processing - Historical roots update [Preset: minimal]
## EF - EIP4844 - Epoch Processing - Historical summaries update [Preset: minimal]
```diff
+ Historical roots update - historical_root_accumulator [Preset: minimal] OK
+ Historical summaries update - historical_summaries_accumulator [Preset: minimal] OK
```
OK: 1/1 Fail: 0/1 Skip: 0/1
## EF - EIP4844 - Epoch Processing - Inactivity [Preset: minimal]
@ -2115,6 +2140,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing Fork OK
+ Testing ForkData OK
+ Testing HistoricalBatch OK
+ Testing HistoricalSummary OK
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
@ -2140,7 +2166,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing VoluntaryExit OK
+ Testing Withdrawal OK
```
OK: 46/46 Fail: 0/46 Skip: 0/46
OK: 47/47 Fail: 0/47 Skip: 0/47
## EF - Phase 0 - Epoch Processing - Effective balance updates [Preset: minimal]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: minimal] OK
@ -2622,6 +2648,25 @@ OK: 68/68 Fail: 0/68 Skip: 0/68
+ [Invalid] EF - Capella - Operations - Withdrawals - invalid_one_of_many_incorrectly_full OK
+ [Invalid] EF - Capella - Operations - Withdrawals - invalid_one_of_many_incorrectly_partia OK
+ [Invalid] EF - Capella - Operations - Withdrawals - invalid_two_expected_partial_withdrawa OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_a_lot_fully_withdrawable_too_f OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_a_lot_mixed_withdrawable_in_qu OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_a_lot_partially_withdrawable_t OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_address_full OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_address_partial OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_amount_full OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_amount_partial OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_incorrect_withdrawal_index OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_many_incorrectly_full OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_many_incorrectly_partial OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_max_per_slot_full_withdrawals_ OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_max_per_slot_partial_withdrawa OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_non_withdrawable_non_empty_wit OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_expected_full_withdrawal_a OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_expected_full_withdrawal_a OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_expected_partial_withdrawa OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_of_many_incorrectly_full OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_one_of_many_incorrectly_partia OK
+ [Invalid] EF - EIP4844 - Operations - Withdrawals - invalid_two_expected_partial_withdrawa OK
+ [Valid] EF - Capella - Operations - Withdrawals - all_withdrawal OK
+ [Valid] EF - Capella - Operations - Withdrawals - no_withdrawals_but_some_next_epoch OK
+ [Valid] EF - Capella - Operations - Withdrawals - random_0 OK
@ -2654,9 +2699,40 @@ OK: 68/68 Fail: 0/68 Skip: 0/68
+ [Valid] EF - Capella - Operations - Withdrawals - withdrawable_epoch_but_0_balance OK
+ [Valid] EF - Capella - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
+ [Valid] EF - Capella - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - no_op OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - all_withdrawal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - no_withdrawals_but_some_next_epoch OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_0 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_full_withdrawals_0 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_full_withdrawals_1 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_full_withdrawals_2 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_full_withdrawals_3 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_1 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_2 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_3 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_4 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - random_partial_withdrawals_5 OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_all_fully_withdrawable OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_all_partially_withdrawable OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_excess_balance_but_no_max_effe OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_max_partial_withdrawable OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_max_per_slot OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_max_plus_one_withdrawable OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_no_excess_balance OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_no_max_effective_balance OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_full_withdrawal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_activ OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_exite OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_exite OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_in_ex OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawable_not_y OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_one_partial_withdrawal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_two_partial_withdrawable OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - success_zero_expected_withdrawals OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - withdrawable_epoch_but_0_balance OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
+ [Valid] EF - EIP4844 - Operations - Withdrawals - withdrawable_epoch_but_0_effective_bal OK
```
OK: 52/52 Fail: 0/52 Skip: 0/52
OK: 102/102 Fail: 0/102 Skip: 0/102
---TOTAL---
OK: 2348/2357 Fail: 0/2357 Skip: 9/2357
OK: 2424/2433 Fail: 0/2433 Skip: 9/2433

View File

@ -1,5 +1,5 @@
# beacon_chain
# Copyright (c) 2021-2022 Status Research & Development GmbH
# Copyright (c) 2021-2023 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
@ -14,7 +14,8 @@ import
./spec/datatypes/[base, altair, bellatrix],
./spec/[eth2_ssz_serialization, eth2_merkleization]
from ./spec/datatypes/capella import ExecutionPayloadHeader, Withdrawal
from ./spec/datatypes/capella import
ExecutionPayloadHeader, HistoricalSummary, Withdrawal
from ./spec/datatypes/eip4844 import ExecutionPayloadHeader
type
@ -252,6 +253,11 @@ type
next_withdrawal_index*: WithdrawalIndex # [New in Capella]
next_withdrawal_validator_index*: uint64 # [New in Capella]
# Deep history valid from Capella onwards
historical_summaries*:
HashList[HistoricalSummary,
Limit HISTORICAL_ROOTS_LIMIT] # [New in Capella]
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/capella/beacon-chain.md#beaconstate
# with indirect changes via ExecutionPayloadHeader
# Memory-representation-equivalent to a Capella BeaconState for in-place SSZ
@ -317,3 +323,7 @@ type
# Withdrawals
next_withdrawal_index*: WithdrawalIndex
next_withdrawal_validator_index*: uint64
# Deep history valid from Capella onwards
historical_summaries*:
HashList[HistoricalSummary, Limit HISTORICAL_ROOTS_LIMIT]

View File

@ -842,7 +842,8 @@ func is_partially_withdrawable_validator(
has_max_effective_balance and has_excess_balance
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/capella/beacon-chain.md#new-get_expected_withdrawals
func get_expected_withdrawals*(state: capella.BeaconState): seq[Withdrawal] =
func get_expected_withdrawals*(
state: capella.BeaconState | eip4844.BeaconState): seq[Withdrawal] =
let
epoch = get_current_epoch(state)
num_validators = lenu64(state.validators)
@ -876,16 +877,6 @@ func get_expected_withdrawals*(state: capella.BeaconState): seq[Withdrawal] =
validator_index = (validator_index + 1) mod num_validators
withdrawals
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/eip4844/beacon-chain.md#disabling-withdrawals
func get_expected_withdrawals*(state: eip4844.BeaconState): seq[Withdrawal] =
# During testing we avoid Capella-specific updates to the state transition.
#
# ...
#
# The `get_expected_withdrawals` function is also modified to return an empty
# withdrawals list.
@[]
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/altair/beacon-chain.md#get_next_sync_committee
func get_next_sync_committee*(
state: altair.BeaconState | bellatrix.BeaconState | capella.BeaconState |

View File

@ -1,5 +1,5 @@
# beacon_chain
# Copyright (c) 2018-2022 Status Research & Development GmbH
# Copyright (c) 2018-2023 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
@ -77,7 +77,7 @@ export
tables, results, json_serialization, timer, sszTypes, beacon_time, crypto,
digest, presets
const SPEC_VERSION* = "1.3.0-alpha.2"
const SPEC_VERSION* = "1.3.0-rc.0"
## Spec version we're aiming to be compatible with, right now
const

View File

@ -48,6 +48,13 @@ type
message*: BLSToExecutionChange
signature*: ValidatorSig
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/capella/beacon-chain.md#historicalsummary
HistoricalSummary* = object
# `HistoricalSummary` matches the components of the phase0
# `HistoricalBatch` making the two hash_tree_root-compatible.
block_summary_root*: Eth2Digest
state_summary_root*: Eth2Digest
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/capella/beacon-chain.md#executionpayload
ExecutionPayload* = object
parent_hash*: Eth2Digest
@ -107,7 +114,8 @@ type
## Needed to process attestations, older to newer
state_roots*: HashArray[Limit SLOTS_PER_HISTORICAL_ROOT, Eth2Digest]
historical_roots*: HashList[Eth2Digest, Limit HISTORICAL_ROOTS_LIMIT]
historical_roots*: HashList[Eth2Digest, Limit HISTORICAL_ROOTS_LIMIT] # \
# Frozen in Capella, replaced by historical_summaries
# Eth1
eth1_data*: Eth1Data
@ -153,6 +161,11 @@ type
next_withdrawal_index*: WithdrawalIndex # [New in Capella]
next_withdrawal_validator_index*: uint64 # [New in Capella]
# Deep history valid from Capella onwards
historical_summaries*:
HashList[HistoricalSummary,
Limit HISTORICAL_ROOTS_LIMIT] # [New in Capella]
# TODO Careful, not nil analysis is broken / incomplete and the semantics will
# likely change in future versions of the language:
# https://github.com/nim-lang/RFCs/issues/250

View File

@ -165,8 +165,12 @@ type
latest_execution_payload_header*: ExecutionPayloadHeader
# Withdrawals
next_withdrawal_index*: WithdrawalIndex # [New in Capella]
next_withdrawal_validator_index*: uint64 # [New in Capella]
next_withdrawal_index*: WithdrawalIndex
next_withdrawal_validator_index*: uint64
# Deep history valid from Capella onwards
historical_summaries*:
HashList[HistoricalSummary, Limit HISTORICAL_ROOTS_LIMIT]
# TODO Careful, not nil analysis is broken / incomplete and the semantics will
# likely change in future versions of the language:

View File

@ -395,7 +395,7 @@ proc process_voluntary_exit*(
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/capella/beacon-chain.md#new-process_bls_to_execution_change
proc process_bls_to_execution_change*(
state: var capella.BeaconState,
state: var (capella.BeaconState | eip4844.BeaconState),
signed_address_change: SignedBLSToExecutionChange): Result[void, cstring] =
let address_change = signed_address_change.message
@ -427,16 +427,6 @@ proc process_bls_to_execution_change*(
ok()
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/eip4844/beacon-chain.md#disabling-withdrawals
proc process_bls_to_execution_change*(
state: var eip4844.BeaconState,
signed_address_change: SignedBLSToExecutionChange): Result[void, cstring] =
# During testing we avoid Capella-specific updates to the state transition.
# We do this by replacing the following functions with a no-op
# implementation:
# `process_bls_to_execution_change`
ok()
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/phase0/beacon-chain.md#operations
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/capella/beacon-chain.md#modified-process_operations
proc process_operations(cfg: RuntimeConfig,
@ -675,8 +665,8 @@ proc process_execution_payload*(
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/capella/beacon-chain.md#new-process_withdrawals
func process_withdrawals*(
state: var capella.BeaconState,
payload: capella.ExecutionPayload):
state: var (capella.BeaconState | eip4844.BeaconState),
payload: capella.ExecutionPayload | eip4844.ExecutionPayload):
Result[void, cstring] =
let expected_withdrawals = get_expected_withdrawals(state)
@ -715,17 +705,6 @@ func process_withdrawals*(
ok()
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/eip4844/beacon-chain.md#disabling-withdrawals
func process_withdrawals*(
state: var eip4844.BeaconState,
payload: eip4844.ExecutionPayload):
Result[void, cstring] =
# During testing we avoid Capella-specific updates to the state transition.
# We do this by replacing the following functions with a no-op
# implementation:
# `process_withdrawals`
ok()
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.1/specs/eip4844/beacon-chain.md#tx_peek_blob_versioned_hashes
func tx_peek_blob_versioned_hashes(opaque_tx: Transaction):
Result[seq[VersionedHash], cstring] =

View File

@ -1,5 +1,5 @@
# beacon_chain
# Copyright (c) 2018-2022 Status Research & Development GmbH
# Copyright (c) 2018-2023 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
@ -31,7 +31,8 @@ import
from std/algorithm import sort
from std/math import sum, `^`
from ./datatypes/capella import BeaconState, Withdrawal, WithdrawalIndex
from ./datatypes/capella import
BeaconState, HistoricalSummary, Withdrawal, WithdrawalIndex
export extras, phase0, altair
@ -1057,6 +1058,22 @@ func process_inactivity_updates*(
if pre_inactivity_score != inactivity_score:
state.inactivity_scores[index] = inactivity_score
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/capella/beacon-chain.md#historical-summaries-updates
func process_historical_summaries_update*(
state: var (capella.BeaconState | eip4844.BeaconState)):
Result[void, cstring] =
# Set historical block root accumulator.
let next_epoch = get_current_epoch(state) + 1
if next_epoch mod (SLOTS_PER_HISTORICAL_ROOT div SLOTS_PER_EPOCH) == 0:
let historical_summary = HistoricalSummary(
block_summary_root: hash_tree_root(state.block_roots),
state_summary_root: hash_tree_root(state.state_roots),
)
if not state.historical_summaries.add(historical_summary):
return err("process_historical_summaries_update: state.historical_summaries full")
ok()
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/phase0/beacon-chain.md#epoch-processing
proc process_epoch*(
cfg: RuntimeConfig, state: var phase0.BeaconState, flags: UpdateFlags,
@ -1119,8 +1136,7 @@ func init*(
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/altair/beacon-chain.md#epoch-processing
proc process_epoch*(
cfg: RuntimeConfig,
state: var (altair.BeaconState | bellatrix.BeaconState |
capella.BeaconState | eip4844.BeaconState),
state: var (altair.BeaconState | bellatrix.BeaconState),
flags: UpdateFlags, cache: var StateCache, info: var altair.EpochInfo):
Result[void, cstring] =
let currentEpoch = get_current_epoch(state)
@ -1162,3 +1178,49 @@ proc process_epoch*(
process_sync_committee_updates(state)
ok()
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/capella/beacon-chain.md#epoch-processing
proc process_epoch*(
cfg: RuntimeConfig,
state: var (capella.BeaconState | eip4844.BeaconState),
flags: UpdateFlags, cache: var StateCache, info: var altair.EpochInfo):
Result[void, cstring] =
let currentEpoch = get_current_epoch(state)
trace "process_epoch",
current_epoch = currentEpoch
info.init(state)
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/phase0/beacon-chain.md#justification-and-finalization
process_justification_and_finalization(state, info.balances, flags)
# state.slot hasn't been incremented yet.
if strictVerification in flags and currentEpoch >= 2:
doAssert state.current_justified_checkpoint.epoch + 2 >= currentEpoch
if strictVerification in flags and currentEpoch >= 3:
# Rule 2/3/4 finalization results in the most pessimal case. The other
# three finalization rules finalize more quickly as long as the any of
# the finalization rules triggered.
doAssert state.finalized_checkpoint.epoch + 3 >= currentEpoch
process_inactivity_updates(cfg, state, info)
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/phase0/beacon-chain.md#process_rewards_and_penalties
process_rewards_and_penalties(cfg, state, info)
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/phase0/beacon-chain.md#registry-updates
? process_registry_updates(cfg, state, cache)
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.2/specs/phase0/beacon-chain.md#slashings
process_slashings(state, info.balances.current_epoch)
process_eth1_data_reset(state)
process_effective_balance_updates(state)
process_slashings_reset(state)
process_randao_mixes_reset(state)
? process_historical_summaries_update(state)
process_participation_flag_updates(state)
process_sync_committee_updates(state)
ok()

View File

@ -1,5 +1,5 @@
# beacon_chain
# Copyright (c) 2022 Status Research & Development GmbH
# Copyright (c) 2022-2023 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
@ -119,6 +119,7 @@ suite "EF - Capella - SSZ consensus objects " & preset():
of "Fork": checkSSZ(Fork, path, hash)
of "ForkData": checkSSZ(ForkData, path, hash)
of "HistoricalBatch": checkSSZ(HistoricalBatch, path, hash)
of "HistoricalSummary": checkSSZ(HistoricalSummary, path, hash)
of "IndexedAttestation": checkSSZ(IndexedAttestation, path, hash)
of "LightClientBootstrap":
checkSSZ(LightClientBootstrap, path, hash)

View File

@ -1,5 +1,5 @@
# beacon_chain
# Copyright (c) 2018-2022 Status Research & Development GmbH
# Copyright (c) 2018-2023 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
@ -35,18 +35,18 @@ const
EffectiveBalanceUpdatesDir = RootDir/"effective_balance_updates"
SlashingsResetDir = RootDir/"slashings_reset"
RandaoMixesResetDir = RootDir/"randao_mixes_reset"
HistoricalRootsUpdateDir = RootDir/"historical_roots_update"
ParticipationFlagDir = RootDir/"participation_flag_updates"
SyncCommitteeDir = RootDir/"sync_committee_updates"
RewardsAndPenaltiesDir = RootDir/"rewards_and_penalties"
HistoricalSummariesUpdateDir = RootDir/"historical_summaries_update"
doAssert (toHashSet(mapIt(toSeq(walkDir(RootDir, relative = false)), it.path)) -
toHashSet([SyncCommitteeDir])) ==
toHashSet([
JustificationFinalizationDir, InactivityDir, RegistryUpdatesDir,
SlashingsDir, Eth1DataResetDir, EffectiveBalanceUpdatesDir,
SlashingsResetDir, RandaoMixesResetDir, HistoricalRootsUpdateDir,
ParticipationFlagDir, RewardsAndPenaltiesDir])
SlashingsResetDir, RandaoMixesResetDir, ParticipationFlagDir,
RewardsAndPenaltiesDir, HistoricalSummariesUpdateDir])
template runSuite(
suiteDir, testName: string, transitionProc: untyped): untyped =
@ -129,11 +129,10 @@ runSuite(RandaoMixesResetDir, "RANDAO mixes reset"):
process_randao_mixes_reset(state)
Result[void, cstring].ok()
# Historical roots update
# Historical summaries update
# ---------------------------------------------------------------
runSuite(HistoricalRootsUpdateDir, "Historical roots update"):
process_historical_roots_update(state)
Result[void, cstring].ok()
runSuite(HistoricalSummariesUpdateDir, "Historical summaries update"):
process_historical_summaries_update(state)
# Participation flag updates
# ---------------------------------------------------------------

View File

@ -1,5 +1,5 @@
# beacon_chain
# Copyright (c) 2022 Status Research & Development GmbH
# Copyright (c) 2022-2023 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
@ -22,7 +22,8 @@ import
from ../../beacon_chain/spec/datatypes/bellatrix import PowBlock
from ../../beacon_chain/spec/datatypes/capella import
BLSToExecutionChange, SignedBLSToExecutionChange, Withdrawal
BLSToExecutionChange, SignedBLSToExecutionChange, HistoricalSummary,
Withdrawal
# SSZ tests of consensus objects (minimal/mainnet preset specific)
@ -122,6 +123,7 @@ suite "EF - EIP4844 - SSZ consensus objects " & preset():
of "Fork": checkSSZ(Fork, path, hash)
of "ForkData": checkSSZ(ForkData, path, hash)
of "HistoricalBatch": checkSSZ(HistoricalBatch, path, hash)
of "HistoricalSummary": checkSSZ(HistoricalSummary, path, hash)
of "IndexedAttestation": checkSSZ(IndexedAttestation, path, hash)
of "LightClientBootstrap":
checkSSZ(LightClientBootstrap, path, hash)

View File

@ -1,5 +1,5 @@
# beacon_chain
# Copyright (c) 2022 Status Research & Development GmbH
# Copyright (c) 2022-2023 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
@ -35,18 +35,18 @@ const
EffectiveBalanceUpdatesDir = RootDir/"effective_balance_updates"
SlashingsResetDir = RootDir/"slashings_reset"
RandaoMixesResetDir = RootDir/"randao_mixes_reset"
HistoricalRootsUpdateDir = RootDir/"historical_roots_update"
ParticipationFlagDir = RootDir/"participation_flag_updates"
SyncCommitteeDir = RootDir/"sync_committee_updates"
RewardsAndPenaltiesDir = RootDir/"rewards_and_penalties"
HistoricalSummariesUpdateDir = RootDir/"historical_summaries_update"
doAssert (toHashSet(mapIt(toSeq(walkDir(RootDir, relative = false)), it.path)) -
toHashSet([SyncCommitteeDir])) ==
toHashSet([
JustificationFinalizationDir, InactivityDir, RegistryUpdatesDir,
SlashingsDir, Eth1DataResetDir, EffectiveBalanceUpdatesDir,
SlashingsResetDir, RandaoMixesResetDir, HistoricalRootsUpdateDir,
ParticipationFlagDir, RewardsAndPenaltiesDir])
SlashingsResetDir, RandaoMixesResetDir, ParticipationFlagDir,
RewardsAndPenaltiesDir, HistoricalSummariesUpdateDir])
template runSuite(
suiteDir, testName: string, transitionProc: untyped): untyped =
@ -131,9 +131,8 @@ runSuite(RandaoMixesResetDir, "RANDAO mixes reset"):
# Historical roots update
# ---------------------------------------------------------------
runSuite(HistoricalRootsUpdateDir, "Historical roots update"):
process_historical_roots_update(state)
Result[void, cstring].ok()
runSuite(HistoricalSummariesUpdateDir, "Historical summaries update"):
process_historical_summaries_update(state)
# Participation flag updates
# ---------------------------------------------------------------

@ -1 +1 @@
Subproject commit 9a1398ab6409e8bceebdd9aeec659e7e8d1a3538
Subproject commit fbcd29aa678fa80bface275f1cae0cc5a247f411