diff options
author | MarcoFalke <falke.marco@gmail.com> | 2017-09-06 13:48:00 -0700 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2017-09-06 13:49:25 -0700 |
commit | bc561b4b7d6a3f71649d37d5eb9047c29efa2b13 (patch) | |
tree | b95d6bc057fbab7a220844f1fc25d5224efcaf40 /src/validation.cpp | |
parent | 961901f77e55aa07d5048000d57bcd218ae74b08 (diff) | |
parent | 1aa97ee088ea03dd208be054c5ad9198c1f13329 (diff) | |
download | bitcoin-bc561b4b7d6a3f71649d37d5eb9047c29efa2b13.tar.xz |
Merge #11099: [RPC][mempool]: Add savemempool RPC
1aa97ee08 Add savemempool RPC (Lawrence Nahum)
467cbbcbf Add return value to DumpMempool (Lawrence Nahum)
Pull request description:
Adds a simple parameterless rpc command to dump the mempool.
Rationale:
Sometimes there can be a crash for whatever reason (bug, power loss, etc) causing the mempool.dat file to not be saved.
This change allows to script/cron the rpc call to have more regular saves to the file as well as cli/ad-hoc.
This should solve issue https://github.com/bitcoin/bitcoin/issues/11086
Tree-SHA512: e856ae9777425a4521279c9b58e69285d8e374790bebefd3284cf91931eac0e456f86224f427a087a01bf70440bf6e439fa02c8a34940eb1046ae473e98b6aaa
Diffstat (limited to 'src/validation.cpp')
-rw-r--r-- | src/validation.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/validation.cpp b/src/validation.cpp index 0edc9bc32a..d1ef11759c 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -4331,7 +4331,7 @@ bool LoadMempool(void) return true; } -void DumpMempool(void) +bool DumpMempool(void) { int64_t start = GetTimeMicros(); @@ -4351,7 +4351,7 @@ void DumpMempool(void) try { FILE* filestr = fsbridge::fopen(GetDataDir() / "mempool.dat.new", "wb"); if (!filestr) { - return; + return false; } CAutoFile file(filestr, SER_DISK, CLIENT_VERSION); @@ -4375,7 +4375,9 @@ void DumpMempool(void) LogPrintf("Dumped mempool: %gs to copy, %gs to dump\n", (mid-start)*MICRO, (last-mid)*MICRO); } catch (const std::exception& e) { LogPrintf("Failed to dump mempool: %s. Continuing anyway.\n", e.what()); + return false; } + return true; } //! Guess how far we are in the verification process at the given block index |