From 172e3466125964713d171434f4ac0e81eb126707 Mon Sep 17 00:00:00 2001 From: selsta Date: Sun, 18 Jan 2026 18:10:19 +0100 Subject: [PATCH] DaemonManager: use accurate blockchain size estimate --- main.qml | 2 +- src/daemon/DaemonManager.cpp | 7 +++---- src/daemon/DaemonManager.h | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/main.qml b/main.qml index 16fcff21..f856e419 100644 --- a/main.qml +++ b/main.qml @@ -1737,7 +1737,7 @@ ApplicationWindow { onRejected: console.log("data dir selection canceled") onAccepted: { var dataDir = walletManager.urlToLocalPath(blockchainFileDialog.fileUrl) - var validator = daemonManager.validateDataDir(dataDir); + var validator = daemonManager.validateDataDir(dataDir, estimatedBlockchainSize); if(validator.valid) { persistentSettings.blockchainDataDir = dataDir; } else { diff --git a/src/daemon/DaemonManager.cpp b/src/daemon/DaemonManager.cpp index f1e4ddf9..60feebc7 100644 --- a/src/daemon/DaemonManager.cpp +++ b/src/daemon/DaemonManager.cpp @@ -297,7 +297,7 @@ void DaemonManager::exit() m_app_exit = true; } -QVariantMap DaemonManager::validateDataDir(const QString &dataDir) const +QVariantMap DaemonManager::validateDataDir(const QString &dataDir, const int estimatedBlockchainSize) const { QVariantMap result; bool valid = true; @@ -312,9 +312,8 @@ QVariantMap DaemonManager::validateDataDir(const QString &dataDir) const valid = false; } - // Make sure there is 75GB storage available storageAvailable = storage.bytesAvailable()/1000/1000/1000; - if (storageAvailable < 75) { + if (storageAvailable < estimatedBlockchainSize) { valid = false; } } else { @@ -339,7 +338,7 @@ bool DaemonManager::checkLmdbExists(QString datadir) { if (datadir.isEmpty() || datadir.isNull()) { datadir = QString::fromStdString(tools::get_default_data_dir()); } - return validateDataDir(datadir).value("lmdbExists").value(); + return QDir(datadir + "/lmdb").exists(); } QString DaemonManager::getArgs(const QString &dataDir) { diff --git a/src/daemon/DaemonManager.h b/src/daemon/DaemonManager.h index 5945c697..3b5fc6e0 100644 --- a/src/daemon/DaemonManager.h +++ b/src/daemon/DaemonManager.h @@ -56,7 +56,7 @@ public: // Send daemon command from qml and prints output in console window. Q_INVOKABLE void sendCommandAsync(const QStringList &cmd, NetworkType::Type nettype, const QString &dataDir, const QJSValue& callback) const; Q_INVOKABLE void exit(); - Q_INVOKABLE QVariantMap validateDataDir(const QString &dataDir) const; + Q_INVOKABLE QVariantMap validateDataDir(const QString &dataDir, const int estimatedBlockchainSizeGb) const; Q_INVOKABLE bool checkLmdbExists(QString datadir); Q_INVOKABLE QString getArgs(const QString &dataDir);