fix(stages): block number in error (#7766)

This commit is contained in:
Emilia Hane
2024-04-20 02:00:52 +02:00
committed by GitHub
parent 71f8e678aa
commit 566a7804a3
4 changed files with 11 additions and 2 deletions

View File

@ -132,10 +132,12 @@ pub type DownloadResult<T> = Result<T, DownloadError>;
pub enum DownloadError {
/* ==================== HEADER ERRORS ==================== */
/// Header validation failed.
#[error("failed to validate header {hash}: {error}")]
#[error("failed to validate header {hash}, block number {number}: {error}")]
HeaderValidation {
/// Hash of header failing validation
hash: B256,
/// Number of header failing validation
number: u64,
/// The details of validation failure
#[source]
error: Box<ConsensusError>,

View File

@ -81,11 +81,16 @@ pub fn validate_header_download(
) -> DownloadResult<()> {
// validate header against parent
consensus.validate_header_against_parent(header, parent).map_err(|error| {
DownloadError::HeaderValidation { hash: parent.hash(), error: Box::new(error) }
DownloadError::HeaderValidation {
hash: parent.hash(),
number: header.number,
error: Box::new(error),
}
})?;
// validate header standalone
consensus.validate_header(header).map_err(|error| DownloadError::HeaderValidation {
hash: parent.hash(),
number: header.number,
error: Box::new(error),
})?;
Ok(())

View File

@ -149,6 +149,7 @@ impl Stream for TestDownload {
this.done = true;
return Poll::Ready(Some(Err(DownloadError::HeaderValidation {
hash: empty.hash(),
number: empty.number,
error: Box::new(error),
})))
}

View File

@ -284,6 +284,7 @@ where
peer_id: Some(peer_id),
error: DownloadError::HeaderValidation {
hash: head.hash(),
number: head.number,
error: Box::new(error),
},
}