Skip to content

Commit 6ce2570

Browse files
committed
Import only desired bootstrap headers
1 parent ea56c0e commit 6ce2570

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

sync/src/block/extension.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -743,17 +743,21 @@ impl Extension {
743743
fn on_header_response(&mut self, from: &NodeId, headers: &[Header]) {
744744
ctrace!(SYNC, "Received header response from({}) with length({})", from, headers.len());
745745
match self.state {
746-
State::SnapshotHeader(..) => {
746+
State::SnapshotHeader(hash, _) => {
747747
for header in headers {
748-
match self.client.import_bootstrap_header(&header) {
749-
Err(BlockImportError::Import(ImportError::AlreadyInChain)) => {}
750-
Err(BlockImportError::Import(ImportError::AlreadyQueued)) => {}
751-
// FIXME: handle import errors
752-
Err(err) => {
753-
cwarn!(SYNC, "Cannot import header({}): {:?}", header.hash(), err);
754-
break
748+
if header.hash() == hash {
749+
match self.client.import_bootstrap_header(&header) {
750+
Err(BlockImportError::Import(ImportError::AlreadyInChain)) => {
751+
self.state = State::SnapshotChunk(*header.state_root());
752+
}
753+
Err(BlockImportError::Import(ImportError::AlreadyQueued)) => {}
754+
// FIXME: handle import errors
755+
Err(err) => {
756+
cwarn!(SYNC, "Cannot import header({}): {:?}", header.hash(), err);
757+
break
758+
}
759+
_ => {}
755760
}
756-
_ => {}
757761
}
758762
}
759763
}

0 commit comments

Comments
 (0)