Skip to content

Commit c91bbd8

Browse files
Juhyung Parkmergify[bot]
authored andcommitted
Do not request the next headers if the pivot score is not changed
1 parent a6833a0 commit c91bbd8

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

sync/src/block/downloader/header.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ impl HeaderDownloader {
100100
}
101101
}
102102

103+
pub fn pivot_score(&self) -> U256 {
104+
self.pivot.total_score
105+
}
106+
103107
pub fn is_idle(&self) -> bool {
104108
let can_request = self.request_time.is_none() && self.total_score > self.pivot.total_score;
105109

sync/src/block/extension.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -662,12 +662,14 @@ impl Extension {
662662

663663
fn on_header_response(&mut self, from: &NodeId, headers: &[Header]) {
664664
ctrace!(SYNC, "Received header response from({}) with length({})", from, headers.len());
665-
let mut completed = if let Some(peer) = self.header_downloaders.get_mut(from) {
665+
let (mut completed, pivot_score_changed) = if let Some(peer) = self.header_downloaders.get_mut(from) {
666+
let before_pivot_score = peer.pivot_score();
666667
let encoded: Vec<_> = headers.iter().map(|h| EncodedHeader::new(h.rlp_bytes().to_vec())).collect();
667668
peer.import_headers(&encoded);
668-
peer.downloaded()
669+
let after_pivot_score = peer.pivot_score();
670+
(peer.downloaded(), before_pivot_score != after_pivot_score)
669671
} else {
670-
Vec::new()
672+
(Vec::new(), false)
671673
};
672674
completed.sort_unstable_by_key(|header| header.number());
673675

@@ -688,8 +690,10 @@ impl Extension {
688690
peer.mark_as_imported(exists);
689691
peer.create_request()
690692
});
691-
if let Some(request) = request {
692-
self.send_header_request(from, request);
693+
if pivot_score_changed {
694+
if let Some(request) = request {
695+
self.send_header_request(from, request);
696+
}
693697
}
694698
}
695699

0 commit comments

Comments
 (0)