diff --git a/core/network/src/sync.rs b/core/network/src/sync.rs index 1287beffe95bd..8fbf052420ad5 100644 --- a/core/network/src/sync.rs +++ b/core/network/src/sync.rs @@ -239,6 +239,13 @@ impl ChainSync { } }, None => { + if n > As::sa(0) { + trace!(target:"sync", "Ancestry block not found for peer {}: block #{}", who, n); + let n = n - As::sa(1); + peer.state = PeerSyncState::AncestorSearch(n); + Self::request_ancestry(protocol, who, n); + return None; + } trace!(target:"sync", "Invalid response when searching for ancestor from {}", who); protocol.report_peer(who, Severity::Bad("Invalid response when searching for ancestor")); return None;