diff --git a/SHiNE-server/shine-server-net-protocol/src/main/java/server/sync/AddBlockSyncService.java b/SHiNE-server/shine-server-net-protocol/src/main/java/server/sync/AddBlockSyncService.java index b2fd337f..2e4741ab 100644 --- a/SHiNE-server/shine-server-net-protocol/src/main/java/server/sync/AddBlockSyncService.java +++ b/SHiNE-server/shine-server-net-protocol/src/main/java/server/sync/AddBlockSyncService.java @@ -114,6 +114,12 @@ public final class AddBlockSyncService { return; } + if (firstTry.serverAlreadyHasBlock(blockNumber)) { + log.info("AddBlock sync skipped: partner already has block. partner={} blockchainName={} blockNumber={} remoteLast={}", + partner.getLogin(), blockchainName, blockNumber, firstTry.serverLastGlobalNumber()); + return; + } + if (!firstTry.needsBackfill()) { log.warn("AddBlock sync failed without backfill: partner={} blockchainName={} blockNumber={} code={}", partner.getLogin(), blockchainName, blockNumber, firstTry.code()); @@ -123,7 +129,7 @@ public final class AddBlockSyncService { int remoteLast = firstTry.serverLastGlobalNumber(); int fromBlockNumber = remoteLast + 1; if (fromBlockNumber > blockNumber) { - log.warn("AddBlock sync inconsistent backfill window: partner={} blockchainName={} remoteLast={} target={}", + log.info("AddBlock sync skipped: partner already caught up during backfill window. partner={} blockchainName={} remoteLast={} target={}", partner.getLogin(), blockchainName, remoteLast, blockNumber); return; } @@ -295,6 +301,12 @@ public final class AddBlockSyncService { boolean needsBackfill() { return !ok && ("bad_prev_hash".equalsIgnoreCase(code) || "bad_block_number".equalsIgnoreCase(code)); } + + boolean serverAlreadyHasBlock(int targetBlockNumber) { + return !ok + && serverLastGlobalNumber != Integer.MIN_VALUE + && serverLastGlobalNumber >= targetBlockNumber; + } } private static final class SyncWsListener implements WebSocket.Listener { diff --git a/VERSION.properties b/VERSION.properties index e63d5594..a83f4e2b 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ client.version=1.2.354 -server.version=1.2.323 +server.version=1.2.324