differentiate spans for erasure-coding and storage (#2185)

This commit is contained in:
Robert Habermeier
2021-01-02 16:47:27 -05:00
committed by GitHub
parent 2c1f43a989
commit eefebc6cfc
+25 -17
View File
@@ -288,7 +288,7 @@ async fn store_available_data(
// //
// This will compute the erasure root internally and compare it to the expected erasure root. // This will compute the erasure root internally and compare it to the expected erasure root.
// This returns `Err()` iff there is an internal error. Otherwise, it returns either `Ok(Ok(()))` or `Ok(Err(_))`. // This returns `Err()` iff there is an internal error. Otherwise, it returns either `Ok(Ok(()))` or `Ok(Err(_))`.
#[tracing::instrument(level = "trace", skip(tx_from, pov), fields(subsystem = LOG_TARGET))] #[tracing::instrument(level = "trace", skip(tx_from, pov, span), fields(subsystem = LOG_TARGET))]
async fn make_pov_available( async fn make_pov_available(
tx_from: &mut mpsc::Sender<FromJobCommand>, tx_from: &mut mpsc::Sender<FromJobCommand>,
validator_index: Option<ValidatorIndex>, validator_index: Option<ValidatorIndex>,
@@ -297,31 +297,39 @@ async fn make_pov_available(
candidate_hash: CandidateHash, candidate_hash: CandidateHash,
validation_data: polkadot_primitives::v1::PersistedValidationData, validation_data: polkadot_primitives::v1::PersistedValidationData,
expected_erasure_root: Hash, expected_erasure_root: Hash,
span: Option<&JaegerSpan>,
) -> Result<Result<(), InvalidErasureRoot>, Error> { ) -> Result<Result<(), InvalidErasureRoot>, Error> {
let available_data = AvailableData { let available_data = AvailableData {
pov, pov,
validation_data, validation_data,
}; };
let chunks = erasure_coding::obtain_chunks_v1( {
n_validators, let _span = span.as_ref().map(|s| s.child("erasure-coding"));
&available_data,
)?;
let branches = erasure_coding::branches(chunks.as_ref()); let chunks = erasure_coding::obtain_chunks_v1(
let erasure_root = branches.root(); n_validators,
&available_data,
)?;
if erasure_root != expected_erasure_root { let branches = erasure_coding::branches(chunks.as_ref());
return Ok(Err(InvalidErasureRoot)); let erasure_root = branches.root();
if erasure_root != expected_erasure_root {
return Ok(Err(InvalidErasureRoot));
}
} }
store_available_data( {
tx_from, let _span = span.as_ref().map(|s| s.child("store-data"));
validator_index, store_available_data(
n_validators as u32, tx_from,
candidate_hash, validator_index,
available_data, n_validators as u32,
).await?; candidate_hash,
available_data,
).await?;
}
Ok(Ok(())) Ok(Ok(()))
} }
@@ -423,7 +431,6 @@ async fn validate_and_make_available(
); );
Err(candidate) Err(candidate)
} else { } else {
let _span = span.as_ref().map(|s| s.child("make-available"));
let erasure_valid = make_pov_available( let erasure_valid = make_pov_available(
&mut tx_from, &mut tx_from,
validator_index, validator_index,
@@ -432,6 +439,7 @@ async fn validate_and_make_available(
candidate.hash(), candidate.hash(),
validation_data, validation_data,
candidate.descriptor.erasure_root, candidate.descriptor.erasure_root,
span.as_ref(),
).await?; ).await?;
match erasure_valid { match erasure_valid {