DaemonManager: use accurate blockchain size estimate

This commit is contained in:
selsta
2026-01-18 18:10:19 +01:00
parent e984c28faf
commit 172e346612
3 changed files with 5 additions and 6 deletions

View File

@@ -1737,7 +1737,7 @@ ApplicationWindow {
onRejected: console.log("data dir selection canceled") onRejected: console.log("data dir selection canceled")
onAccepted: { onAccepted: {
var dataDir = walletManager.urlToLocalPath(blockchainFileDialog.fileUrl) var dataDir = walletManager.urlToLocalPath(blockchainFileDialog.fileUrl)
var validator = daemonManager.validateDataDir(dataDir); var validator = daemonManager.validateDataDir(dataDir, estimatedBlockchainSize);
if(validator.valid) { if(validator.valid) {
persistentSettings.blockchainDataDir = dataDir; persistentSettings.blockchainDataDir = dataDir;
} else { } else {

View File

@@ -297,7 +297,7 @@ void DaemonManager::exit()
m_app_exit = true; m_app_exit = true;
} }
QVariantMap DaemonManager::validateDataDir(const QString &dataDir) const QVariantMap DaemonManager::validateDataDir(const QString &dataDir, const int estimatedBlockchainSize) const
{ {
QVariantMap result; QVariantMap result;
bool valid = true; bool valid = true;
@@ -312,9 +312,8 @@ QVariantMap DaemonManager::validateDataDir(const QString &dataDir) const
valid = false; valid = false;
} }
// Make sure there is 75GB storage available
storageAvailable = storage.bytesAvailable()/1000/1000/1000; storageAvailable = storage.bytesAvailable()/1000/1000/1000;
if (storageAvailable < 75) { if (storageAvailable < estimatedBlockchainSize) {
valid = false; valid = false;
} }
} else { } else {
@@ -339,7 +338,7 @@ bool DaemonManager::checkLmdbExists(QString datadir) {
if (datadir.isEmpty() || datadir.isNull()) { if (datadir.isEmpty() || datadir.isNull()) {
datadir = QString::fromStdString(tools::get_default_data_dir()); datadir = QString::fromStdString(tools::get_default_data_dir());
} }
return validateDataDir(datadir).value("lmdbExists").value<bool>(); return QDir(datadir + "/lmdb").exists();
} }
QString DaemonManager::getArgs(const QString &dataDir) { QString DaemonManager::getArgs(const QString &dataDir) {

View File

@@ -56,7 +56,7 @@ public:
// Send daemon command from qml and prints output in console window. // 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 sendCommandAsync(const QStringList &cmd, NetworkType::Type nettype, const QString &dataDir, const QJSValue& callback) const;
Q_INVOKABLE void exit(); 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 bool checkLmdbExists(QString datadir);
Q_INVOKABLE QString getArgs(const QString &dataDir); Q_INVOKABLE QString getArgs(const QString &dataDir);