From 7a4452275ea73fd6c07529a745b8946b75a7243a Mon Sep 17 00:00:00 2001 From: Paul Hauner Date: Thu, 16 Jun 2022 18:22:32 +1000 Subject: [PATCH] Use fast head in notifier --- beacon_node/client/src/notifier.rs | 14 ++++---------- beacon_node/http_api/src/lib.rs | 4 ++-- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/beacon_node/client/src/notifier.rs b/beacon_node/client/src/notifier.rs index b2ea17103c5..0892a016d5f 100644 --- a/beacon_node/client/src/notifier.rs +++ b/beacon_node/client/src/notifier.rs @@ -100,16 +100,10 @@ pub fn spawn_notifier( current_sync_state = sync_state; } - // Atomically collect info about the head, avoiding holding the `canonical_head` lock - // any longer than necessary. - let (head_slot, head_root, finalized_checkpoint) = { - let head_lock = beacon_chain.canonical_head.read(); - ( - head_lock.head_slot(), - head_lock.head_block_root(), - head_lock.finalized_checkpoint(), - ) - }; + let fast_head = beacon_chain.fast_canonical_head(); + let head_slot = fast_head.head_block_slot; + let head_root = fast_head.head_block_root; + let finalized_checkpoint = fast_head.finalized_checkpoint; metrics::set_gauge(&metrics::NOTIFIER_HEAD_SLOT, head_slot.as_u64() as i64); diff --git a/beacon_node/http_api/src/lib.rs b/beacon_node/http_api/src/lib.rs index e2b989c0aa3..cf686d59fa6 100644 --- a/beacon_node/http_api/src/lib.rs +++ b/beacon_node/http_api/src/lib.rs @@ -369,7 +369,7 @@ pub fn serve( chain: Arc>| async move { match *network_globals.sync_state.read() { SyncState::SyncingFinalized { .. } => { - let head_slot = chain.fast_canonical_head().head_slot; + let head_slot = chain.fast_canonical_head().head_block_slot; let current_slot = chain.slot_clock.now_or_genesis().ok_or_else(|| { @@ -1691,7 +1691,7 @@ pub fn serve( .and_then( |network_globals: Arc>, chain: Arc>| { blocking_json_task(move || { - let head_slot = chain.fast_canonical_head().head_slot; + let head_slot = chain.fast_canonical_head().head_block_slot; let current_slot = chain.slot_clock.now_or_genesis().ok_or_else(|| { warp_utils::reject::custom_server_error("Unable to read slot clock".into()) })?;