From ffb27c3946c13504d0656dbac2b04ce4d311e647 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Mon, 20 Jun 2022 21:25:14 +0100 Subject: [PATCH] Further relaxed min latest block timestamp age to be considered "up to date" in a few places, from 30 to 60 mins. This should help reduce the visible effects of larger re-orgs if they happen again. --- .../java/org/qortal/api/resource/TransactionsResource.java | 4 ++-- src/main/java/org/qortal/controller/Controller.java | 4 ++-- src/main/java/org/qortal/controller/Synchronizer.java | 4 ++-- src/main/java/org/qortal/controller/tradebot/TradeBot.java | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/qortal/api/resource/TransactionsResource.java b/src/main/java/org/qortal/api/resource/TransactionsResource.java index 4c440304..75724310 100644 --- a/src/main/java/org/qortal/api/resource/TransactionsResource.java +++ b/src/main/java/org/qortal/api/resource/TransactionsResource.java @@ -723,9 +723,9 @@ public class TransactionsResource { ApiError.BLOCKCHAIN_NEEDS_SYNC, ApiError.INVALID_SIGNATURE, ApiError.INVALID_DATA, ApiError.TRANSFORMATION_ERROR, ApiError.REPOSITORY_ISSUE }) public String processTransaction(String rawBytes58) { - // Only allow a transaction to be processed if our latest block is less than 30 minutes old + // Only allow a transaction to be processed if our latest block is less than 60 minutes old // If older than this, we should first wait until the blockchain is synced - final Long minLatestBlockTimestamp = NTP.getTime() - (30 * 60 * 1000L); + final Long minLatestBlockTimestamp = NTP.getTime() - (60 * 60 * 1000L); if (!Controller.getInstance().isUpToDate(minLatestBlockTimestamp)) throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.BLOCKCHAIN_NEEDS_SYNC); diff --git a/src/main/java/org/qortal/controller/Controller.java b/src/main/java/org/qortal/controller/Controller.java index 0a011db5..223ea745 100644 --- a/src/main/java/org/qortal/controller/Controller.java +++ b/src/main/java/org/qortal/controller/Controller.java @@ -787,8 +787,8 @@ public class Controller extends Thread { String actionText; // Use a more tolerant latest block timestamp in the isUpToDate() calls below to reduce misleading statuses. - // Any block in the last 30 minutes is considered "up to date" for the purposes of displaying statuses. - final Long minLatestBlockTimestamp = NTP.getTime() - (30 * 60 * 1000L); + // Any block in the last 60 minutes is considered "up to date" for the purposes of displaying statuses. + final Long minLatestBlockTimestamp = NTP.getTime() - (60 * 60 * 1000L); synchronized (Synchronizer.getInstance().syncLock) { if (Settings.getInstance().isLite()) { diff --git a/src/main/java/org/qortal/controller/Synchronizer.java b/src/main/java/org/qortal/controller/Synchronizer.java index 4c1985a1..597752d2 100644 --- a/src/main/java/org/qortal/controller/Synchronizer.java +++ b/src/main/java/org/qortal/controller/Synchronizer.java @@ -171,8 +171,8 @@ public class Synchronizer extends Thread { public Integer getSyncPercent() { synchronized (this.syncLock) { - // Report as 100% synced if the latest block is within the last 30 mins - final Long minLatestBlockTimestamp = NTP.getTime() - (30 * 60 * 1000L); + // Report as 100% synced if the latest block is within the last 60 mins + final Long minLatestBlockTimestamp = NTP.getTime() - (60 * 60 * 1000L); if (Controller.getInstance().isUpToDate(minLatestBlockTimestamp)) { return 100; } diff --git a/src/main/java/org/qortal/controller/tradebot/TradeBot.java b/src/main/java/org/qortal/controller/tradebot/TradeBot.java index 938141e0..0583a0f0 100644 --- a/src/main/java/org/qortal/controller/tradebot/TradeBot.java +++ b/src/main/java/org/qortal/controller/tradebot/TradeBot.java @@ -242,8 +242,8 @@ public class TradeBot implements Listener { if (!(event instanceof Synchronizer.NewChainTipEvent)) return; - // Don't process trade bots or broadcast presence timestamps if our chain is more than 30 minutes old - final Long minLatestBlockTimestamp = NTP.getTime() - (30 * 60 * 1000L); + // Don't process trade bots or broadcast presence timestamps if our chain is more than 60 minutes old + final Long minLatestBlockTimestamp = NTP.getTime() - (60 * 60 * 1000L); if (!Controller.getInstance().isUpToDate(minLatestBlockTimestamp)) return;