From 52b322b756537811c1f27db7c371cc66186c0317 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sun, 3 Oct 2021 16:09:40 +0100 Subject: [PATCH] Take a backup of local data before overwriting with a bootstrap. Also moved the import phase to after the validation phase, so that the data returns after the bootstrap. --- src/main/java/org/qortal/block/BlockChain.java | 1 + src/main/java/org/qortal/controller/Controller.java | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/qortal/block/BlockChain.java b/src/main/java/org/qortal/block/BlockChain.java index 78bf4b8e..45127ceb 100644 --- a/src/main/java/org/qortal/block/BlockChain.java +++ b/src/main/java/org/qortal/block/BlockChain.java @@ -515,6 +515,7 @@ public class BlockChain { if (!isTopOnly && archiveEnabled && canBootstrap) { needsArchiveRebuild = (repository.getBlockArchiveRepository().fromHeight(2) == null); LOGGER.info("Couldn't retrieve block 2 from archive. Bootstrapping..."); + Controller.getInstance().exportRepositoryData(); } } diff --git a/src/main/java/org/qortal/controller/Controller.java b/src/main/java/org/qortal/controller/Controller.java index e478eb59..c3ccde35 100644 --- a/src/main/java/org/qortal/controller/Controller.java +++ b/src/main/java/org/qortal/controller/Controller.java @@ -436,9 +436,6 @@ public class Controller extends Thread { return; // Not System.exit() so that GUI can display error } - // Import current trade bot states and minting accounts if they exist - Controller.importRepositoryData(); - // Rebuild Names table and check database integrity NamesDatabaseIntegrityCheck namesDatabaseIntegrityCheck = new NamesDatabaseIntegrityCheck(); namesDatabaseIntegrityCheck.rebuildAllNames(); @@ -456,6 +453,9 @@ public class Controller extends Thread { return; // Not System.exit() so that GUI can display error } + // Import current trade bot states and minting accounts if they exist + Controller.importRepositoryData(); + LOGGER.info("Starting controller"); Controller.getInstance().start(); @@ -655,7 +655,7 @@ public class Controller extends Thread { /** * Export current trade bot states and minting accounts. */ - private void exportRepositoryData() { + public void exportRepositoryData() { try (final Repository repository = RepositoryManager.getRepository()) { repository.exportNodeLocalData();