Skip to content

Commit 04f265e

Browse files
authored
Merge pull request #1133 from openmina/fix/last_evaluated_epoch
fix(vrf-evaluator): Fix interruption of won slots search at epoch boundaries
2 parents f9e9980 + 2f49855 commit 04f265e

File tree

3 files changed

+4
-13
lines changed

3 files changed

+4
-13
lines changed

node/src/block_producer/vrf_evaluator/block_producer_vrf_evaluator_actions.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ pub enum BlockProducerVrfEvaluatorAction {
105105
/// Epoch evaluation finished.
106106
#[action_event(level = info, fields(epoch_number, latest_evaluated_global_slot))]
107107
FinishEpochEvaluation {
108+
/// The evaluated epoch number.
108109
epoch_number: u32,
109110
latest_evaluated_global_slot: u32,
110111
},

node/src/block_producer/vrf_evaluator/block_producer_vrf_evaluator_reducer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ impl BlockProducerVrfEvaluatorState {
424424
time: meta.time(),
425425
epoch_number: *epoch_number,
426426
};
427-
state.set_last_evaluated_epoch();
427+
state.set_last_evaluated_epoch(*epoch_number);
428428
}
429429
BlockProducerVrfEvaluatorAction::WaitForNextEvaluation => {
430430
state.status =

node/src/block_producer/vrf_evaluator/block_producer_vrf_evaluator_state.rs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -277,18 +277,8 @@ impl BlockProducerVrfEvaluatorState {
277277

278278
pub fn initialize_evaluator(&mut self, _epoch: u32, _last_height: u32) {}
279279

280-
pub fn set_last_evaluated_epoch(&mut self) {
281-
if let BlockProducerVrfEvaluatorStatus::EpochEvaluationSuccess { epoch_number, .. } =
282-
&self.status
283-
{
284-
match self.epoch_context {
285-
EpochContext::Current(_) => self.last_evaluated_epoch = Some(*epoch_number),
286-
EpochContext::Next(_) => {
287-
self.last_evaluated_epoch = Some(epoch_number.checked_add(1).expect("overflow"))
288-
}
289-
EpochContext::Waiting => {}
290-
}
291-
}
280+
pub fn set_last_evaluated_epoch(&mut self, epoch_number: u32) {
281+
self.last_evaluated_epoch = Some(epoch_number);
292282
}
293283

294284
pub fn initial_slot(&self) -> Option<u32> {

0 commit comments

Comments
 (0)