mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
chore(download): response validation order (#1537)
This commit is contained in:
@ -345,9 +345,6 @@ where
|
||||
|
||||
trace!(target: "downloaders::headers", len=%headers.len(), "Received headers response");
|
||||
|
||||
// sort headers from highest to lowest block number
|
||||
headers.sort_unstable_by_key(|h| Reverse(h.number));
|
||||
|
||||
if headers.is_empty() {
|
||||
return Err(HeadersResponseError {
|
||||
request,
|
||||
@ -356,6 +353,20 @@ where
|
||||
})
|
||||
}
|
||||
|
||||
if (headers.len() as u64) != request.limit {
|
||||
return Err(HeadersResponseError {
|
||||
peer_id: Some(peer_id),
|
||||
error: DownloadError::HeadersResponseTooShort {
|
||||
received: headers.len() as u64,
|
||||
expected: request.limit,
|
||||
},
|
||||
request,
|
||||
})
|
||||
}
|
||||
|
||||
// sort headers from highest to lowest block number
|
||||
headers.sort_unstable_by_key(|h| Reverse(h.number));
|
||||
|
||||
// validate the response
|
||||
let highest = &headers[0];
|
||||
|
||||
@ -372,17 +383,6 @@ where
|
||||
})
|
||||
}
|
||||
|
||||
if (headers.len() as u64) != request.limit {
|
||||
return Err(HeadersResponseError {
|
||||
peer_id: Some(peer_id),
|
||||
error: DownloadError::HeadersResponseTooShort {
|
||||
received: headers.len() as u64,
|
||||
expected: request.limit,
|
||||
},
|
||||
request,
|
||||
})
|
||||
}
|
||||
|
||||
// check if the response is the next expected
|
||||
if highest.number == self.next_chain_tip_block_number {
|
||||
// is next response, validate it
|
||||
|
||||
Reference in New Issue
Block a user