update 29 Altair spec ref URLs to beta.3 (#2839)

This commit is contained in:
tersec 2021-08-31 12:16:27 +00:00 committed by GitHub
parent 7d1efa443d
commit 9e145afda3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 31 additions and 29 deletions

View File

@ -2014,7 +2014,7 @@ proc updateStabilitySubnetMetadata*(
proc updateSyncnetsMetadata*( proc updateSyncnetsMetadata*(
node: Eth2Node, syncnets: BitArray[altair.SYNC_COMMITTEE_SUBNET_COUNT]) = node: Eth2Node, syncnets: BitArray[altair.SYNC_COMMITTEE_SUBNET_COUNT]) =
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-alpha.8/specs/altair/validator.md#sync-committee-subnet-stability # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/validator.md#sync-committee-subnet-stability
node.metadata.seq_number += 1 node.metadata.seq_number += 1
node.metadata.syncnets = syncnets node.metadata.syncnets = syncnets
@ -2058,7 +2058,7 @@ proc getWallEpoch(node: Eth2Node): Epoch =
proc broadcastAttestation*(node: Eth2Node, subnet_id: SubnetId, proc broadcastAttestation*(node: Eth2Node, subnet_id: SubnetId,
attestation: Attestation) = attestation: Attestation) =
# Regardless of the contents of the attestation, # Regardless of the contents of the attestation,
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/p2p-interface.md#transitioning-the-gossip # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/p2p-interface.md#transitioning-the-gossip
# implies that pre-fork, messages using post-fork digests might be # implies that pre-fork, messages using post-fork digests might be
# ignored, whilst post-fork, there is effectively a seen_ttl-based # ignored, whilst post-fork, there is effectively a seen_ttl-based
# timer unsubscription point that means no new pre-fork-forkdigest # timer unsubscription point that means no new pre-fork-forkdigest

View File

@ -65,7 +65,7 @@ func decrease_balance*(
decrease_balance(state.balances[index], delta) decrease_balance(state.balances[index], delta)
# https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#deposits # https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#deposits
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#modified-process_deposit # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#modified-process_deposit
func get_validator_from_deposit*(deposit: DepositData): func get_validator_from_deposit*(deposit: DepositData):
Validator = Validator =
let let
@ -140,7 +140,7 @@ func initiate_validator_exit*(cfg: RuntimeConfig, state: var SomeBeaconState,
validator.exit_epoch + cfg.MIN_VALIDATOR_WITHDRAWABILITY_DELAY validator.exit_epoch + cfg.MIN_VALIDATOR_WITHDRAWABILITY_DELAY
# https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#slash_validator # https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#slash_validator
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#modified-slash_validator # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#modified-slash_validator
proc slash_validator*( proc slash_validator*(
cfg: RuntimeConfig, state: var SomeBeaconState, cfg: RuntimeConfig, state: var SomeBeaconState,
slashed_index: ValidatorIndex, cache: var StateCache) = slashed_index: ValidatorIndex, cache: var StateCache) =
@ -596,13 +596,13 @@ func get_total_active_balance*(state: SomeBeaconState, cache: var StateCache): G
get_total_balance( get_total_balance(
state, cache.get_shuffled_active_validator_indices(state, epoch)) state, cache.get_shuffled_active_validator_indices(state, epoch))
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#get_base_reward_per_increment # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#get_base_reward_per_increment
func get_base_reward_per_increment*( func get_base_reward_per_increment*(
state: altair.BeaconState, cache: var StateCache): Gwei = state: altair.BeaconState, cache: var StateCache): Gwei =
EFFECTIVE_BALANCE_INCREMENT * BASE_REWARD_FACTOR div EFFECTIVE_BALANCE_INCREMENT * BASE_REWARD_FACTOR div
integer_squareroot(get_total_active_balance(state, cache)) integer_squareroot(get_total_active_balance(state, cache))
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#get_base_reward # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#get_base_reward
func get_base_reward( func get_base_reward(
state: altair.BeaconState, index: ValidatorIndex, state: altair.BeaconState, index: ValidatorIndex,
base_reward_per_increment: Gwei): Gwei = base_reward_per_increment: Gwei): Gwei =
@ -719,7 +719,7 @@ proc process_attestation*(
ok() ok()
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-alpha.7/specs/altair/beacon-chain.md#get_next_sync_committee_indices # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#get_next_sync_committee_indices
func get_next_sync_committee_indices(state: altair.BeaconState): func get_next_sync_committee_indices(state: altair.BeaconState):
seq[ValidatorIndex] = seq[ValidatorIndex] =
## Return the sequence of sync committee indices (which may include ## Return the sequence of sync committee indices (which may include

View File

@ -37,7 +37,7 @@ import ./base, ./phase0
export base export base
const const
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#incentivization-weights # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#incentivization-weights
TIMELY_SOURCE_WEIGHT* = 14 TIMELY_SOURCE_WEIGHT* = 14
TIMELY_TARGET_WEIGHT* = 26 TIMELY_TARGET_WEIGHT* = 26
TIMELY_HEAD_WEIGHT* = 14 TIMELY_HEAD_WEIGHT* = 14
@ -48,7 +48,7 @@ const
PARTICIPATION_FLAG_WEIGHTS* = PARTICIPATION_FLAG_WEIGHTS* =
[TIMELY_SOURCE_WEIGHT, TIMELY_TARGET_WEIGHT, TIMELY_HEAD_WEIGHT] [TIMELY_SOURCE_WEIGHT, TIMELY_TARGET_WEIGHT, TIMELY_HEAD_WEIGHT]
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/validator.md#misc # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/validator.md#misc
TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE* = 16 TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE* = 16
SYNC_COMMITTEE_SUBNET_COUNT* = 4 SYNC_COMMITTEE_SUBNET_COUNT* = 4
@ -61,7 +61,7 @@ const
TIMELY_TARGET_FLAG_INDEX* = 1 TIMELY_TARGET_FLAG_INDEX* = 1
TIMELY_HEAD_FLAG_INDEX* = 2 TIMELY_HEAD_FLAG_INDEX* = 2
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#inactivity-penalties # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#inactivity-penalties
INACTIVITY_SCORE_BIAS* = 4 INACTIVITY_SCORE_BIAS* = 4
INACTIVITY_SCORE_RECOVERY_RATE* = 16 INACTIVITY_SCORE_RECOVERY_RATE* = 16
@ -78,17 +78,17 @@ type
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#custom-types # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#custom-types
ParticipationFlags* = uint8 ParticipationFlags* = uint8
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#syncaggregate # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#syncaggregate
SyncAggregate* = object SyncAggregate* = object
sync_committee_bits*: BitArray[SYNC_COMMITTEE_SIZE] sync_committee_bits*: BitArray[SYNC_COMMITTEE_SIZE]
sync_committee_signature*: ValidatorSig sync_committee_signature*: ValidatorSig
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#synccommittee # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#synccommittee
SyncCommittee* = object SyncCommittee* = object
pubkeys*: HashArray[Limit SYNC_COMMITTEE_SIZE, ValidatorPubKey] pubkeys*: HashArray[Limit SYNC_COMMITTEE_SIZE, ValidatorPubKey]
aggregate_pubkey*: ValidatorPubKey aggregate_pubkey*: ValidatorPubKey
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/validator.md#synccommitteemessage # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/validator.md#synccommitteemessage
SyncCommitteeMessage* = object SyncCommitteeMessage* = object
slot*: Slot ##\ slot*: Slot ##\
## Slot to which this contribution pertains ## Slot to which this contribution pertains
@ -102,7 +102,7 @@ type
signature*: ValidatorSig ##\ signature*: ValidatorSig ##\
## Signature by the validator over the block root of `slot` ## Signature by the validator over the block root of `slot`
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/validator.md#synccommitteecontribution # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/validator.md#synccommitteecontribution
SyncCommitteeAggregationBits* = SyncCommitteeAggregationBits* =
BitArray[SYNC_SUBCOMMITTEE_SIZE] BitArray[SYNC_SUBCOMMITTEE_SIZE]
@ -135,14 +135,14 @@ type
message*: ContributionAndProof message*: ContributionAndProof
signature*: ValidatorSig signature*: ValidatorSig
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/validator.md#syncaggregatorselectiondata # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/validator.md#syncaggregatorselectiondata
SyncAggregatorSelectionData* = object SyncAggregatorSelectionData* = object
slot*: Slot slot*: Slot
subcommittee_index*: uint64 subcommittee_index*: uint64
### Modified/overloaded ### Modified/overloaded
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/sync-protocol.md#lightclientsnapshot # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/sync-protocol.md#lightclientsnapshot
LightClientSnapshot* = object LightClientSnapshot* = object
header*: BeaconBlockHeader ##\ header*: BeaconBlockHeader ##\
## Beacon block header ## Beacon block header
@ -152,7 +152,7 @@ type
next_sync_committee*: SyncCommittee next_sync_committee*: SyncCommittee
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/sync-protocol.md#lightclientupdate # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/sync-protocol.md#lightclientupdate
LightClientUpdate* = object LightClientUpdate* = object
header*: BeaconBlockHeader ##\ header*: BeaconBlockHeader ##\
## Update beacon block header ## Update beacon block header
@ -310,7 +310,7 @@ type
state_root*: Eth2Digest ##\ state_root*: Eth2Digest ##\
body*: TrustedBeaconBlockBody body*: TrustedBeaconBlockBody
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#beaconblockbody # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#beaconblockbody
BeaconBlockBody* = object BeaconBlockBody* = object
randao_reveal*: ValidatorSig randao_reveal*: ValidatorSig
eth1_data*: Eth1Data ##\ eth1_data*: Eth1Data ##\

View File

@ -209,7 +209,7 @@ func add_flag*(flags: ParticipationFlags, flag_index: int): ParticipationFlags =
let flag = ParticipationFlags(1'u8 shl flag_index) let flag = ParticipationFlags(1'u8 shl flag_index)
flags or flag flags or flag
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#has_flag # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#has_flag
func has_flag*(flags: ParticipationFlags, flag_index: int): bool = func has_flag*(flags: ParticipationFlags, flag_index: int): bool =
let flag = ParticipationFlags(1'u8 shl flag_index) let flag = ParticipationFlags(1'u8 shl flag_index)
(flags and flag) == flag (flags and flag) == flag

View File

@ -256,7 +256,7 @@ proc verify_sync_committee_message_signature*(
blsVerify(pubkey, signing_root.data, signature) blsVerify(pubkey, signing_root.data, signature)
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-alpha.7/specs/altair/validator.md#aggregation-selection # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/validator.md#aggregation-selection
proc is_sync_committee_aggregator*(signature: ValidatorSig): bool = proc is_sync_committee_aggregator*(signature: ValidatorSig): bool =
let let
signatureDigest = eth2digest(signature.blob) signatureDigest = eth2digest(signature.blob)

View File

@ -502,7 +502,7 @@ proc process_block*(
# The transition-triggering block creates, not acts on, an Altair state # The transition-triggering block creates, not acts on, an Altair state
err("process_block: Altair state with Phase 0 block") err("process_block: Altair state with Phase 0 block")
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-alpha.8/specs/altair/beacon-chain.md#block-processing # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#block-processing
# TODO workaround for https://github.com/nim-lang/Nim/issues/18095 # TODO workaround for https://github.com/nim-lang/Nim/issues/18095
# copy of datatypes/altair.nim # copy of datatypes/altair.nim
type SomeAltairBlock = type SomeAltairBlock =

View File

@ -7,7 +7,7 @@
# State transition - epoch processing, as described in # State transition - epoch processing, as described in
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/phase0/beacon-chain.md#epoch-processing and # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/phase0/beacon-chain.md#epoch-processing and
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#epoch-processing # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#epoch-processing
# #
# The entry point is `process_epoch`, which is at the bottom of this file. # The entry point is `process_epoch`, which is at the bottom of this file.
# #
@ -165,7 +165,7 @@ type
current_epoch_TIMELY_TARGET: Gwei current_epoch_TIMELY_TARGET: Gwei
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#get_unslashed_participating_indices # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#get_unslashed_participating_indices
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/phase0/beacon-chain.md#get_total_balance # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/phase0/beacon-chain.md#get_total_balance
func get_unslashed_participating_balances*(state: altair.BeaconState): func get_unslashed_participating_balances*(state: altair.BeaconState):
UnslashedParticipatingBalances = UnslashedParticipatingBalances =
let let
@ -603,7 +603,7 @@ func get_base_reward_per_increment(
state: altair.BeaconState, total_active_balance_sqrt: uint64): Gwei = state: altair.BeaconState, total_active_balance_sqrt: uint64): Gwei =
EFFECTIVE_BALANCE_INCREMENT * BASE_REWARD_FACTOR div total_active_balance_sqrt EFFECTIVE_BALANCE_INCREMENT * BASE_REWARD_FACTOR div total_active_balance_sqrt
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#get_base_reward # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#get_base_reward
func get_base_reward( func get_base_reward(
state: altair.BeaconState, index: ValidatorIndex, state: altair.BeaconState, index: ValidatorIndex,
total_active_balance_sqrt: uint64): Gwei = total_active_balance_sqrt: uint64): Gwei =
@ -678,7 +678,7 @@ iterator get_inactivity_penalty_deltas(cfg: RuntimeConfig, state: altair.BeaconS
state.inactivity_scores[index] state.inactivity_scores[index]
yield (vidx, Gwei(penalty_numerator div penalty_denominator)) yield (vidx, Gwei(penalty_numerator div penalty_denominator))
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#rewards-and-penalties # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#rewards-and-penalties
func process_rewards_and_penalties( func process_rewards_and_penalties(
state: var phase0.BeaconState, rewards: var RewardInfo) {.nbench.} = state: var phase0.BeaconState, rewards: var RewardInfo) {.nbench.} =
# No rewards are applied at the end of `GENESIS_EPOCH` because rewards are # No rewards are applied at the end of `GENESIS_EPOCH` because rewards are
@ -740,7 +740,7 @@ func process_rewards_and_penalties(
state.balances.asSeq()[index] = balance state.balances.asSeq()[index] = balance
# https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#slashings # https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#slashings
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#slashings # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#slashings
func process_slashings*(state: var SomeBeaconState, total_balance: Gwei) {.nbench.} = func process_slashings*(state: var SomeBeaconState, total_balance: Gwei) {.nbench.} =
let let
epoch = get_current_epoch(state) epoch = get_current_epoch(state)
@ -847,7 +847,7 @@ func process_participation_flag_updates*(state: var altair.BeaconState) =
state.current_epoch_participation.resetCache() state.current_epoch_participation.resetCache()
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.2/specs/altair/beacon-chain.md#sync-committee-updates # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/beacon-chain.md#sync-committee-updates
proc process_sync_committee_updates*(state: var altair.BeaconState) = proc process_sync_committee_updates*(state: var altair.BeaconState) =
let next_epoch = get_current_epoch(state) + 1 let next_epoch = get_current_epoch(state) + 1
if next_epoch mod EPOCHS_PER_SYNC_COMMITTEE_PERIOD == 0: if next_epoch mod EPOCHS_PER_SYNC_COMMITTEE_PERIOD == 0:

View File

@ -189,7 +189,7 @@ proc getSyncCommitteeSelectionProof*(
else: else:
await signWithRemoteValidator(v, signing_root) await signWithRemoteValidator(v, signing_root)
# https://github.com/ethereum/consensus-specs/blob/v1.1.0-alpha.7/specs/altair/validator.md#signature # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/altair/validator.md#signature
proc sign*( proc sign*(
v: AttachedValidator, v: AttachedValidator,
msg: ref SignedContributionAndProof, msg: ref SignedContributionAndProof,

View File

@ -36,7 +36,7 @@ type
# Some have a signing_root field # Some have a signing_root field
signing_root {.defaultVal: "".}: string signing_root {.defaultVal: "".}: string
# https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/altair/validator.md#eth1block # https://github.com/ethereum/consensus-specs/blob/v1.1.0-beta.3/specs/phase0/validator.md#eth1block
Eth1Block = object Eth1Block = object
timestamp: uint64 timestamp: uint64
deposit_root: Eth2Digest deposit_root: Eth2Digest

View File

@ -1,3 +1,5 @@
{.used.}
import import
unittest2, unittest2,
../beacon_chain/ssz/bitseqs, ../beacon_chain/ssz/bitseqs,