diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2021-04-05 21:31:00 -0500 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2021-04-05 21:31:00 -0500 |
| commit | 3aa530aa84b87e6e06d97d15de41e0864dadf80c (patch) | |
| tree | 49033597422b7dd18543c45a8abd3ed0385a5694 /src/daemon | |
| parent | b3dace6b450db582d8b683b9dcff4fca96357586 (diff) | |
| parent | 6b0cb8dadba9db95517633c1b2f7220d049e470a (diff) | |
| download | monzero-gui-3aa530aa84b87e6e06d97d15de41e0864dadf80c.tar.gz monzero-gui-3aa530aa84b87e6e06d97d15de41e0864dadf80c.tar.xz monzero-gui-3aa530aa84b87e6e06d97d15de41e0864dadf80c.zip | |
Merge pull request #3345
6b0cb8d support pruning of new databases (benevanoff)
Diffstat (limited to 'src/daemon')
| -rw-r--r-- | src/daemon/DaemonManager.cpp | 16 | ||||
| -rw-r--r-- | src/daemon/DaemonManager.h | 3 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/daemon/DaemonManager.cpp b/src/daemon/DaemonManager.cpp index bbbf263e..ad8bab16 100644 --- a/src/daemon/DaemonManager.cpp +++ b/src/daemon/DaemonManager.cpp @@ -27,6 +27,7 @@ // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "DaemonManager.h" +#include "common/util.h" #include <QElapsedTimer> #include <QFile> #include <QMutexLocker> @@ -47,7 +48,7 @@ namespace { static const int DAEMON_START_TIMEOUT_SECONDS = 120; } -bool DaemonManager::start(const QString &flags, NetworkType::Type nettype, const QString &dataDir, const QString &bootstrapNodeAddress, bool noSync /* = false*/) +bool DaemonManager::start(const QString &flags, NetworkType::Type nettype, const QString &dataDir, const QString &bootstrapNodeAddress, bool noSync /* = false*/, bool pruneBlockchain /* = false*/) { if (!QFileInfo(m_monerod).isFile()) { @@ -85,6 +86,12 @@ bool DaemonManager::start(const QString &flags, NetworkType::Type nettype, const arguments << "--bootstrap-daemon-address" << bootstrapNodeAddress; } + if (pruneBlockchain) { + if (!checkLmdbExists(dataDir)) { // check that DB has not already been created + arguments << "--prune-blockchain"; + } + } + if (noSync) { arguments << "--no-sync"; } @@ -323,6 +330,13 @@ QVariantMap DaemonManager::validateDataDir(const QString &dataDir) const return result; } +bool DaemonManager::checkLmdbExists(QString datadir) { + if (datadir.isEmpty() || datadir.isNull()) { + datadir = QString::fromStdString(tools::get_default_data_dir()); + } + return validateDataDir(datadir).value("lmdbExists").value<bool>(); +} + DaemonManager::DaemonManager(QObject *parent) : QObject(parent) , m_scheduler(this) diff --git a/src/daemon/DaemonManager.h b/src/daemon/DaemonManager.h index ac94c50d..2f884665 100644 --- a/src/daemon/DaemonManager.h +++ b/src/daemon/DaemonManager.h @@ -47,7 +47,7 @@ public: explicit DaemonManager(QObject *parent = 0); ~DaemonManager(); - Q_INVOKABLE bool start(const QString &flags, NetworkType::Type nettype, const QString &dataDir = "", const QString &bootstrapNodeAddress = "", bool noSync = false); + Q_INVOKABLE bool start(const QString &flags, NetworkType::Type nettype, const QString &dataDir = "", const QString &bootstrapNodeAddress = "", bool noSync = false, bool pruneBlockchain = false); Q_INVOKABLE void stopAsync(NetworkType::Type nettype, const QJSValue& callback); Q_INVOKABLE bool noSync() const noexcept; @@ -57,6 +57,7 @@ public: Q_INVOKABLE void sendCommandAsync(const QStringList &cmd, NetworkType::Type nettype, const QJSValue& callback) const; Q_INVOKABLE void exit(); Q_INVOKABLE QVariantMap validateDataDir(const QString &dataDir) const; + Q_INVOKABLE bool checkLmdbExists(QString datadir); private: |
