diff --git a/sync/src/block/downloader/header.rs b/sync/src/block/downloader/header.rs index dc6d653572..b40a435f18 100644 --- a/sync/src/block/downloader/header.rs +++ b/sync/src/block/downloader/header.rs @@ -25,6 +25,7 @@ use primitives::{H256, U256}; use super::super::message::RequestMessage; const MAX_HEADER_REQUEST_LENGTH: u64 = 128; +const MAX_HEADER_QUEUE_LENGTH: usize = 1024; const MAX_RETRY: usize = 3; const MAX_WAIT: u64 = 15; @@ -128,6 +129,9 @@ impl HeaderDownloader { if !self.is_idle() { return None } + if self.queued.len() + self.downloaded.len() > MAX_HEADER_QUEUE_LENGTH { + return None + } let pivot_number = self.pivot_header().number();