Add an info-level span to check_contextual_validity

This commit is contained in:
teor 2020-11-16 15:46:16 +10:00
parent d80a0c7402
commit cfe779db69
1 changed files with 12 additions and 0 deletions

View File

@ -50,6 +50,8 @@ struct StateService {
queued_blocks: QueuedBlocks,
/// The set of outpoints with pending requests for their associated transparent::Output
pending_utxos: utxo::PendingUtxos,
/// The configured Zcash network
network: Network,
/// Instant tracking the last time `pending_utxos` was pruned
last_prune: Instant,
}
@ -68,6 +70,7 @@ impl StateService {
mem,
queued_blocks,
pending_utxos,
network,
last_prune: Instant::now(),
}
}
@ -185,6 +188,15 @@ impl StateService {
/// Check that `block` is contextually valid based on the committed finalized
/// and non-finalized state.
fn check_contextual_validity(&mut self, block: &Block) -> Result<(), ValidateContextError> {
let height = block
.coinbase_height()
.expect("semantically valid blocks have a coinbase height");
let hash = block.hash();
let span = tracing::info_span!("StateService::check_contextual_validity",
?height, network = ?self.network, ?hash);
let _entered = span.enter();
let finalized_tip_height = self.sled.finalized_tip_height().expect(
"finalized state must contain at least one block to use the non-finalized state",
);