SHA256
Сервер: успокоить AddBlock sync при уже догнанном партнере
This commit is contained in:
+13
-1
@@ -114,6 +114,12 @@ public final class AddBlockSyncService {
|
|||||||
return;
|
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()) {
|
if (!firstTry.needsBackfill()) {
|
||||||
log.warn("AddBlock sync failed without backfill: partner={} blockchainName={} blockNumber={} code={}",
|
log.warn("AddBlock sync failed without backfill: partner={} blockchainName={} blockNumber={} code={}",
|
||||||
partner.getLogin(), blockchainName, blockNumber, firstTry.code());
|
partner.getLogin(), blockchainName, blockNumber, firstTry.code());
|
||||||
@@ -123,7 +129,7 @@ public final class AddBlockSyncService {
|
|||||||
int remoteLast = firstTry.serverLastGlobalNumber();
|
int remoteLast = firstTry.serverLastGlobalNumber();
|
||||||
int fromBlockNumber = remoteLast + 1;
|
int fromBlockNumber = remoteLast + 1;
|
||||||
if (fromBlockNumber > blockNumber) {
|
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);
|
partner.getLogin(), blockchainName, remoteLast, blockNumber);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -295,6 +301,12 @@ public final class AddBlockSyncService {
|
|||||||
boolean needsBackfill() {
|
boolean needsBackfill() {
|
||||||
return !ok && ("bad_prev_hash".equalsIgnoreCase(code) || "bad_block_number".equalsIgnoreCase(code));
|
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 {
|
private static final class SyncWsListener implements WebSocket.Listener {
|
||||||
|
|||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
client.version=1.2.354
|
client.version=1.2.354
|
||||||
server.version=1.2.323
|
server.version=1.2.324
|
||||||
|
|||||||
Reference in New Issue
Block a user