From 566a7804a3e3ffce45932583fadf8d0db7bd209a Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Sat, 20 Apr 2024 02:00:52 +0200 Subject: [PATCH] fix(stages): block number in error (#7766) --- crates/interfaces/src/p2p/error.rs | 4 +++- crates/interfaces/src/p2p/headers/downloader.rs | 7 ++++++- crates/interfaces/src/test_utils/headers.rs | 1 + crates/net/downloaders/src/headers/reverse_headers.rs | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/crates/interfaces/src/p2p/error.rs b/crates/interfaces/src/p2p/error.rs index 667d9d548..3c4e351fc 100644 --- a/crates/interfaces/src/p2p/error.rs +++ b/crates/interfaces/src/p2p/error.rs @@ -132,10 +132,12 @@ pub type DownloadResult = Result; 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, diff --git a/crates/interfaces/src/p2p/headers/downloader.rs b/crates/interfaces/src/p2p/headers/downloader.rs index 35dd41a3e..07633681d 100644 --- a/crates/interfaces/src/p2p/headers/downloader.rs +++ b/crates/interfaces/src/p2p/headers/downloader.rs @@ -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(()) diff --git a/crates/interfaces/src/test_utils/headers.rs b/crates/interfaces/src/test_utils/headers.rs index 24b187c63..8262d9ae0 100644 --- a/crates/interfaces/src/test_utils/headers.rs +++ b/crates/interfaces/src/test_utils/headers.rs @@ -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), }))) } diff --git a/crates/net/downloaders/src/headers/reverse_headers.rs b/crates/net/downloaders/src/headers/reverse_headers.rs index e8e1fa009..3af45c172 100644 --- a/crates/net/downloaders/src/headers/reverse_headers.rs +++ b/crates/net/downloaders/src/headers/reverse_headers.rs @@ -284,6 +284,7 @@ where peer_id: Some(peer_id), error: DownloadError::HeaderValidation { hash: head.hash(), + number: head.number, error: Box::new(error), }, }