update most remaining non-fork-choice spec refs, updating code where necessary (#1292)

* update most of the remaining non-fork-choice spec refs, updating code where necessary

* revert presumably harmless compute_signing_root() change, but this way, keep things really unchanged outside inspector
This commit is contained in:
tersec 2020-07-09 11:43:27 +00:00 committed by GitHub
parent 3cdae9f6be
commit 61b0b5af17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 14 additions and 17 deletions

View File

@ -245,9 +245,10 @@ OK: 2/2 Fail: 0/2 Skip: 0/2
+ Deposit at MAX_EFFECTIVE_BALANCE balance (32 ETH) OK + Deposit at MAX_EFFECTIVE_BALANCE balance (32 ETH) OK
+ Deposit over MAX_EFFECTIVE_BALANCE balance (32 ETH) OK + Deposit over MAX_EFFECTIVE_BALANCE balance (32 ETH) OK
+ Deposit under MAX_EFFECTIVE_BALANCE balance (32 ETH) OK + Deposit under MAX_EFFECTIVE_BALANCE balance (32 ETH) OK
+ Invalid deposit at MAX_EFFECTIVE_BALANCE balance (32 ETH) OK
+ Validator top-up OK + Validator top-up OK
``` ```
OK: 4/4 Fail: 0/4 Skip: 0/4 OK: 5/5 Fail: 0/5 Skip: 0/5
## [Unit - Spec - Epoch processing] Justification and Finalization [Preset: mainnet] ## [Unit - Spec - Epoch processing] Justification and Finalization [Preset: mainnet]
```diff ```diff
+ Rule I - 234 finalization with enough support OK + Rule I - 234 finalization with enough support OK
@ -267,4 +268,4 @@ OK: 8/8 Fail: 0/8 Skip: 0/8
OK: 1/1 Fail: 0/1 Skip: 0/1 OK: 1/1 Fail: 0/1 Skip: 0/1
---TOTAL--- ---TOTAL---
OK: 160/163 Fail: 0/163 Skip: 3/163 OK: 161/164 Fail: 0/164 Skip: 3/164

View File

@ -52,7 +52,7 @@ proc aggregate_attestations*(
if not is_aggregator(state, slot, index, slot_signature, cache): if not is_aggregator(state, slot, index, slot_signature, cache):
return none(AggregateAndProof) return none(AggregateAndProof)
# https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/validator.md#attestation-data # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/validator.md#attestation-data
# describes how to construct an attestation, which applies for makeAttestationData(...) # describes how to construct an attestation, which applies for makeAttestationData(...)
# TODO this won't actually match anything # TODO this won't actually match anything
let attestation_data = AttestationData( let attestation_data = AttestationData(

View File

@ -473,7 +473,7 @@ proc getAttestationsForBlock*(pool: AttestationPool,
var cache = get_empty_per_epoch_cache() var cache = get_empty_per_epoch_cache()
for a in attestations: for a in attestations:
var var
# https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/validator.md#construct-attestation # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/validator.md#construct-attestation
attestation = Attestation( attestation = Attestation(
aggregation_bits: a.validations[0].aggregation_bits, aggregation_bits: a.validations[0].aggregation_bits,
data: a.data, data: a.data,

View File

@ -920,7 +920,6 @@ proc getProposer*(
dag.withState(dag.tmpState, head.atSlot(slot)): dag.withState(dag.tmpState, head.atSlot(slot)):
var cache = get_empty_per_epoch_cache() var cache = get_empty_per_epoch_cache()
# https://github.com/ethereum/eth2.0-specs/blob/v0.11.3/specs/phase0/validator.md#validator-assignments
let proposerIdx = get_beacon_proposer_index(state, cache) let proposerIdx = get_beacon_proposer_index(state, cache)
if proposerIdx.isNone: if proposerIdx.isNone:
warn "Missing proposer index", warn "Missing proposer index",

View File

@ -509,7 +509,7 @@ proc pubsubLogger(conf: InspectorConf, switch: Switch,
try: try:
if topic.endsWith(topicBeaconBlocksSuffix & "_snappy"): if topic.endsWith(topicBeaconBlocksSuffix & "_snappy"):
info "SignedBeaconBlock", msg = SSZ.decode(buffer, SignedBeaconBlock) info "SignedBeaconBlock", msg = SSZ.decode(buffer, SignedBeaconBlock)
elif topic.endsWith(topicMainnetAttestationsSuffix & "_snappy"): elif topic.endsWith("_snappy") and topic.contains("/beacon_attestation_"):
info "Attestation", msg = SSZ.decode(buffer, Attestation) info "Attestation", msg = SSZ.decode(buffer, Attestation)
elif topic.endsWith(topicVoluntaryExitsSuffix & "_snappy"): elif topic.endsWith(topicVoluntaryExitsSuffix & "_snappy"):
info "SignedVoluntaryExit", msg = SSZ.decode(buffer, info "SignedVoluntaryExit", msg = SSZ.decode(buffer,

View File

@ -453,7 +453,7 @@ func get_attesting_indices*(state: BeaconState,
# This shouldn't happen if one begins with a valid BeaconState and applies # This shouldn't happen if one begins with a valid BeaconState and applies
# valid updates, but one can construct a BeaconState where it does. Do not # valid updates, but one can construct a BeaconState where it does. Do not
# do anything here since the PendingAttestation wouldn't have made it past # do anything here since the PendingAttestation wouldn't have made it past
# https://github.com/ethereum/eth2.0-specs/blob/v0.11.3/specs/phase0/beacon-chain.md#attestations # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/beacon-chain.md#attestations
# which checks len(attestation.aggregation_bits) == len(committee) that in # which checks len(attestation.aggregation_bits) == len(committee) that in
# nim-beacon-chain lives in check_attestation(...). # nim-beacon-chain lives in check_attestation(...).
# Addresses https://github.com/status-im/nim-beacon-chain/issues/922 # Addresses https://github.com/status-im/nim-beacon-chain/issues/922
@ -568,7 +568,7 @@ proc isValidAttestationTargetEpoch*(
true true
# https://github.com/ethereum/eth2.0-specs/blob/v0.11.2/specs/phase0/beacon-chain.md#attestations # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/beacon-chain.md#attestations
proc check_attestation*( proc check_attestation*(
state: BeaconState, attestation: SomeAttestation, flags: UpdateFlags, state: BeaconState, attestation: SomeAttestation, flags: UpdateFlags,
stateCache: var StateCache): bool = stateCache: var StateCache): bool =

View File

@ -19,9 +19,6 @@ const
topicAttesterSlashingsSuffix* = "attester_slashing/ssz" topicAttesterSlashingsSuffix* = "attester_slashing/ssz"
topicAggregateAndProofsSuffix* = "beacon_aggregate_and_proof/ssz" topicAggregateAndProofsSuffix* = "beacon_aggregate_and_proof/ssz"
# https://github.com/ethereum/eth2.0-specs/blob/v0.11.3/specs/phase0/p2p-interface.md#topics-and-messages
topicMainnetAttestationsSuffix* = "_beacon_attestation/ssz"
# https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/validator.md#misc # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/validator.md#misc
ATTESTATION_SUBNET_COUNT* = 64 ATTESTATION_SUBNET_COUNT* = 64

View File

@ -262,7 +262,7 @@ proc state_transition*(
state.data, state.data.slot.compute_epoch_at_slot) state.data, state.data.slot.compute_epoch_at_slot)
state_transition(state, signedBlock, cache, flags, rollback) state_transition(state, signedBlock, cache, flags, rollback)
# https://github.com/ethereum/eth2.0-specs/blob/v0.11.1/specs/phase0/validator.md # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/validator.md#preparing-for-a-beaconblock
# TODO There's more to do here - the spec has helpers that deal set up some of # TODO There's more to do here - the spec has helpers that deal set up some of
# the fields in here! # the fields in here!
proc makeBeaconBlock*( proc makeBeaconBlock*(

View File

@ -70,7 +70,7 @@ func get_total_active_balance*(state: BeaconState, cache: var StateCache): Gwei
except KeyError: except KeyError:
raiseAssert("get_total_active_balance(): cache always filled before usage") raiseAssert("get_total_active_balance(): cache always filled before usage")
# https://github.com/ethereum/eth2.0-specs/blob/v0.11.3/specs/phase0/beacon-chain.md#helper-functions-1 # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/beacon-chain.md#helper-functions-1
func get_matching_source_attestations(state: BeaconState, func get_matching_source_attestations(state: BeaconState,
epoch: Epoch): seq[PendingAttestation] = epoch: Epoch): seq[PendingAttestation] =
doAssert epoch in [get_current_epoch(state), get_previous_epoch(state)] doAssert epoch in [get_current_epoch(state), get_previous_epoch(state)]
@ -104,7 +104,7 @@ func get_attesting_balance(
get_total_balance(state, get_unslashed_attesting_indices( get_total_balance(state, get_unslashed_attesting_indices(
state, attestations, stateCache)) state, attestations, stateCache))
# https://github.com/ethereum/eth2.0-specs/blob/v0.9.4/specs/core/0_beacon-chain.md#justification-and-finalization # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/beacon-chain.md#justification-and-finalization
proc process_justification_and_finalization*(state: var BeaconState, proc process_justification_and_finalization*(state: var BeaconState,
stateCache: var StateCache, updateFlags: UpdateFlags = {}) {.nbench.} = stateCache: var StateCache, updateFlags: UpdateFlags = {}) {.nbench.} =
@ -437,7 +437,7 @@ func process_rewards_and_penalties(
increase_balance(state, i.ValidatorIndex, rewards[i]) increase_balance(state, i.ValidatorIndex, rewards[i])
decrease_balance(state, i.ValidatorIndex, penalties[i]) decrease_balance(state, i.ValidatorIndex, penalties[i])
# https://github.com/ethereum/eth2.0-specs/blob/v0.9.4/specs/core/0_beacon-chain.md#slashings # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/beacon-chain.md#slashings
func process_slashings*(state: var BeaconState, cache: var StateCache) {.nbench.}= func process_slashings*(state: var BeaconState, cache: var StateCache) {.nbench.}=
let let
epoch = get_current_epoch(state) epoch = get_current_epoch(state)

View File

@ -24,7 +24,7 @@ func shortLog*(x: Checkpoint): string =
# Helpers used in epoch transition and trace-level block transition # Helpers used in epoch transition and trace-level block transition
# -------------------------------------------------------- # --------------------------------------------------------
# https://github.com/ethereum/eth2.0-specs/blob/v0.11.3/specs/phase0/beacon-chain.md#helper-functions-1 # https://github.com/ethereum/eth2.0-specs/blob/v0.12.1/specs/phase0/beacon-chain.md#helper-functions-1
func get_attesting_indices*( func get_attesting_indices*(
state: BeaconState, attestations: openarray[PendingAttestation], state: BeaconState, attestations: openarray[PendingAttestation],
stateCache: var StateCache): HashSet[ValidatorIndex] = stateCache: var StateCache): HashSet[ValidatorIndex] =

View File

@ -12,7 +12,7 @@ import
# Specs # Specs
../../beacon_chain/spec/[datatypes, beaconstate], ../../beacon_chain/spec/[datatypes, beaconstate],
# Internals # Internals
../../beacon_chain/[extras, interop], ../../beacon_chain/interop,
# Mocking procs # Mocking procs
./mock_deposits ./mock_deposits