Merge branch 'dev/etan/vd-incprop' into feat/splitview
This commit is contained in:
commit
58383d1ca0
|
@ -1567,8 +1567,21 @@ proc onSlotEnd(node: BeaconNode, slot: Slot) {.async.} =
|
||||||
# If the chain has halted, we have to ensure that the EL gets synced
|
# If the chain has halted, we have to ensure that the EL gets synced
|
||||||
# so that we can perform validator duties again
|
# so that we can perform validator duties again
|
||||||
if not node.dag.head.executionValid and not node.dag.chainIsProgressing():
|
if not node.dag.head.executionValid and not node.dag.chainIsProgressing():
|
||||||
let beaconHead = node.attestationPool[].getBeaconHead(head)
|
let
|
||||||
discard await node.consensusManager.updateExecutionClientHead(beaconHead)
|
beaconHead = node.attestationPool[].getBeaconHead(head)
|
||||||
|
blck = node.dag.getForkedBlock(beaconHead.blck.bid)
|
||||||
|
if blck.isSome:
|
||||||
|
withBlck(blck.get):
|
||||||
|
when consensusFork >= ConsensusFork.Bellatrix:
|
||||||
|
if forkyBlck.message.is_execution_block and
|
||||||
|
not forkyBlck.message.body.execution_payload.block_hash.isZero:
|
||||||
|
# Both `engine_newPayload` and `engine_forkchoiceUpdated` are
|
||||||
|
# needed because the EL may have discarded the block since the
|
||||||
|
# last time that the stale branch was requested to be head
|
||||||
|
discard await node.elManager
|
||||||
|
.newExecutionPayload(forkyBlck.message)
|
||||||
|
discard await node.consensusManager
|
||||||
|
.updateExecutionClientHead(beaconHead)
|
||||||
|
|
||||||
# If the chain head is far behind, we have to advance it incrementally
|
# If the chain head is far behind, we have to advance it incrementally
|
||||||
# to avoid lag spikes when performing validator duties
|
# to avoid lag spikes when performing validator duties
|
||||||
|
|
Loading…
Reference in New Issue