From 252819a84d736ee35288355394ee9123045766a6 Mon Sep 17 00:00:00 2001 From: Dustin Brody Date: Wed, 5 Jun 2019 10:25:30 +0000 Subject: [PATCH] bump everything that's not one of the 3 or so specific changes in 0.6.3 from 0.6.2 to 0.6.3 if already at 0.6.2 (#277) --- beacon_chain/spec/beaconstate.nim | 22 ++++++------ beacon_chain/spec/bitfield.nim | 4 +-- beacon_chain/spec/crypto.nim | 6 ++-- beacon_chain/spec/datatypes.nim | 42 +++++++++++----------- beacon_chain/spec/digest.nim | 2 +- beacon_chain/spec/helpers.nim | 20 +++++------ beacon_chain/spec/presets/mainnet.nim | 14 ++++---- beacon_chain/spec/presets/minimal.nim | 18 +++++----- beacon_chain/spec/validator.nim | 6 ++-- beacon_chain/ssz.nim | 4 +-- beacon_chain/state_transition.nim | 52 +++++++++++++-------------- beacon_chain/time.nim | 2 +- 12 files changed, 96 insertions(+), 96 deletions(-) diff --git a/beacon_chain/spec/beaconstate.nim b/beacon_chain/spec/beaconstate.nim index 293a3107a..c73105fab 100644 --- a/beacon_chain/spec/beaconstate.nim +++ b/beacon_chain/spec/beaconstate.nim @@ -29,13 +29,13 @@ func verify_merkle_branch(leaf: Eth2Digest, proof: openarray[Eth2Digest], depth: value = eth2hash(buf) value == root -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#increase_balance +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#increase_balance func increase_balance*( state: var BeaconState, index: ValidatorIndex, delta: Gwei) = # Increase validator balance by ``delta``. state.balances[index] += delta -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#decrease_balance +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#decrease_balance func decrease_balance*( state: var BeaconState, index: ValidatorIndex, delta: Gwei) = # Decrease validator balance by ``delta`` with underflow protection. @@ -45,7 +45,7 @@ func decrease_balance*( else: state.balances[index] - delta -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#deposits +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#deposits func process_deposit*( state: var BeaconState, deposit: Deposit, flags: UpdateFlags = {}): bool = # Process an Eth1 deposit, registering a validator or increasing its balance. @@ -108,13 +108,13 @@ func process_deposit*( true -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_delayed_activation_exit_epoch +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_delayed_activation_exit_epoch func get_delayed_activation_exit_epoch*(epoch: Epoch): Epoch = ## Return the epoch at which an activation or exit triggered in ``epoch`` ## takes effect. epoch + 1 + ACTIVATION_EXIT_DELAY -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_churn_limit +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_churn_limit func get_churn_limit(state: BeaconState): uint64 = max( MIN_PER_EPOCH_CHURN_LIMIT, @@ -122,7 +122,7 @@ func get_churn_limit(state: BeaconState): uint64 = CHURN_LIMIT_QUOTIENT ).uint64 -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#initiate_validator_exit +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#initiate_validator_exit func initiate_validator_exit*(state: var BeaconState, index: ValidatorIndex) = # Initiate the validator of the given ``index``. @@ -283,7 +283,7 @@ func get_initial_beacon_block*(state: BeaconState): BeaconBlock = # initialized to default values. ) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_attestation_slot +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_attestation_slot func get_attestation_slot*(state: BeaconState, attestation: Attestation|PendingAttestation, committee_count: uint64): Slot = @@ -300,7 +300,7 @@ func get_attestation_slot*(state: BeaconState, get_attestation_slot( state, attestation, get_epoch_committee_count(state, epoch)) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_block_root_at_slot +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_block_root_at_slot func get_block_root_at_slot*(state: BeaconState, slot: Slot): Eth2Digest = # Return the block root at a recent ``slot``. @@ -309,7 +309,7 @@ func get_block_root_at_slot*(state: BeaconState, doAssert slot < state.slot state.latest_block_roots[slot mod SLOTS_PER_HISTORICAL_ROOT] -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_block_root +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_block_root func get_block_root*(state: BeaconState, epoch: Epoch): Eth2Digest = # Return the block root at a recent ``epoch``. get_block_root_at_slot(state, get_epoch_start_slot(epoch)) @@ -389,12 +389,12 @@ iterator get_attestation_participants_cached*(state: BeaconState, break doAssert found, "Couldn't find crosslink committee" -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_total_balance +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_total_balance func get_total_balance*(state: BeaconState, validators: auto): Gwei = # Return the combined effective balance of an array of ``validators``. foldl(validators, a + state.validator_registry[b].effective_balance, 0'u64) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#registry-updates +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#registry-updates func process_registry_updates*(state: var BeaconState) = # Process activation eligibility and ejections for index, validator in state.validator_registry: diff --git a/beacon_chain/spec/bitfield.nim b/beacon_chain/spec/bitfield.nim index 50bda1718..af28fecfd 100644 --- a/beacon_chain/spec/bitfield.nim +++ b/beacon_chain/spec/bitfield.nim @@ -17,14 +17,14 @@ func init*(T: type BitField, bits: int): BitField = #proc readValue*(r: var JsonReader, a: var BitField) {.inline.} = # a.bits = r.readValue(string).hexToSeqByte() -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_bitfield_bit +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_bitfield_bit func get_bitfield_bit*(bitfield: BitField, i: int): bool = # Extract the bit in ``bitfield`` at position ``i``. doAssert 0 <= i div 8, "i: " & $i & " i div 8: " & $(i div 8) doAssert i div 8 < bitfield.bits.len, "i: " & $i & " i div 8: " & $(i div 8) ((bitfield.bits[i div 8] shr (i mod 8)) mod 2) > 0'u8 -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#verify_bitfield +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#verify_bitfield func verify_bitfield*(bitfield: BitField, committee_size: int): bool = # Verify ``bitfield`` against the ``committee_size``. if len(bitfield.bits) != (committee_size + 7) div 8: diff --git a/beacon_chain/spec/crypto.nim b/beacon_chain/spec/crypto.nim index 35f53db91..631c090b6 100644 --- a/beacon_chain/spec/crypto.nim +++ b/beacon_chain/spec/crypto.nim @@ -69,7 +69,7 @@ template hash*(k: ValidatorPubKey|ValidatorPrivKey): Hash = func pubKey*(pk: ValidatorPrivKey): ValidatorPubKey = pk.getKey() -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/bls_signature.md#bls_aggregate_pubkeys +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/bls_signature.md#bls_aggregate_pubkeys func bls_aggregate_pubkeys*(keys: openArray[ValidatorPubKey]): ValidatorPubKey = var empty = true for key in keys: @@ -79,14 +79,14 @@ func bls_aggregate_pubkeys*(keys: openArray[ValidatorPubKey]): ValidatorPubKey = else: result.combine(key) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/bls_signature.md#bls_verify +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/bls_signature.md#bls_verify func bls_verify*( pubkey: ValidatorPubKey, msg: openArray[byte], sig: ValidatorSig, domain: uint64): bool = # name from spec! sig.verify(msg, domain, pubkey) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/bls_signature.md#bls_verify_multiple +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/bls_signature.md#bls_verify_multiple func bls_verify_multiple*( pubkeys: seq[ValidatorPubKey], message_hashes: openArray[Eth2Digest], sig: ValidatorSig, domain: uint64): bool = diff --git a/beacon_chain/spec/datatypes.nim b/beacon_chain/spec/datatypes.nim index 3c08a81fe..0085ad4bc 100644 --- a/beacon_chain/spec/datatypes.nim +++ b/beacon_chain/spec/datatypes.nim @@ -40,7 +40,7 @@ import # Constant presets -# https://github.com/ethereum/eth2.0-specs/tree/v0.6.2/configs/constant_presets/ +# https://github.com/ethereum/eth2.0-specs/tree/v0.6.3/configs/constant_presets/ const const_preset*{.strdefine.} = "mainnet" when const_preset == "mainnet": @@ -53,7 +53,7 @@ else: {.fatal: "Preset \"" & const_preset ".nim\" is not supported.".} const - SPEC_VERSION* = "0.6.2" ## \ + SPEC_VERSION* = "0.6.3" ## \ ## Spec version we're aiming to be compatible with, right now ## TODO: improve this scheme once we can negotiate versions in protocol @@ -61,7 +61,7 @@ const # --------------------------------------------------------------- # https://github.com/ethereum/eth2.0-specs/blob/v0.5.0/specs/core/0_beacon-chain.md#gwei-values - # TODO remove erstwhile blob/v0.6.2 + # TODO remove erstwhile blob/v0.6.3 FORK_CHOICE_BALANCE_INCREMENT* = 2'u64^0 * 10'u64^9 # Initial values @@ -79,7 +79,7 @@ type Shard* = uint64 Gwei* = uint64 - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#proposerslashing + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#proposerslashing ProposerSlashing* = object proposer_index*: uint64 ##\ ## Proposer index @@ -90,7 +90,7 @@ type header_2*: BeaconBlockHeader ##\ # Second block header - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#attesterslashing + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#attesterslashing AttesterSlashing* = object attestation_1*: IndexedAttestation ## \ ## First attestation @@ -111,7 +111,7 @@ type aggregate_signature*: ValidatorSig ## \ ## Aggregate signature - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#attestation + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#attestation Attestation* = object aggregation_bitfield*: BitField ##\ ## Attester aggregation bitfield @@ -142,12 +142,12 @@ type previous_crosslink*: Crosslink crosslink_data_root*: Eth2Digest - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#attestationdataandcustodybit + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#attestationdataandcustodybit AttestationDataAndCustodyBit* = object data*: AttestationData custody_bit*: bool - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#deposit + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#deposit Deposit* = object proof*: array[DEPOSIT_CONTRACT_TREE_DEPTH, Eth2Digest] ##\ ## Branch in the deposit tree @@ -158,7 +158,7 @@ type data*: DepositData ##\ ## Data - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#depositdata + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#depositdata DepositData* = object pubkey*: ValidatorPubKey ##\ ## BLS pubkey @@ -174,7 +174,7 @@ type signature*: ValidatorSig ##\ ## Container self-signature - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#voluntaryexit + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#voluntaryexit VoluntaryExit* = object # Minimum epoch for processing exit epoch*: Epoch @@ -183,7 +183,7 @@ type # Validator signature signature*: ValidatorSig - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#transfer + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#transfer Transfer* = object sender*: uint64 ##\ ## Sender index @@ -206,7 +206,7 @@ type signature*: ValidatorSig ##\ ## Sender signature - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#beaconblock + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#beaconblock BeaconBlock* = object ## For each slot, a proposer is chosen from the validator pool to propose ## a new block. Once the block as been proposed, it is transmitted to @@ -227,7 +227,7 @@ type signature*: ValidatorSig ##\ ## Proposer signature - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#beaconblockheader + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#beaconblockheader BeaconBlockHeader* = object slot*: Slot previous_block_root*: Eth2Digest @@ -250,7 +250,7 @@ type signature*: ValidatorSig body*: Eth2Digest - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#beaconblockbody + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#beaconblockbody BeaconBlockBody* = object randao_reveal*: ValidatorSig eth1_data*: Eth1Data @@ -262,7 +262,7 @@ type voluntary_exits*: seq[VoluntaryExit] transfers*: seq[Transfer] - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#beaconstate + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#beaconstate BeaconState* = object slot*: Slot genesis_time*: uint64 @@ -309,7 +309,7 @@ type eth1_data_votes*: seq[Eth1Data] deposit_index*: uint64 - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#validator + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#validator Validator* = object pubkey*: ValidatorPubKey ##\ ## BLS public key @@ -335,7 +335,7 @@ type effective_balance*: uint64 ##\ ## Effective balance - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#crosslink + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#crosslink Crosslink* = object epoch*: Epoch ##\ ## Epoch number @@ -346,14 +346,14 @@ type crosslink_data_root*: Eth2Digest ##\ ## Shard data since the previous crosslink - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#pendingattestation + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#pendingattestation PendingAttestation* = object aggregation_bitfield*: BitField ## Attester participation bitfield data*: AttestationData ## Attestation data inclusion_delay*: uint64 ## Inclusion delay proposer_index*: ValidatorIndex ## Proposer index - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#historicalbatch + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#historicalbatch HistoricalBatch* = object block_roots* : array[SLOTS_PER_HISTORICAL_ROOT, Eth2Digest] ##\ ## Block roots @@ -361,7 +361,7 @@ type state_roots* : array[SLOTS_PER_HISTORICAL_ROOT, Eth2Digest] ##\ ## State roots - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#fork + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#fork Fork* = object previous_version*: array[4, byte] ##\ ## Previous fork version @@ -372,7 +372,7 @@ type epoch*: Epoch ##\ ## Fork epoch number - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#eth1data + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#eth1data Eth1Data* = object deposit_root*: Eth2Digest ##\ ## Root of the deposit tree diff --git a/beacon_chain/spec/digest.nim b/beacon_chain/spec/digest.nim index 1ccf1761c..640f4b040 100644 --- a/beacon_chain/spec/digest.nim +++ b/beacon_chain/spec/digest.nim @@ -7,7 +7,7 @@ # Serenity hash function / digest # -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#hash +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#hash # # In Phase 0 the beacon chain is deployed with SHA256 (SHA2-256). # Note that is is different from Keccak256 (often mistakenly called SHA3-256) diff --git a/beacon_chain/spec/helpers.nim b/beacon_chain/spec/helpers.nim index 9d4d13183..1e5f25742 100644 --- a/beacon_chain/spec/helpers.nim +++ b/beacon_chain/spec/helpers.nim @@ -9,7 +9,7 @@ import ./datatypes, ./digest, sequtils, math -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#integer_squareroot +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#integer_squareroot func integer_squareroot*(n: SomeInteger): SomeInteger = ## The largest integer ``x`` such that ``x**2`` is less than or equal to ## ``n``. @@ -58,22 +58,22 @@ func merkle_root*(values: openArray[Eth2Digest]): Eth2Digest = o[1] -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#slot_to_epoch +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#slot_to_epoch func slot_to_epoch*(slot: Slot|uint64): Epoch = # Return the epoch number of the given ``slot``. (slot div SLOTS_PER_EPOCH).Epoch -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_epoch_start_slot +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_epoch_start_slot func get_epoch_start_slot*(epoch: Epoch): Slot = # Return the starting slot of the given ``epoch``. (epoch * SLOTS_PER_EPOCH).Slot -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#is_active_validator +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#is_active_validator func is_active_validator*(validator: Validator, epoch: Epoch): bool = ### Check if ``validator`` is active validator.activation_epoch <= epoch and epoch < validator.exit_epoch -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_active_validator_indices +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_active_validator_indices func get_active_validator_indices*(state: BeaconState, epoch: Epoch): seq[ValidatorIndex] = ## Gets indices of active validators from validators @@ -89,7 +89,7 @@ func get_epoch_committee_count*(state: BeaconState, epoch: Epoch): uint64 = len(active_validator_indices) div SLOTS_PER_EPOCH div TARGET_COMMITTEE_SIZE, 1, SHARD_COUNT div SLOTS_PER_EPOCH).uint64 * SLOTS_PER_EPOCH -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_current_epoch +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_current_epoch func get_current_epoch*(state: BeaconState): Epoch = # Return the current epoch of the given ``state``. doAssert state.slot >= GENESIS_SLOT, $state.slot @@ -104,7 +104,7 @@ func get_randao_mix*(state: BeaconState, ## current_epoch + ACTIVATION_EXIT_DELAY]. state.latest_randao_mixes[epoch mod LATEST_RANDAO_MIXES_LENGTH] -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_active_index_root +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_active_index_root func get_active_index_root(state: BeaconState, epoch: Epoch): Eth2Digest = # Returns the index root at a recent ``epoch``. ## ``epoch`` expected to be between @@ -113,7 +113,7 @@ func get_active_index_root(state: BeaconState, epoch: Epoch): Eth2Digest = ## intentional state.latest_active_index_roots[epoch mod LATEST_ACTIVE_INDEX_ROOTS_LENGTH] -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#bytes_to_int +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#bytes_to_int func bytes_to_int*(data: openarray[byte]): uint64 = doAssert data.len == 8 @@ -122,7 +122,7 @@ func bytes_to_int*(data: openarray[byte]): uint64 = for i in countdown(7, 0): result = result * 256 + data[i] -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#int_to_bytes1-int_to_bytes2- +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#int_to_bytes1-int_to_bytes2- # Have 1, 4, 8, and 32-byte versions. 1+ more and maybe worth metaprogramming. func int_to_bytes32*(x: uint64): array[32, byte] = ## Little-endian data representation @@ -171,7 +171,7 @@ func get_domain*( func get_domain*(state: BeaconState, domain_type: SignatureDomain): uint64 = get_domain(state, domain_type, get_current_epoch(state)) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#generate_seed +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#generate_seed func generate_seed*(state: BeaconState, epoch: Epoch): Eth2Digest = # Generate a seed for the given ``epoch``. diff --git a/beacon_chain/spec/presets/mainnet.nim b/beacon_chain/spec/presets/mainnet.nim index 5c4f6a844..89225b0e6 100644 --- a/beacon_chain/spec/presets/mainnet.nim +++ b/beacon_chain/spec/presets/mainnet.nim @@ -26,7 +26,7 @@ type const # Misc # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#misc + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#misc SHARD_COUNT* {.intdefine.} = 1024 ##\ ## Number of shards supported by the network - validators will jump around @@ -57,7 +57,7 @@ const # Deposit contract # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#deposit-contract + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#deposit-contract DEPOSIT_CONTRACT_ADDRESS = "0x1234567890123456789012345678901234567890" # TODO @@ -66,7 +66,7 @@ const # Gwei values # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#gwei-values + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#gwei-values MIN_DEPOSIT_AMOUNT* = 2'u64^0 * 10'u64^9 ##\ ## Minimum amounth of ETH that can be deposited in one call - deposits can @@ -141,14 +141,14 @@ const # State list lengths # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#state-list-lengths + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#state-list-lengths LATEST_RANDAO_MIXES_LENGTH* = 8192 LATEST_ACTIVE_INDEX_ROOTS_LENGTH* = 8192 # 2'u64^13, epochs LATEST_SLASHED_EXIT_LENGTH* = 8192 # epochs # Reward and penalty quotients # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#reward-and-penalty-quotients + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#reward-and-penalty-quotients BASE_REWARD_QUOTIENT* = 2'u64^5 WHISTLEBLOWING_REWARD_QUOTIENT* = 2'u64^9 PROPOSER_REWARD_QUOTIENT* = 2'u64^3 @@ -157,7 +157,7 @@ const # Max operations per block # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#max-operations-per-block + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#max-operations-per-block MAX_PROPOSER_SLASHINGS* = 2^4 MAX_ATTESTER_SLASHINGS* = 2^0 MAX_ATTESTATIONS* = 2^7 @@ -168,7 +168,7 @@ const type # Signature domains # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#signature-domains + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#signature-domains SignatureDomain* {.pure.} = enum DOMAIN_BEACON_PROPOSER = 0 DOMAIN_RANDAO = 1 diff --git a/beacon_chain/spec/presets/minimal.nim b/beacon_chain/spec/presets/minimal.nim index 48a76c3b0..4d9d818ca 100644 --- a/beacon_chain/spec/presets/minimal.nim +++ b/beacon_chain/spec/presets/minimal.nim @@ -22,7 +22,7 @@ type {.experimental: "codeReordering".} # SLOTS_PER_EPOCH is use before being defined in spec -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/configs/constant_presets/minimal.yaml +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/configs/constant_presets/minimal.yaml const # Misc # --------------------------------------------------------------- @@ -43,7 +43,7 @@ const # Deposit contract # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#deposit-contract + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#deposit-contract # Unchanged DEPOSIT_CONTRACT_ADDRESS = "0x1234567890123456789012345678901234567890" @@ -51,7 +51,7 @@ const # Gwei values # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#gwei-values + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#gwei-values # Unchanged MIN_DEPOSIT_AMOUNT* = 2'u64^0 * 10'u64^9 @@ -71,12 +71,12 @@ const # Time parameters # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_fork-choice.md#time-parameters + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_fork-choice.md#time-parameters # Unchanged SECONDS_PER_SLOT*{.intdefine.} = 6'u64 - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#time-parameters + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#time-parameters # Unchanged MIN_ATTESTATION_INCLUSION_DELAY* = 2'u64^2 @@ -99,7 +99,7 @@ const # State list lengths # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#state-list-lengths + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#state-list-lengths # Changed LATEST_RANDAO_MIXES_LENGTH* = 64 @@ -108,7 +108,7 @@ const # Reward and penalty quotients # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#reward-and-penalty-quotients + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#reward-and-penalty-quotients # Unchanged BASE_REWARD_QUOTIENT* = 2'u64^5 @@ -119,7 +119,7 @@ const # Max operations per block # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#max-operations-per-block + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#max-operations-per-block # Unchanged MAX_PROPOSER_SLASHINGS* = 2^4 @@ -132,7 +132,7 @@ const type # Signature domains # --------------------------------------------------------------- - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#signature-domains + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#signature-domains SignatureDomain* {.pure.} = enum DOMAIN_BEACON_PROPOSER = 0 DOMAIN_RANDAO = 1 diff --git a/beacon_chain/spec/validator.nim b/beacon_chain/spec/validator.nim index b183444ac..7dc68fea7 100644 --- a/beacon_chain/spec/validator.nim +++ b/beacon_chain/spec/validator.nim @@ -128,14 +128,14 @@ func get_previous_epoch*(state: BeaconState): Epoch = else: current_epoch -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_shard_delta +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_shard_delta func get_shard_delta(state: BeaconState, epoch: Epoch): uint64 = ## Return the number of shards to increment ``state.latest_start_shard`` ## during ``epoch``. min(get_epoch_committee_count(state, epoch), (SHARD_COUNT - SHARD_COUNT div SLOTS_PER_EPOCH).uint64) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_epoch_start_shard +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_epoch_start_shard func get_epoch_start_shard*(state: BeaconState, epoch: Epoch): Shard = doAssert epoch <= get_current_epoch(state) + 1 var @@ -161,7 +161,7 @@ func compute_committee(indices: seq[ValidatorIndex], seed: Eth2Digest, indices[ get_shuffled_index(it.ValidatorIndex, len(indices).uint64, seed).int]) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_crosslink_committee +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_crosslink_committee func get_crosslink_committee*(state: BeaconState, epoch: Epoch, shard: Shard): seq[ValidatorIndex] = compute_committee( diff --git a/beacon_chain/ssz.nim b/beacon_chain/ssz.nim index 0e7ce224b..2d49330ee 100644 --- a/beacon_chain/ssz.nim +++ b/beacon_chain/ssz.nim @@ -263,8 +263,8 @@ proc readValue*(r: var SszReader, result: var auto) = # ################### Hashing ################################### # Sample hash_tree_root implementation based on: -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/simple-serialize.md -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/test_libs/pyspec/eth2spec/utils/minimal_ssz.py +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/simple-serialize.md +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/test_libs/pyspec/eth2spec/utils/minimal_ssz.py # TODO Probably wrong - the spec is pretty bare-bones and no test vectors yet const diff --git a/beacon_chain/state_transition.nim b/beacon_chain/state_transition.nim index 8e15b1e5a..89f712f93 100644 --- a/beacon_chain/state_transition.nim +++ b/beacon_chain/state_transition.nim @@ -35,7 +35,7 @@ import ./extras, ./ssz, ./beacon_node_types, ./spec/[beaconstate, bitfield, crypto, datatypes, digest, helpers, validator] -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#block-header +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#block-header proc processBlockHeader( state: var BeaconState, blck: BeaconBlock, flags: UpdateFlags): bool = # Verify that the slots match @@ -81,7 +81,7 @@ proc processBlockHeader( true -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#randao +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#randao proc processRandao( state: var BeaconState, blck: BeaconBlock, flags: UpdateFlags): bool = let @@ -113,21 +113,21 @@ proc processRandao( true -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#eth1-data +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#eth1-data func processEth1Data(state: var BeaconState, blck: BeaconBlock) = state.eth1_data_votes.add blck.body.eth1_data if state.eth1_data_votes.count(blck.body.eth1_data) * 2 > SLOTS_PER_ETH1_VOTING_PERIOD: state.latest_eth1_data = blck.body.eth1_data -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#is_slashable_validator +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#is_slashable_validator func is_slashable_validator(validator: Validator, epoch: Epoch): bool = # Check if ``validator`` is slashable. (not validator.slashed) and (validator.activation_epoch <= epoch) and (epoch < validator.withdrawable_epoch) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#proposer-slashings +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#proposer-slashings proc processProposerSlashings( state: var BeaconState, blck: BeaconBlock, flags: UpdateFlags): bool = if len(blck.body.proposer_slashings) > MAX_PROPOSER_SLASHINGS: @@ -221,7 +221,7 @@ func verify_slashable_attestation(state: BeaconState, slashable_attestation: Ind ), ) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#is_slashable_attestation_data +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#is_slashable_attestation_data func is_slashable_attestation_data( data_1: AttestationData, data_2: AttestationData): bool = ## Check if ``data_1`` and ``data_2`` are slashable according to Casper FFG @@ -332,7 +332,7 @@ proc processDeposits(state: var BeaconState, blck: BeaconBlock): bool = true -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#voluntary-exits +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#voluntary-exits proc processVoluntaryExits( state: var BeaconState, blck: BeaconBlock, flags: UpdateFlags): bool = # Process ``VoluntaryExit`` transaction. @@ -379,7 +379,7 @@ proc processVoluntaryExits( true -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#transfers +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#transfers proc processTransfers(state: var BeaconState, blck: BeaconBlock, flags: UpdateFlags): bool = if not (len(blck.body.transfers) <= MAX_TRANSFERS): @@ -451,7 +451,7 @@ proc processTransfers(state: var BeaconState, blck: BeaconBlock, true -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#per-slot-processing +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#per-slot-processing func advance_slot(state: var BeaconState) = ## Time on the beacon chain moves in slots. Every time we make it to a new ## slot, a proposer creates a block to represent the state of the beacon @@ -460,7 +460,7 @@ func advance_slot(state: var BeaconState) = state.slot += 1 -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#state-caching +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#state-caching func cacheState(state: var BeaconState) = let previous_slot_state_root = hash_tree_root(state) @@ -520,7 +520,7 @@ proc processBlock( true -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#helper-functions-1 +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#helper-functions-1 func get_total_active_balance(state: BeaconState): Gwei = return get_total_balance( state, @@ -658,7 +658,7 @@ func get_winning_root_and_participants( state, attestations_for.getOrDefault(winning_root), cache)) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#justification-and-finalization +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#justification-and-finalization func process_justification_and_finalization(state: var BeaconState) = if get_current_epoch(state) <= GENESIS_EPOCH + 1: return @@ -766,7 +766,7 @@ func process_crosslinks( crosslink_data_root: winning_root ) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#rewards-and-penalties +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#rewards-and-penalties func get_base_reward(state: BeaconState, index: ValidatorIndex): Gwei = let adjusted_quotient = integer_squareroot(get_total_active_balance(state)) div BASE_REWARD_QUOTIENT @@ -889,7 +889,7 @@ func process_rewards_and_penalties( increase_balance(state, i.ValidatorIndex, rewards1[i] + rewards2[i]) decrease_balance(state, i.ValidatorIndex, penalties1[i] + penalties2[i]) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#slashings +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#slashings func process_slashings(state: var BeaconState) = let current_epoch = get_current_epoch(state) @@ -915,13 +915,13 @@ func process_slashings(state: var BeaconState) = validator.effective_balance div MIN_SLASHING_PENALTY_QUOTIENT) decrease_balance(state, index.ValidatorIndex, penalty) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#get_shard_delta +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#get_shard_delta func get_shard_delta(state: BeaconState, epoch: Epoch): uint64 = # Return the number of shards to increment ``state.latest_start_shard`` during ``epoch``. min(get_epoch_committee_count(state, epoch), (SHARD_COUNT - SHARD_COUNT div SLOTS_PER_EPOCH).uint64) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#final-updates +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#final-updates func process_final_updates(state: var BeaconState) = let current_epoch = get_current_epoch(state) @@ -968,7 +968,7 @@ func process_final_updates(state: var BeaconState) = state.previous_epoch_attestations = state.current_epoch_attestations state.current_epoch_attestations = @[] -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#per-epoch-processing +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#per-epoch-processing func get_empty_per_epoch_cache(): StateCache = result.crosslink_committee_cache = initTable[tuple[a: uint64, b: bool], seq[CrosslinkCommittee]]() @@ -980,27 +980,27 @@ func processEpoch(state: var BeaconState) = (state.slot + 1) mod SLOTS_PER_EPOCH == 0): return - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#justification-and-finalization + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#justification-and-finalization process_justification_and_finalization(state) var per_epoch_cache = get_empty_per_epoch_cache() - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#crosslinks + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#crosslinks process_crosslinks(state, per_epoch_cache) - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#rewards-and-penalties + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#rewards-and-penalties process_rewards_and_penalties(state, per_epoch_cache) - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#registry-updates + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#registry-updates process_registry_updates(state) - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#slashings + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#slashings process_slashings(state) - # https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#final-updates + # https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#final-updates process_final_updates(state) -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#state-root-verification +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#state-root-verification proc verifyStateRoot(state: BeaconState, blck: BeaconBlock): bool = let state_root = hash_tree_root(state) if state_root != blck.state_root: @@ -1015,7 +1015,7 @@ proc advanceState*(state: var BeaconState) = ## hand - this happens for example when a block proposer fails to produce a ## a block. - ## https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#beacon-chain-state-transition-function + ## https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#beacon-chain-state-transition-function ## We now define the state transition function. At a high level the state ## transition is made up of four parts: @@ -1105,7 +1105,7 @@ proc skipSlots*(state: var BeaconState, slot: Slot, # TODO hashed versions of above - not in spec -# https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_beacon-chain.md#state-caching +# https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_beacon-chain.md#state-caching func cacheState(state: var HashedBeaconState) = let previous_slot_state_root = state.root diff --git a/beacon_chain/time.nim b/beacon_chain/time.nim index 1377ef3a7..5d9dc366f 100644 --- a/beacon_chain/time.nim +++ b/beacon_chain/time.nim @@ -14,7 +14,7 @@ type ## which blocks are valid - in particular, blocks are not valid if they ## come from the future as seen from the local clock. ## - ## https://github.com/ethereum/eth2.0-specs/blob/v0.6.2/specs/core/0_fork-choice.md#beacon-chain-processing + ## https://github.com/ethereum/eth2.0-specs/blob/v0.6.3/specs/core/0_fork-choice.md#beacon-chain-processing ## # TODO replace time in chronos with a proper unit type, then this code can # follow: