From ce19110c28c76058ef0d3bf0ee4482e0a36b7129 Mon Sep 17 00:00:00 2001 From: backpacker69 Date: Mon, 5 Aug 2019 15:58:59 +0300 Subject: [PATCH] optional aggressiveness of salvagewallet --- src/wallet/db.cpp | 7 ++++--- src/wallet/init.cpp | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/wallet/db.cpp b/src/wallet/db.cpp index 23c62791287..e6efb8e4849 100644 --- a/src/wallet/db.cpp +++ b/src/wallet/db.cpp @@ -236,13 +236,14 @@ bool CDB::Recover(const std::string& filename, void *callbackDataIn, bool (*reco } std::vector salvagedData; - bool fSuccess = bitdb.Salvage(newFilename, true, salvagedData); + bool fAggressive = gArgs.GetBoolArg("-salvageaggressive", false); + bool fSuccess = bitdb.Salvage(newFilename, fAggressive, salvagedData); if (salvagedData.empty()) { - LogPrintf("Salvage(aggressive) found no records in %s.\n", newFilename); + LogPrintf("Salvage(%s) found no records in %s.\n", fAggressive ? "aggressive" : "normal", newFilename); return false; } - LogPrintf("Salvage(aggressive) found %u records\n", salvagedData.size()); + LogPrintf("Salvage(%s) found %u records\n", fAggressive ? "aggressive" : "normal", salvagedData.size()); std::unique_ptr pdbCopy = MakeUnique(bitdb.dbenv.get(), 0); int ret = pdbCopy->open(nullptr, // Txn pointer diff --git a/src/wallet/init.cpp b/src/wallet/init.cpp index b5d0414975d..1c4e4142a0c 100644 --- a/src/wallet/init.cpp +++ b/src/wallet/init.cpp @@ -22,6 +22,7 @@ std::string GetWalletHelpString(bool showDebug) strUsage += HelpMessageOpt("-keypool=", strprintf(_("Set key pool size to (default: %u)"), DEFAULT_KEYPOOL_SIZE)); strUsage += HelpMessageOpt("-rescan", _("Rescan the block chain for missing wallet transactions on startup")); strUsage += HelpMessageOpt("-salvagewallet", _("Attempt to recover private keys from a corrupt wallet on startup")); + strUsage += HelpMessageOpt("-salvageaggressive", _("Be aggressive during -salvagewallet operation (default: false)")); strUsage += HelpMessageOpt("-spendzeroconfchange", strprintf(_("Spend unconfirmed change when sending transactions (default: %u)"), DEFAULT_SPEND_ZEROCONF_CHANGE)); strUsage += HelpMessageOpt("-txconfirmtarget=", strprintf(_("If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u)"), DEFAULT_TX_CONFIRM_TARGET)); strUsage += HelpMessageOpt("-upgradewallet", _("Upgrade wallet to latest format on startup"));