use v1.3.0-rc.1 consensus spec test vectors (#4505)

This commit is contained in:
tersec 2023-01-14 04:20:51 +00:00 committed by GitHub
parent d2e9cdf1a0
commit 68e08c6f15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 67 additions and 40 deletions

View File

@ -1171,18 +1171,27 @@ OK: 150/150 Fail: 0/150 Skip: 0/150
```diff
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_already_0x01 OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_bad_signature OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_current_fork_versi OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_genesis_validators OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_incorrect_from_bls OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_previous_fork_vers 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_current_fork_versi OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_genesis_validators OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_incorrect_from_bls OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_previous_fork_vers OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_val_index_out_of_r OK
+ [Valid] EF - Capella - Operations - BLS to execution change - genesis_fork_version 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 - Capella - Operations - BLS to execution change - valid_signature_from_staki OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - genesis_fork_version 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
@ -1190,7 +1199,7 @@ OK: 150/150 Fail: 0/150 Skip: 0/150
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_not_activated OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_withdrawable OK
```
OK: 20/20 Fail: 0/20 Skip: 0/20
OK: 29/29 Fail: 0/29 Skip: 0/29
## Block Header
```diff
+ [Invalid] EF - Altair - Operations - Block Header - invalid_multiple_blocks_single_slot OK
@ -1470,6 +1479,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
+ Testing LightClientHeader OK
+ Testing LightClientOptimisticUpdate OK
+ Testing LightClientUpdate OK
+ Testing PendingAttestation OK
@ -1488,7 +1498,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing Validator OK
+ Testing VoluntaryExit OK
```
OK: 38/38 Fail: 0/38 Skip: 0/38
OK: 39/39 Fail: 0/39 Skip: 0/39
## EF - Altair - Unittests - Light client - Sync protocol [Preset: mainnet]
```diff
+ process_light_client_update_finality_updated OK
@ -1642,6 +1652,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
+ Testing LightClientHeader OK
+ Testing LightClientOptimisticUpdate OK
+ Testing LightClientUpdate OK
+ Testing PendingAttestation OK
@ -1661,7 +1672,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing Validator OK
+ Testing VoluntaryExit OK
```
OK: 41/41 Fail: 0/41 Skip: 0/41
OK: 42/42 Fail: 0/42 Skip: 0/42
## EF - Capella - Epoch Processing - Effective balance updates [Preset: mainnet]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: mainnet] OK
@ -1809,6 +1820,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
+ Testing LightClientHeader OK
+ Testing LightClientOptimisticUpdate OK
+ Testing LightClientUpdate OK
+ Testing PendingAttestation OK
@ -1830,7 +1842,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing VoluntaryExit OK
+ Testing Withdrawal OK
```
OK: 45/45 Fail: 0/45 Skip: 0/45
OK: 46/46 Fail: 0/46 Skip: 0/46
## EF - EIP4844 - Epoch Processing - Effective balance updates [Preset: mainnet]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: mainnet] OK
@ -1979,6 +1991,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
+ Testing LightClientHeader OK
+ Testing LightClientOptimisticUpdate OK
+ Testing LightClientUpdate OK
+ Testing PendingAttestation OK
@ -2001,7 +2014,7 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
+ Testing VoluntaryExit OK
+ Testing Withdrawal OK
```
OK: 47/47 Fail: 0/47 Skip: 0/47
OK: 48/48 Fail: 0/48 Skip: 0/48
## EF - Phase 0 - Epoch Processing - Effective balance updates [Preset: mainnet]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: mainnet] OK
@ -2567,4 +2580,4 @@ OK: 63/63 Fail: 0/63 Skip: 0/63
OK: 100/100 Fail: 0/100 Skip: 0/100
---TOTAL---
OK: 2272/2281 Fail: 0/2281 Skip: 9/2281
OK: 2285/2294 Fail: 0/2294 Skip: 9/2294

View File

@ -1276,18 +1276,26 @@ OK: 150/150 Fail: 0/150 Skip: 0/150
```diff
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_already_0x01 OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_bad_signature OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_current_fork_versi OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_genesis_validators OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_incorrect_from_bls OK
+ [Invalid] EF - Capella - Operations - BLS to execution change - invalid_previous_fork_vers 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_current_fork_versi OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_genesis_validators OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_incorrect_from_bls OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_previous_fork_vers OK
+ [Invalid] EF - EIP4844 - Operations - BLS to execution change - invalid_val_index_out_of_r OK
+ [Valid] EF - Capella - Operations - BLS to execution change - genesis_fork_version 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 - genesis_fork_version 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
@ -1295,7 +1303,7 @@ OK: 150/150 Fail: 0/150 Skip: 0/150
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_not_activated OK
+ [Valid] EF - EIP4844 - Operations - BLS to execution change - success_withdrawable OK
```
OK: 20/20 Fail: 0/20 Skip: 0/20
OK: 28/28 Fail: 0/28 Skip: 0/28
## Block Header
```diff
+ [Invalid] EF - Altair - Operations - Block Header - invalid_multiple_blocks_single_slot OK
@ -1590,6 +1598,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
+ Testing LightClientHeader OK
+ Testing LightClientOptimisticUpdate OK
+ Testing LightClientUpdate OK
+ Testing PendingAttestation OK
@ -1608,7 +1617,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing Validator OK
+ Testing VoluntaryExit OK
```
OK: 38/38 Fail: 0/38 Skip: 0/38
OK: 39/39 Fail: 0/39 Skip: 0/39
## EF - Altair - Unittests - Light client - Sync protocol [Preset: minimal]
```diff
+ process_light_client_update_finality_updated OK
@ -1777,6 +1786,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
+ Testing LightClientHeader OK
+ Testing LightClientOptimisticUpdate OK
+ Testing LightClientUpdate OK
+ Testing PendingAttestation OK
@ -1796,7 +1806,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing Validator OK
+ Testing VoluntaryExit OK
```
OK: 41/41 Fail: 0/41 Skip: 0/41
OK: 42/42 Fail: 0/42 Skip: 0/42
## EF - Capella - Epoch Processing - Effective balance updates [Preset: minimal]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: minimal] OK
@ -1959,6 +1969,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
+ Testing LightClientHeader OK
+ Testing LightClientOptimisticUpdate OK
+ Testing LightClientUpdate OK
+ Testing PendingAttestation OK
@ -1980,7 +1991,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing VoluntaryExit OK
+ Testing Withdrawal OK
```
OK: 45/45 Fail: 0/45 Skip: 0/45
OK: 46/46 Fail: 0/46 Skip: 0/46
## EF - EIP4844 - Epoch Processing - Effective balance updates [Preset: minimal]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: minimal] OK
@ -2144,6 +2155,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing IndexedAttestation OK
+ Testing LightClientBootstrap OK
+ Testing LightClientFinalityUpdate OK
+ Testing LightClientHeader OK
+ Testing LightClientOptimisticUpdate OK
+ Testing LightClientUpdate OK
+ Testing PendingAttestation OK
@ -2166,7 +2178,7 @@ OK: 5/5 Fail: 0/5 Skip: 0/5
+ Testing VoluntaryExit OK
+ Testing Withdrawal OK
```
OK: 47/47 Fail: 0/47 Skip: 0/47
OK: 48/48 Fail: 0/48 Skip: 0/48
## EF - Phase 0 - Epoch Processing - Effective balance updates [Preset: minimal]
```diff
+ Effective balance updates - effective_balance_hysteresis [Preset: minimal] OK
@ -2735,4 +2747,4 @@ OK: 68/68 Fail: 0/68 Skip: 0/68
OK: 102/102 Fail: 0/102 Skip: 0/102
---TOTAL---
OK: 2424/2433 Fail: 0/2433 Skip: 9/2433
OK: 2436/2445 Fail: 0/2445 Skip: 9/2445

View File

@ -77,7 +77,7 @@ export
tables, results, json_serialization, timer, sszTypes, beacon_time, crypto,
digest, presets
const SPEC_VERSION* = "1.3.0-rc.0"
const SPEC_VERSION* = "1.3.0-rc.1"
## Spec version we're aiming to be compatible with, right now
const

View File

@ -370,18 +370,19 @@ proc verify_builder_signature*(
let signing_root = compute_builder_signing_root(fork, msg)
blsVerify(pubkey, signing_root.data, signature)
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.0/specs/capella/beacon-chain.md#new-process_bls_to_execution_change
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.1/specs/capella/beacon-chain.md#new-process_bls_to_execution_change
func compute_bls_to_execution_change_signing_root(
fork: Fork, genesis_validators_root: Eth2Digest,
genesisFork: Fork, genesis_validators_root: Eth2Digest,
epoch: Epoch, msg: BLSToExecutionChange): Eth2Digest =
let domain = get_domain(
fork, DOMAIN_BLS_TO_EXECUTION_CHANGE, epoch, genesis_validators_root)
genesisFork, DOMAIN_BLS_TO_EXECUTION_CHANGE, epoch,
genesis_validators_root)
compute_signing_root(msg, domain)
proc verify_bls_to_execution_change_signature*(
fork: Fork, genesis_validators_root: Eth2Digest, epoch: Epoch,
genesisFork: Fork, genesis_validators_root: Eth2Digest, epoch: Epoch,
msg: SignedBLSToExecutionChange,
pubkey: ValidatorPubKey | CookedPubKey, signature: SomeSig): bool =
let signing_root = compute_bls_to_execution_change_signing_root(
fork, genesis_validators_root, epoch, msg.message)
genesisFork, genesis_validators_root, epoch, msg.message)
blsVerify(pubkey, signing_root.data, signature)

View File

@ -392,7 +392,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 | eip4844.BeaconState),
cfg: RuntimeConfig, state: var (capella.BeaconState | eip4844.BeaconState),
signed_address_change: SignedBLSToExecutionChange): Result[void, cstring] =
let address_change = signed_address_change.message
@ -410,7 +410,7 @@ proc process_bls_to_execution_change*(
return err("process_bls_to_execution_change: invalid withdrawal credentials")
if not verify_bls_to_execution_change_signature(
state.fork, state.genesis_validators_root, state.get_current_epoch,
cfg.genesisFork, state.genesis_validators_root, state.get_current_epoch,
signed_address_change, address_change.from_bls_pubkey,
signed_address_change.signature):
return err("process_bls_to_execution_change: invalid signature")
@ -455,7 +455,7 @@ proc process_operations(cfg: RuntimeConfig,
for fieldName, _ in body.fieldPairs:
when fieldName == "bls_to_execution_changes":
for op in body.bls_to_execution_changes:
? process_bls_to_execution_change(state, op)
? process_bls_to_execution_change(cfg, state, op)
ok()

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).
@ -116,6 +116,8 @@ suite "EF - Altair - SSZ consensus objects " & preset():
of "IndexedAttestation": checkSSZ(IndexedAttestation, path, hash)
of "LightClientBootstrap":
checkSSZ(LightClientBootstrap, path, hash)
of "LightClientHeader":
checkSSZ(LightClientHeader, path, hash)
of "LightClientUpdate":
checkSSZ(LightClientUpdate, path, hash)
of "LightClientFinalityUpdate":

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).
@ -119,10 +119,9 @@ suite "EF - Bellatrix - SSZ consensus objects " & preset():
of "ForkData": checkSSZ(ForkData, path, hash)
of "HistoricalBatch": checkSSZ(HistoricalBatch, path, hash)
of "IndexedAttestation": checkSSZ(IndexedAttestation, path, hash)
of "LightClientBootstrap":
checkSSZ(LightClientBootstrap, path, hash)
of "LightClientUpdate":
checkSSZ(LightClientUpdate, path, hash)
of "LightClientBootstrap": checkSSZ(LightClientBootstrap, path, hash)
of "LightClientHeader": checkSSZ(LightClientHeader, path, hash)
of "LightClientUpdate": checkSSZ(LightClientUpdate, path, hash)
of "LightClientFinalityUpdate":
checkSSZ(LightClientFinalityUpdate, path, hash)
of "LightClientOptimisticUpdate":

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).
@ -122,7 +122,8 @@ suite baseDescription & "BLS to execution change " & preset():
preState: var capella.BeaconState,
signed_address_change: SignedBLSToExecutionChange):
Result[void, cstring] =
process_bls_to_execution_change(preState, signed_address_change)
process_bls_to_execution_change(
defaultRuntimeConfig, preState, signed_address_change)
for path in walkTests(OpBlsToExecutionChangeDir):
runTest[SignedBLSToExecutionChange, typeof applyBlsToExecutionChange](

View File

@ -121,10 +121,9 @@ suite "EF - Capella - SSZ consensus objects " & preset():
of "HistoricalBatch": checkSSZ(HistoricalBatch, path, hash)
of "HistoricalSummary": checkSSZ(HistoricalSummary, path, hash)
of "IndexedAttestation": checkSSZ(IndexedAttestation, path, hash)
of "LightClientBootstrap":
checkSSZ(LightClientBootstrap, path, hash)
of "LightClientUpdate":
checkSSZ(LightClientUpdate, path, hash)
of "LightClientBootstrap": checkSSZ(LightClientBootstrap, path, hash)
of "LightClientHeader": checkSSZ(LightClientHeader, path, hash)
of "LightClientUpdate": checkSSZ(LightClientUpdate, path, hash)
of "LightClientFinalityUpdate":
checkSSZ(LightClientFinalityUpdate, path, hash)
of "LightClientOptimisticUpdate":

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).
@ -125,7 +125,8 @@ suite baseDescription & "BLS to execution change " & preset():
preState: var eip4844.BeaconState,
signed_address_change: SignedBLSToExecutionChange):
Result[void, cstring] =
process_bls_to_execution_change(preState, signed_address_change)
process_bls_to_execution_change(
defaultRuntimeConfig, preState, signed_address_change)
for path in walkTests(OpBlsToExecutionChangeDir):
runTest[SignedBLSToExecutionChange, typeof applyBlsToExecutionChange](

View File

@ -125,10 +125,9 @@ suite "EF - EIP4844 - SSZ consensus objects " & preset():
of "HistoricalBatch": checkSSZ(HistoricalBatch, path, hash)
of "HistoricalSummary": checkSSZ(HistoricalSummary, path, hash)
of "IndexedAttestation": checkSSZ(IndexedAttestation, path, hash)
of "LightClientBootstrap":
checkSSZ(LightClientBootstrap, path, hash)
of "LightClientUpdate":
checkSSZ(LightClientUpdate, path, hash)
of "LightClientBootstrap": checkSSZ(LightClientBootstrap, path, hash)
of "LightClientHeader": checkSSZ(LightClientHeader, path, hash)
of "LightClientUpdate": checkSSZ(LightClientUpdate, path, hash)
of "LightClientFinalityUpdate":
checkSSZ(LightClientFinalityUpdate, path, hash)
of "LightClientOptimisticUpdate":

@ -1 +1 @@
Subproject commit fbcd29aa678fa80bface275f1cae0cc5a247f411
Subproject commit a2f938198ab94fcd3fdadd5b31881c454309e1c8