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:
parent
3cdae9f6be
commit
61b0b5af17
|
@ -245,9 +245,10 @@ OK: 2/2 Fail: 0/2 Skip: 0/2
|
|||
+ Deposit at 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
|
||||
+ Invalid deposit at MAX_EFFECTIVE_BALANCE balance (32 ETH) 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]
|
||||
```diff
|
||||
+ 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
|
||||
|
||||
---TOTAL---
|
||||
OK: 160/163 Fail: 0/163 Skip: 3/163
|
||||
OK: 161/164 Fail: 0/164 Skip: 3/164
|
||||
|
|
|
@ -52,7 +52,7 @@ proc aggregate_attestations*(
|
|||
if not is_aggregator(state, slot, index, slot_signature, cache):
|
||||
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(...)
|
||||
# TODO this won't actually match anything
|
||||
let attestation_data = AttestationData(
|
||||
|
|
|
@ -473,7 +473,7 @@ proc getAttestationsForBlock*(pool: AttestationPool,
|
|||
var cache = get_empty_per_epoch_cache()
|
||||
for a in attestations:
|
||||
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(
|
||||
aggregation_bits: a.validations[0].aggregation_bits,
|
||||
data: a.data,
|
||||
|
|
|
@ -920,7 +920,6 @@ proc getProposer*(
|
|||
dag.withState(dag.tmpState, head.atSlot(slot)):
|
||||
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)
|
||||
if proposerIdx.isNone:
|
||||
warn "Missing proposer index",
|
||||
|
|
|
@ -509,7 +509,7 @@ proc pubsubLogger(conf: InspectorConf, switch: Switch,
|
|||
try:
|
||||
if topic.endsWith(topicBeaconBlocksSuffix & "_snappy"):
|
||||
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)
|
||||
elif topic.endsWith(topicVoluntaryExitsSuffix & "_snappy"):
|
||||
info "SignedVoluntaryExit", msg = SSZ.decode(buffer,
|
||||
|
|
|
@ -453,7 +453,7 @@ func get_attesting_indices*(state: BeaconState,
|
|||
# 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
|
||||
# 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
|
||||
# nim-beacon-chain lives in check_attestation(...).
|
||||
# Addresses https://github.com/status-im/nim-beacon-chain/issues/922
|
||||
|
@ -568,7 +568,7 @@ proc isValidAttestationTargetEpoch*(
|
|||
|
||||
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*(
|
||||
state: BeaconState, attestation: SomeAttestation, flags: UpdateFlags,
|
||||
stateCache: var StateCache): bool =
|
||||
|
|
|
@ -19,9 +19,6 @@ const
|
|||
topicAttesterSlashingsSuffix* = "attester_slashing/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
|
||||
ATTESTATION_SUBNET_COUNT* = 64
|
||||
|
||||
|
|
|
@ -262,7 +262,7 @@ proc state_transition*(
|
|||
state.data, state.data.slot.compute_epoch_at_slot)
|
||||
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
|
||||
# the fields in here!
|
||||
proc makeBeaconBlock*(
|
||||
|
|
|
@ -70,7 +70,7 @@ func get_total_active_balance*(state: BeaconState, cache: var StateCache): Gwei
|
|||
except KeyError:
|
||||
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,
|
||||
epoch: Epoch): seq[PendingAttestation] =
|
||||
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(
|
||||
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,
|
||||
stateCache: var StateCache, updateFlags: UpdateFlags = {}) {.nbench.} =
|
||||
|
||||
|
@ -437,7 +437,7 @@ func process_rewards_and_penalties(
|
|||
increase_balance(state, i.ValidatorIndex, rewards[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.}=
|
||||
let
|
||||
epoch = get_current_epoch(state)
|
||||
|
|
|
@ -24,7 +24,7 @@ func shortLog*(x: Checkpoint): string =
|
|||
# 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*(
|
||||
state: BeaconState, attestations: openarray[PendingAttestation],
|
||||
stateCache: var StateCache): HashSet[ValidatorIndex] =
|
||||
|
|
|
@ -12,7 +12,7 @@ import
|
|||
# Specs
|
||||
../../beacon_chain/spec/[datatypes, beaconstate],
|
||||
# Internals
|
||||
../../beacon_chain/[extras, interop],
|
||||
../../beacon_chain/interop,
|
||||
# Mocking procs
|
||||
./mock_deposits
|
||||
|
||||
|
|
Loading…
Reference in New Issue