mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-08 09:16:00 +00:00
Allow VC to detect when BN comes online
This commit is contained in:
@@ -195,14 +195,18 @@ impl<E: EthSpec> CandidateBeaconNode<E> {
|
|||||||
match check_node_health(&self.beacon_node, log).await {
|
match check_node_health(&self.beacon_node, log).await {
|
||||||
Ok((head, is_optimistic, el_offline)) => {
|
Ok((head, is_optimistic, el_offline)) => {
|
||||||
let Some(slot_clock_head) = slot_clock.now() else {
|
let Some(slot_clock_head) = slot_clock.now() else {
|
||||||
match slot_clock.is_prior_to_genesis() {
|
let e = match slot_clock.is_prior_to_genesis() {
|
||||||
Some(true) => return Err(CandidateError::PreGenesis),
|
Some(true) => CandidateError::PreGenesis,
|
||||||
_ => return Err(CandidateError::Uninitialized),
|
_ => CandidateError::Uninitialized,
|
||||||
}
|
};
|
||||||
|
*self.health.write().await = Err(e);
|
||||||
|
return Err(e);
|
||||||
};
|
};
|
||||||
|
|
||||||
if head > slot_clock_head + FUTURE_SLOT_TOLERANCE {
|
if head > slot_clock_head + FUTURE_SLOT_TOLERANCE {
|
||||||
return Err(CandidateError::TimeDiscrepancy);
|
let e = CandidateError::TimeDiscrepancy;
|
||||||
|
*self.health.write().await = Err(e);
|
||||||
|
return Err(e);
|
||||||
}
|
}
|
||||||
let sync_distance = slot_clock_head.saturating_sub(head);
|
let sync_distance = slot_clock_head.saturating_sub(head);
|
||||||
|
|
||||||
@@ -239,8 +243,9 @@ impl<E: EthSpec> CandidateBeaconNode<E> {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Slot clock will only be `None` at startup.
|
// Slot clock will only be `None` at startup.
|
||||||
// Assume compatible nodes are available.
|
let e = CandidateError::Uninitialized;
|
||||||
Ok(())
|
*self.health.write().await = Err(e);
|
||||||
|
Err(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -449,7 +454,7 @@ impl<T: SlotClock, E: EthSpec> BeaconNodeFallback<T, E> {
|
|||||||
if *e != CandidateError::PreGenesis {
|
if *e != CandidateError::PreGenesis {
|
||||||
warn!(
|
warn!(
|
||||||
self.log,
|
self.log,
|
||||||
"A connected beacon node errored during routine health check.";
|
"A connected beacon node errored during routine health check";
|
||||||
"error" => ?e,
|
"error" => ?e,
|
||||||
"endpoint" => node,
|
"endpoint" => node,
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user