more `withState` `state` -> `forkyState` (#4112)

This commit is contained in:
tersec 2022-09-13 13:53:12 +02:00 committed by GitHub
parent 5b0b48f6e9
commit 02a99543c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 44 additions and 39 deletions

View File

@ -681,7 +681,7 @@ proc init*(T: type BeaconNode,
proc getValidatorIdx(pubkey: ValidatorPubKey): Opt[ValidatorIndex] = proc getValidatorIdx(pubkey: ValidatorPubKey): Opt[ValidatorIndex] =
withState(dag.headState): withState(dag.headState):
findValidator(state().data.validators.asSeq(), pubkey) findValidator(forkyState().data.validators.asSeq(), pubkey)
let let
slashingProtectionDB = slashingProtectionDB =
@ -906,7 +906,7 @@ func hasSyncPubKey(node: BeaconNode, epoch: Epoch): auto =
func getCurrentSyncCommiteeSubnets(node: BeaconNode, slot: Slot): SyncnetBits = func getCurrentSyncCommiteeSubnets(node: BeaconNode, slot: Slot): SyncnetBits =
let syncCommittee = withState(node.dag.headState): let syncCommittee = withState(node.dag.headState):
when stateFork >= BeaconStateFork.Altair: when stateFork >= BeaconStateFork.Altair:
state.data.current_sync_committee forkyState.data.current_sync_committee
else: else:
return static(default(SyncnetBits)) return static(default(SyncnetBits))
@ -992,7 +992,7 @@ func getNextSyncCommitteeSubnets(node: BeaconNode, epoch: Epoch): SyncnetBits =
let syncCommittee = withState(node.dag.headState): let syncCommittee = withState(node.dag.headState):
when stateFork >= BeaconStateFork.Altair: when stateFork >= BeaconStateFork.Altair:
state.data.next_sync_committee forkyState.data.next_sync_committee
else: else:
return static(default(SyncnetBits)) return static(default(SyncnetBits))
@ -1106,13 +1106,14 @@ proc updateGossipStatus(node: BeaconNode, slot: Slot) {.async.} =
# We "know" the actions for the current and the next epoch # We "know" the actions for the current and the next epoch
withState(node.dag.headState): withState(node.dag.headState):
if node.consensusManager[].actionTracker.needsUpdate(state, slot.epoch): if node.consensusManager[].actionTracker.needsUpdate(
forkyState, slot.epoch):
let epochRef = node.dag.getEpochRef(head, slot.epoch, false).expect( let epochRef = node.dag.getEpochRef(head, slot.epoch, false).expect(
"Getting head EpochRef should never fail") "Getting head EpochRef should never fail")
node.consensusManager[].actionTracker.updateActions(epochRef) node.consensusManager[].actionTracker.updateActions(epochRef)
if node.consensusManager[].actionTracker.needsUpdate( if node.consensusManager[].actionTracker.needsUpdate(
state, slot.epoch + 1): forkyState, slot.epoch + 1):
let epochRef = node.dag.getEpochRef(head, slot.epoch + 1, false).expect( let epochRef = node.dag.getEpochRef(head, slot.epoch + 1, false).expect(
"Getting head EpochRef should never fail") "Getting head EpochRef should never fail")
node.consensusManager[].actionTracker.updateActions(epochRef) node.consensusManager[].actionTracker.updateActions(epochRef)
@ -1197,7 +1198,7 @@ proc onSlotEnd(node: BeaconNode, slot: Slot) {.async.} =
if node.isSynced(head): if node.isSynced(head):
withState(node.dag.headState): withState(node.dag.headState):
if node.consensusManager[].actionTracker.needsUpdate( if node.consensusManager[].actionTracker.needsUpdate(
state, slot.epoch + 1): forkyState, slot.epoch + 1):
let epochRef = node.dag.getEpochRef(head, slot.epoch + 1, false).expect( let epochRef = node.dag.getEpochRef(head, slot.epoch + 1, false).expect(
"Getting head EpochRef should never fail") "Getting head EpochRef should never fail")
node.consensusManager[].actionTracker.updateActions(epochRef) node.consensusManager[].actionTracker.updateActions(epochRef)

View File

@ -84,7 +84,7 @@ proc installDebugApiHandlers*(router: var RestRouter, node: BeaconNode) =
elif contentType == sszMediaType: elif contentType == sszMediaType:
let headers = [("eth-consensus-version", state.kind.toString())] let headers = [("eth-consensus-version", state.kind.toString())]
withState(state): withState(state):
RestApiResponse.sszResponse(state.data, headers) RestApiResponse.sszResponse(forkyState.data, headers)
else: else:
RestApiResponse.jsonError(Http500, InvalidAcceptError) RestApiResponse.jsonError(Http500, InvalidAcceptError)
return RestApiResponse.jsonError(Http404, StateNotFoundError) return RestApiResponse.jsonError(Http404, StateNotFoundError)

View File

@ -222,11 +222,11 @@ func syncCommitteeParticipants*(forkedState: ForkedHashedBeaconState,
when stateFork >= BeaconStateFork.Altair: when stateFork >= BeaconStateFork.Altair:
let let
epochPeriod = sync_committee_period(epoch) epochPeriod = sync_committee_period(epoch)
curPeriod = sync_committee_period(state.data.slot) curPeriod = sync_committee_period(forkyState.data.slot)
if epochPeriod == curPeriod: if epochPeriod == curPeriod:
ok(@(state.data.current_sync_committee.pubkeys.data)) ok(@(forkyState.data.current_sync_committee.pubkeys.data))
elif epochPeriod == curPeriod + 1: elif epochPeriod == curPeriod + 1:
ok(@(state.data.next_sync_committee.pubkeys.data)) ok(@(forkyState.data.next_sync_committee.pubkeys.data))
else: else:
err("Epoch is outside the sync committee period of the state") err("Epoch is outside the sync committee period of the state")
else: else:
@ -268,12 +268,12 @@ proc getStateOptimistic*(node: BeaconNode,
# A state is optimistic iff the block which created it is # A state is optimistic iff the block which created it is
withState(state): withState(state):
# The block root which created the state at slot `n` is at slot `n-1` # The block root which created the state at slot `n` is at slot `n-1`
if state.data.slot == GENESIS_SLOT: if forkyState.data.slot == GENESIS_SLOT:
some[bool](false) some[bool](false)
else: else:
doAssert state.data.slot > 0 doAssert forkyState.data.slot > 0
some[bool](node.dag.is_optimistic( some[bool](node.dag.is_optimistic(
get_block_root_at_slot(state.data, state.data.slot - 1))) get_block_root_at_slot(forkyState.data, forkyState.data.slot - 1)))
else: else:
none[bool]() none[bool]()

View File

@ -248,8 +248,8 @@ proc installValidatorApiHandlers*(router: var RestRouter, node: BeaconNode) =
let res = withState(node.dag.headState): let res = withState(node.dag.headState):
when stateFork >= BeaconStateFork.Altair: when stateFork >= BeaconStateFork.Altair:
produceResponse(indexList, produceResponse(indexList,
state.data.current_sync_committee.pubkeys.data, forkyState.data.current_sync_committee.pubkeys.data,
state.data.validators.asSeq) forkyState.data.validators.asSeq)
else: else:
emptyResponse() emptyResponse()
return RestApiResponse.jsonResponseWOpt(res, optimistic) return RestApiResponse.jsonResponseWOpt(res, optimistic)
@ -258,8 +258,8 @@ proc installValidatorApiHandlers*(router: var RestRouter, node: BeaconNode) =
let res = withState(node.dag.headState): let res = withState(node.dag.headState):
when stateFork >= BeaconStateFork.Altair: when stateFork >= BeaconStateFork.Altair:
produceResponse(indexList, produceResponse(indexList,
state.data.next_sync_committee.pubkeys.data, forkyState.data.next_sync_committee.pubkeys.data,
state.data.validators.asSeq) forkyState.data.validators.asSeq)
else: else:
emptyResponse() emptyResponse()
return RestApiResponse.jsonResponseWOpt(res, optimistic) return RestApiResponse.jsonResponseWOpt(res, optimistic)
@ -289,8 +289,8 @@ proc installValidatorApiHandlers*(router: var RestRouter, node: BeaconNode) =
let res = withState(state): let res = withState(state):
when stateFork >= BeaconStateFork.Altair: when stateFork >= BeaconStateFork.Altair:
produceResponse(indexList, produceResponse(indexList,
state.data.current_sync_committee.pubkeys.data, forkyState.data.current_sync_committee.pubkeys.data,
state.data.validators.asSeq) forkyState.data.validators.asSeq)
else: else:
emptyResponse() emptyResponse()
return RestApiResponse.jsonResponseWOpt(res, optimistic) return RestApiResponse.jsonResponseWOpt(res, optimistic)

View File

@ -966,7 +966,7 @@ func latest_block_root*(state: ForkyHashedBeaconState): Eth2Digest =
latest_block_root(state.data, state.root) latest_block_root(state.data, state.root)
func latest_block_root*(state: ForkedHashedBeaconState): Eth2Digest = func latest_block_root*(state: ForkedHashedBeaconState): Eth2Digest =
withState(state): latest_block_root(state) withState(state): latest_block_root(forkyState)
func get_sync_committee_cache*( func get_sync_committee_cache*(
state: altair.BeaconState | bellatrix.BeaconState, cache: var StateCache): state: altair.BeaconState | bellatrix.BeaconState, cache: var StateCache):
@ -1034,7 +1034,7 @@ func latest_block_id*(state: ForkyHashedBeaconState): BlockId =
func latest_block_id*(state: ForkedHashedBeaconState): BlockId = func latest_block_id*(state: ForkedHashedBeaconState): BlockId =
## Block id of the latest block applied to this state ## Block id of the latest block applied to this state
withState(state): state.latest_block_id() withState(state): forkyState.latest_block_id()
func matches_block*( func matches_block*(
state: ForkyHashedBeaconState, block_root: Eth2Digest): bool = state: ForkyHashedBeaconState, block_root: Eth2Digest): bool =
@ -1044,7 +1044,7 @@ func matches_block*(
func matches_block*( func matches_block*(
state: ForkedHashedBeaconState, block_root: Eth2Digest): bool = state: ForkedHashedBeaconState, block_root: Eth2Digest): bool =
withState(state): state.matches_block(block_root) withState(state): forkyState.matches_block(block_root)
func matches_block_slot*( func matches_block_slot*(
state: ForkyHashedBeaconState, block_root: Eth2Digest, slot: Slot): bool = state: ForkyHashedBeaconState, block_root: Eth2Digest, slot: Slot): bool =
@ -1053,7 +1053,7 @@ func matches_block_slot*(
slot == state.data.slot and block_root == state.latest_block_root slot == state.data.slot and block_root == state.latest_block_root
func matches_block_slot*( func matches_block_slot*(
state: ForkedHashedBeaconState, block_root: Eth2Digest, slot: Slot): bool = state: ForkedHashedBeaconState, block_root: Eth2Digest, slot: Slot): bool =
withState(state): state.matches_block_slot(block_root, slot) withState(state): forkyState.matches_block_slot(block_root, slot)
func can_advance_slots*( func can_advance_slots*(
state: ForkyHashedBeaconState, block_root: Eth2Digest, target_slot: Slot): bool = state: ForkyHashedBeaconState, block_root: Eth2Digest, target_slot: Slot): bool =
@ -1062,4 +1062,4 @@ func can_advance_slots*(
target_slot >= state.data.slot and block_root == state.latest_block_root target_slot >= state.data.slot and block_root == state.latest_block_root
func can_advance_slots*( func can_advance_slots*(
state: ForkedHashedBeaconState, block_root: Eth2Digest, target_slot: Slot): bool = state: ForkedHashedBeaconState, block_root: Eth2Digest, target_slot: Slot): bool =
withState(state): state.can_advance_slots(block_root, target_slot) withState(state): forkyState.can_advance_slots(block_root, target_slot)

View File

@ -141,12 +141,13 @@ proc doTrustedNodeSync*(
withState(genesisState[]): withState(genesisState[]):
info "Writing genesis state", info "Writing genesis state",
stateRoot = shortLog(state.root), stateRoot = shortLog(forkyState.root),
genesis_validators_root = shortLog(state.data.genesis_validators_root) genesis_validators_root =
shortLog(forkyState.data.genesis_validators_root)
db.putState(state) db.putState(forkyState)
let blck = get_initial_beacon_block(state) let blck = get_initial_beacon_block(forkyState)
info "Writing genesis block", info "Writing genesis block",
blockRoot = shortLog(blck.root), blockRoot = shortLog(blck.root),
@ -254,7 +255,7 @@ proc doTrustedNodeSync*(
quit 1 quit 1
withState(state[]): withState(state[]):
let latest_block_root = state.latest_block_root let latest_block_root = forkyState.latest_block_root
if latest_block_root != checkpointBlock[].root: if latest_block_root != checkpointBlock[].root:
error "Checkpoint state does not match checkpoint block, server error?", error "Checkpoint state does not match checkpoint block, server error?",
@ -264,8 +265,8 @@ proc doTrustedNodeSync*(
quit 1 quit 1
info "Writing checkpoint state", info "Writing checkpoint state",
stateRoot = shortLog(state.root) stateRoot = shortLog(forkyState.root)
db.putState(state) db.putState(forkyState)
withBlck(checkpointBlock[]): withBlck(checkpointBlock[]):
info "Writing checkpoint block", info "Writing checkpoint block",

View File

@ -1348,11 +1348,12 @@ proc registerValidators(node: BeaconNode, epoch: Epoch) {.async.} =
# Builders should verify that `pubkey` corresponds to an active or # Builders should verify that `pubkey` corresponds to an active or
# pending validator # pending validator
withState(node.dag.headState): withState(node.dag.headState):
if distinctBase(validator.index.get) >= state.data.validators.lenu64: if distinctBase(validator.index.get) >=
forkyState.data.validators.lenu64:
continue continue
if node.currentSlot().epoch >= if node.currentSlot().epoch >=
state.data.validators.item(validator.index.get).exit_epoch: forkyState.data.validators.item(validator.index.get).exit_epoch:
continue continue
if validator.externalBuilderRegistration.isSome: if validator.externalBuilderRegistration.isSome:

View File

@ -57,8 +57,10 @@ func copyParticipationFlags*(auxiliaryState: var AuxiliaryState,
withState(forkedState): withState(forkedState):
when stateFork > BeaconStateFork.Phase0: when stateFork > BeaconStateFork.Phase0:
template flags: untyped = auxiliaryState.epochParticipationFlags template flags: untyped = auxiliaryState.epochParticipationFlags
flags.currentEpochParticipation = state.data.current_epoch_participation flags.currentEpochParticipation =
flags.previousEpochParticipation = state.data.previous_epoch_participation forkyState.data.current_epoch_participation
flags.previousEpochParticipation =
forkyState.data.previous_epoch_participation
proc getUnaggregatedFilesEpochRange*(dir: string): proc getUnaggregatedFilesEpochRange*(dir: string):
tuple[firstEpoch, lastEpoch: Epoch] = tuple[firstEpoch, lastEpoch: Epoch] =

View File

@ -296,13 +296,13 @@ proc cmdBench(conf: DbConf, cfg: RuntimeConfig) =
dbBenchmark.putBlock(b) dbBenchmark.putBlock(b)
withState(stateData[]): withState(stateData[]):
if state.data.slot.is_epoch and conf.storeStates: if forkyState.data.slot.is_epoch and conf.storeStates:
if state.data.slot.epoch < 2: if forkyState.data.slot.epoch < 2:
dbBenchmark.putState(state.root, state.data) dbBenchmark.putState(forkyState.root, forkyState.data)
dbBenchmark.checkpoint() dbBenchmark.checkpoint()
else: else:
withTimer(timers[tDbStore]): withTimer(timers[tDbStore]):
dbBenchmark.putState(state.root, state.data) dbBenchmark.putState(forkyState.root, forkyState.data)
dbBenchmark.checkpoint() dbBenchmark.checkpoint()
withTimer(timers[tDbLoad]): withTimer(timers[tDbLoad]):