From 6feca1f4d6f691a8b0ee68c77bfd89e032af101a Mon Sep 17 00:00:00 2001 From: catbref Date: Thu, 16 May 2019 10:46:15 +0100 Subject: [PATCH] Synchronizer improvements & minor fix Restrict synchronizer to only consider peers at most 60 blocks behind. Synchronizer will only process a batch of 200 blocks at a time. Improve debugging message in Peer. --- src/main/java/org/qora/controller/Synchronizer.java | 5 +++-- src/main/java/org/qora/network/Peer.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/qora/controller/Synchronizer.java b/src/main/java/org/qora/controller/Synchronizer.java index 33900f31..3b112246 100644 --- a/src/main/java/org/qora/controller/Synchronizer.java +++ b/src/main/java/org/qora/controller/Synchronizer.java @@ -31,7 +31,8 @@ public class Synchronizer { private static final int INITIAL_BLOCK_STEP = 8; private static final int MAXIMUM_BLOCK_STEP = 500; - private static final int MAXIMUM_HEIGHT_DELTA = 2000; // XXX move to blockchain config? + private static final int MAXIMUM_HEIGHT_DELTA = 60; // XXX move to blockchain config? + private static final int SYNC_BATCH_SIZE = 200; private static Synchronizer instance; @@ -153,7 +154,7 @@ public class Synchronizer { // Fetch, and apply, blocks from peer byte[] signature = commonBlockData.getSignature(); - while (this.ourHeight < peerHeight) { + while (this.ourHeight < peerHeight && this.ourHeight < commonBlockHeight + SYNC_BATCH_SIZE) { // Do we need more signatures? if (signatures.isEmpty()) { signatures = this.getBlockSignatures(peer, signature, MAXIMUM_BLOCK_STEP); diff --git a/src/main/java/org/qora/network/Peer.java b/src/main/java/org/qora/network/Peer.java index 8f07821b..8d2baf77 100644 --- a/src/main/java/org/qora/network/Peer.java +++ b/src/main/java/org/qora/network/Peer.java @@ -317,7 +317,7 @@ public class Peer implements Runnable { // Close socket if (!this.socket.isClosed()) { - LOGGER.debug(String.format("Disconnected peer %s", this)); + LOGGER.debug(String.format("Disconnecting peer %s", this)); try { this.socket.close();