From c5d52f1b25242f5fdd4ef41a3d420d4a9bc15aa8 Mon Sep 17 00:00:00 2001 From: tersec Date: Sat, 26 Nov 2022 18:50:42 +0000 Subject: [PATCH] register validators for MEV regardless of whether attached to BN (#4363) --- beacon_chain/nimbus_beacon_node.nim | 7 +++++++ beacon_chain/validators/validator_duties.nim | 9 +-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/beacon_chain/nimbus_beacon_node.nim b/beacon_chain/nimbus_beacon_node.nim index ce09eb97b..6231d6e3f 100644 --- a/beacon_chain/nimbus_beacon_node.nim +++ b/beacon_chain/nimbus_beacon_node.nim @@ -1312,6 +1312,13 @@ proc onSlotStart(node: BeaconNode, wallTime: BeaconTime, await onSlotEnd(node, wallSlot) + # https://github.com/ethereum/builder-specs/blob/v0.2.0/specs/validator.md#registration-dissemination + # This specification suggests validators re-submit to builder software every + # `EPOCHS_PER_VALIDATOR_REGISTRATION_SUBMISSION` epochs. + if wallSlot.is_epoch and + wallSlot.epoch mod EPOCHS_PER_VALIDATOR_REGISTRATION_SUBMISSION == 0: + asyncSpawn node.registerValidators(wallSlot.epoch) + return false proc handleMissingBlocks(node: BeaconNode) = diff --git a/beacon_chain/validators/validator_duties.nim b/beacon_chain/validators/validator_duties.nim index 2ef395baa..3f982cec3 100644 --- a/beacon_chain/validators/validator_duties.nim +++ b/beacon_chain/validators/validator_duties.nim @@ -1282,7 +1282,7 @@ proc getValidatorRegistration( from std/sequtils import toSeq -proc registerValidators(node: BeaconNode, epoch: Epoch) {.async.} = +proc registerValidators*(node: BeaconNode, epoch: Epoch) {.async.} = try: if (not node.config.payloadBuilderEnable) or node.currentSlot.epoch < node.dag.cfg.BELLATRIX_FORK_EPOCH: @@ -1444,13 +1444,6 @@ proc handleValidatorDuties*(node: BeaconNode, lastSlot, slot: Slot) {.async.} = curSlot += 1 - # https://github.com/ethereum/builder-specs/blob/v0.2.0/specs/validator.md#registration-dissemination - # This specification suggests validators re-submit to builder software every - # `EPOCHS_PER_VALIDATOR_REGISTRATION_SUBMISSION` epochs. - if slot.is_epoch and - slot.epoch mod EPOCHS_PER_VALIDATOR_REGISTRATION_SUBMISSION == 0: - asyncSpawn node.registerValidators(slot.epoch) - let newHead = await handleProposal(node, head, slot) didSubmitBlock = (newHead != head)