mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-01-09 13:56:23 +00:00
bump gossip validation refs to 1.3.0 spec (#4895)
Updates gossip validation spec references to v1.3.0 and fixes an incorrect reference to "signed_aggregate_and_proof" in sync contribution documentation.
This commit is contained in:
parent
508819633a
commit
297881edb7
@ -744,7 +744,7 @@ proc processBlock(
|
||||
# - MUST NOT optimistically import the block.
|
||||
# - MUST NOT apply the block to the fork choice store.
|
||||
# - MAY queue the block for later processing.
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.5/sync/optimistic.md#execution-engine-errors
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/sync/optimistic.md#execution-engine-errors
|
||||
await sleepAsync(chronos.seconds(1))
|
||||
self[].addBlock(
|
||||
entry.src, entry.blck, entry.blobs, entry.resfut, entry.maybeFinalized,
|
||||
|
@ -653,7 +653,7 @@ proc processSignedContributionAndProof*(
|
||||
|
||||
err(v.error())
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
proc processLightClientFinalityUpdate*(
|
||||
self: var Eth2Processor, src: MsgSource,
|
||||
finality_update: ForkedLightClientFinalityUpdate
|
||||
@ -669,7 +669,7 @@ proc processLightClientFinalityUpdate*(
|
||||
beacon_light_client_finality_update_dropped.inc(1, [$v.error[0]])
|
||||
v
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#process_light_client_optimistic_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#process_light_client_optimistic_update
|
||||
proc processLightClientOptimisticUpdate*(
|
||||
self: var Eth2Processor, src: MsgSource,
|
||||
optimistic_update: ForkedLightClientOptimisticUpdate
|
||||
|
@ -246,7 +246,7 @@ template validateBeaconBlockBellatrix(
|
||||
#
|
||||
# `is_merge_transition_complete(state)` tests for
|
||||
# `state.latest_execution_payload_header != ExecutionPayloadHeader()`, while
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.2.0-rc.1/specs/bellatrix/beacon-chain.md#block-processing
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/beacon-chain.md#block-processing
|
||||
# shows that `state.latest_execution_payload_header` being default or not is
|
||||
# exactly equivalent to whether that block's execution payload is default or
|
||||
# not, so test cached block information rather than reconstructing a state.
|
||||
@ -273,7 +273,7 @@ template validateBeaconBlockBellatrix(
|
||||
# `ACCEPTED` or `SYNCING` from the EL to get this far.
|
||||
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.5/specs/deneb/p2p-interface.md#blob_sidecar_index
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/deneb/p2p-interface.md#blob_sidecar_index
|
||||
proc validateBlobSidecar*(
|
||||
dag: ChainDAGRef, quarantine: ref Quarantine,
|
||||
blobQuarantine: ref BlobQuarantine,sbs: SignedBlobSidecar,
|
||||
@ -348,8 +348,8 @@ proc validateBlobSidecar*(
|
||||
ok()
|
||||
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.1.9/specs/phase0/p2p-interface.md#beacon_block
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/bellatrix/p2p-interface.md#beacon_block
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/p2p-interface.md#beacon_block
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/p2p-interface.md#beacon_block
|
||||
proc validateBeaconBlock*(
|
||||
dag: ChainDAGRef, quarantine: ref Quarantine,
|
||||
signed_beacon_block: ForkySignedBeaconBlock,
|
||||
@ -376,7 +376,7 @@ proc validateBeaconBlock*(
|
||||
# proposer for the slot, signed_beacon_block.message.slot.
|
||||
#
|
||||
# While this condition is similar to the proposer slashing condition at
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.5/specs/phase0/validator.md#proposer-slashing
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/validator.md#proposer-slashing
|
||||
# it's not identical, and this check does not address slashing:
|
||||
#
|
||||
# (1) The beacon blocks must be conflicting, i.e. different, for the same
|
||||
@ -428,7 +428,7 @@ proc validateBeaconBlock*(
|
||||
if signed_beacon_block.message.parent_root in quarantine[].unviable:
|
||||
quarantine[].addUnviable(signed_beacon_block.root)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-alpha.0/specs/bellatrix/p2p-interface.md#beacon_block
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/bellatrix/p2p-interface.md#beacon_block
|
||||
# `is_execution_enabled(state, block.body)` check, but unlike in
|
||||
# validateBeaconBlockBellatrix() don't have parent BlockRef.
|
||||
if signed_beacon_block.message.is_execution_block or
|
||||
@ -516,7 +516,7 @@ proc validateBeaconBlock*(
|
||||
|
||||
ok()
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.1.9/specs/phase0/p2p-interface.md#beacon_attestation_subnet_id
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/p2p-interface.md#beacon_attestation_subnet_id
|
||||
proc validateAttestation*(
|
||||
pool: ref AttestationPool,
|
||||
batchCrypto: ref BatchCrypto,
|
||||
@ -644,6 +644,8 @@ proc validateAttestation*(
|
||||
# can't happen, in theory, because we checked the aggregator index above
|
||||
return errIgnore("Attestation: cannot find validator pubkey")
|
||||
|
||||
# [REJECT] The signature of `attestation` is valid.
|
||||
|
||||
# In the spec, is_valid_indexed_attestation is used to verify the signature -
|
||||
# here, we do a batch verification instead
|
||||
let sig =
|
||||
@ -680,7 +682,7 @@ proc validateAttestation*(
|
||||
|
||||
return ok((validator_index, sig))
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.1.9/specs/phase0/p2p-interface.md#beacon_aggregate_and_proof
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/phase0/p2p-interface.md#beacon_aggregate_and_proof
|
||||
proc validateAggregate*(
|
||||
pool: ref AttestationPool,
|
||||
batchCrypto: ref BatchCrypto,
|
||||
@ -1090,7 +1092,7 @@ proc validateSyncCommitteeMessage*(
|
||||
|
||||
return ok((positionsInSubcommittee, sig))
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/altair/p2p-interface.md#sync_committee_contribution_and_proof
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/p2p-interface.md#sync_committee_contribution_and_proof
|
||||
proc validateContribution*(
|
||||
dag: ChainDAGRef,
|
||||
batchCrypto: ref BatchCrypto,
|
||||
@ -1171,7 +1173,7 @@ proc validateContribution*(
|
||||
|
||||
block:
|
||||
# [REJECT] The aggregator signature,
|
||||
# signed_contribution_and_proof.signature, is valid
|
||||
# `signed_contribution_and_proof.signature`, is valid.
|
||||
let x = await aggregatorFut
|
||||
case x
|
||||
of BatchResult.Invalid:
|
||||
@ -1185,6 +1187,10 @@ proc validateContribution*(
|
||||
discard
|
||||
|
||||
block:
|
||||
# [REJECT] The `contribution_and_proof.selection_proof`
|
||||
# is a valid signature of the `SyncAggregatorSelectionData`
|
||||
# derived from the `contribution` by the validator with index
|
||||
# `contribution_and_proof.aggregator_index`.
|
||||
let x = await proofFut
|
||||
case x
|
||||
of BatchResult.Invalid:
|
||||
@ -1196,8 +1202,10 @@ proc validateContribution*(
|
||||
discard
|
||||
|
||||
block:
|
||||
# [REJECT] The aggregator signature,
|
||||
# signed_aggregate_and_proof.signature, is valid.
|
||||
# [REJECT] The aggregate signature is valid for the message
|
||||
# `beacon_block_root` and aggregate pubkey derived from the
|
||||
# participation info in `aggregation_bits` for the subcommittee
|
||||
# specified by the `contribution.subcommittee_index`.
|
||||
let x = await contributionFut
|
||||
case x
|
||||
of BatchResult.Invalid:
|
||||
|
@ -529,7 +529,7 @@ func toValidationError(
|
||||
# previously forwarded `optimistic_update`s
|
||||
errIgnore($r.error)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
proc processLightClientFinalityUpdate*(
|
||||
self: var LightClientProcessor, src: MsgSource,
|
||||
finality_update: ForkedLightClientFinalityUpdate
|
||||
@ -544,7 +544,7 @@ proc processLightClientFinalityUpdate*(
|
||||
self.latestFinalityUpdate = finality_update.toOptimistic
|
||||
v
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0-rc.3/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.3.0/specs/altair/light-client/sync-protocol.md#process_light_client_finality_update
|
||||
proc processLightClientOptimisticUpdate*(
|
||||
self: var LightClientProcessor, src: MsgSource,
|
||||
optimistic_update: ForkedLightClientOptimisticUpdate
|
||||
|
Loading…
x
Reference in New Issue
Block a user