From 0c0c5ff077b6bd2ef97a3a3930854ec887ea1c26 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sun, 25 Apr 2021 12:50:40 +0100 Subject: [PATCH] Invalidate our block summaries cache for a peer if it fails to respond with signatures when synchronizing. --- src/main/java/org/qortal/controller/Synchronizer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/org/qortal/controller/Synchronizer.java b/src/main/java/org/qortal/controller/Synchronizer.java index fccf5ba3..8e917dca 100644 --- a/src/main/java/org/qortal/controller/Synchronizer.java +++ b/src/main/java/org/qortal/controller/Synchronizer.java @@ -766,6 +766,11 @@ public class Synchronizer { LOGGER.info(String.format("Peer %s failed to respond with more block signatures after height %d, sig %.8s", peer, height, Base58.encode(latestPeerSignature))); + // Clear our cache of common block summaries for this peer, as they are likely to be invalid + CommonBlockData cachedCommonBlockData = peer.getCommonBlockData(); + if (cachedCommonBlockData != null) + cachedCommonBlockData.setBlockSummariesAfterCommonBlock(null); + // If we have already received RECENT blocks from this peer, go ahead and apply them if (peerBlocks.size() > 0) { final Block peerLatestBlock = peerBlocks.get(peerBlocks.size() - 1);