mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 22:50:59 +01:00
refactor: Move stopafterblockimport handling out of blockstorage
This has the benefit of moving the StartShutdown call out of the blockstorage file and thus out of the kernel's responsibility. The user can now decide if he wants to start shutdown / interrupt after a block import or not.
This commit is contained in:
committed by
Sebastian Kung
parent
ef29d5d7e2
commit
462390c85f
@@ -114,7 +114,6 @@
|
||||
#include <zmq/zmqrpc.h>
|
||||
#endif
|
||||
|
||||
using kernel::DEFAULT_STOPAFTERBLOCKIMPORT;
|
||||
using kernel::DumpMempool;
|
||||
using kernel::ValidationCacheSizes;
|
||||
|
||||
@@ -136,6 +135,7 @@ using node::VerifyLoadedChainstate;
|
||||
static constexpr bool DEFAULT_PROXYRANDOMIZE{true};
|
||||
static constexpr bool DEFAULT_REST_ENABLE{false};
|
||||
static constexpr bool DEFAULT_I2P_ACCEPT_INCOMING{true};
|
||||
static constexpr bool DEFAULT_STOPAFTERBLOCKIMPORT{false};
|
||||
|
||||
#ifdef WIN32
|
||||
// Win32 LevelDB doesn't use filedescriptors, and the ones used for
|
||||
@@ -1653,6 +1653,12 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
|
||||
chainman.m_thread_load = std::thread(&util::TraceThread, "initload", [=, &chainman, &args, &node] {
|
||||
// Import blocks
|
||||
ImportBlocks(chainman, vImportFiles);
|
||||
if (args.GetBoolArg("-stopafterblockimport", DEFAULT_STOPAFTERBLOCKIMPORT)) {
|
||||
LogPrintf("Stopping after block import\n");
|
||||
StartShutdown();
|
||||
return;
|
||||
}
|
||||
|
||||
// Start indexes initial sync
|
||||
if (!StartIndexBackgroundSync(node)) {
|
||||
bilingual_str err_str = _("Failed to start indexes, shutting down..");
|
||||
|
||||
@@ -14,8 +14,6 @@ class CChainParams;
|
||||
|
||||
namespace kernel {
|
||||
|
||||
static constexpr bool DEFAULT_STOPAFTERBLOCKIMPORT{false};
|
||||
|
||||
/**
|
||||
* An options struct for `BlockManager`, more ergonomically referred to as
|
||||
* `BlockManager::Options` due to the using-declaration in `BlockManager`.
|
||||
@@ -24,7 +22,6 @@ struct BlockManagerOpts {
|
||||
const CChainParams& chainparams;
|
||||
uint64_t prune_target{0};
|
||||
bool fast_prune{false};
|
||||
bool stop_after_block_import{DEFAULT_STOPAFTERBLOCKIMPORT};
|
||||
const fs::path blocks_dir;
|
||||
Notifications& notifications;
|
||||
};
|
||||
|
||||
@@ -32,7 +32,6 @@ util::Result<void> ApplyArgsManOptions(const ArgsManager& args, BlockManager::Op
|
||||
opts.prune_target = nPruneTarget;
|
||||
|
||||
if (auto value{args.GetBoolArg("-fastprune")}) opts.fast_prune = *value;
|
||||
if (auto value{args.GetBoolArg("-stopafterblockimport")}) opts.stop_after_block_import = *value;
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
@@ -946,12 +946,6 @@ void ImportBlocks(ChainstateManager& chainman, std::vector<fs::path> vImportFile
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (chainman.m_blockman.StopAfterBlockImport()) {
|
||||
LogPrintf("Stopping after block import\n");
|
||||
StartShutdown();
|
||||
return;
|
||||
}
|
||||
} // End scope of ImportingNow
|
||||
}
|
||||
} // namespace node
|
||||
|
||||
@@ -213,8 +213,6 @@ public:
|
||||
|
||||
[[nodiscard]] bool LoadingBlocks() const { return m_importing || fReindex; }
|
||||
|
||||
[[nodiscard]] bool StopAfterBlockImport() const { return m_opts.stop_after_block_import; }
|
||||
|
||||
/** Calculate the amount of disk space the block & undo files currently use */
|
||||
uint64_t CalculateCurrentUsage();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user