node/chainstate: Add options for in-memory DBs

[META] In a future commit, these options will be used in TestingSetup to
       ensure that the DBs are in-memory.
This commit is contained in:
Carl Dong
2021-09-21 12:10:51 -04:00
parent ceb9790341
commit c541da0d62
3 changed files with 8 additions and 2 deletions

View File

@@ -1415,6 +1415,8 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
cache_sizes.block_tree_db, cache_sizes.block_tree_db,
cache_sizes.coins_db, cache_sizes.coins_db,
cache_sizes.coins, cache_sizes.coins,
false,
false,
ShutdownRequested, ShutdownRequested,
[]() { []() {
uiInterface.ThreadSafeMessageBox( uiInterface.ThreadSafeMessageBox(

View File

@@ -17,6 +17,8 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
int64_t nBlockTreeDBCache, int64_t nBlockTreeDBCache,
int64_t nCoinDBCache, int64_t nCoinDBCache,
int64_t nCoinCacheUsage, int64_t nCoinCacheUsage,
bool block_tree_db_in_memory,
bool coins_db_in_memory,
std::function<bool()> shutdown_requested, std::function<bool()> shutdown_requested,
std::function<void()> coins_error_cb) std::function<void()> coins_error_cb)
{ {
@@ -36,7 +38,7 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
// new CBlockTreeDB tries to delete the existing file, which // new CBlockTreeDB tries to delete the existing file, which
// fails if it's still open from the previous loop. Close it first: // fails if it's still open from the previous loop. Close it first:
pblocktree.reset(); pblocktree.reset();
pblocktree.reset(new CBlockTreeDB(nBlockTreeDBCache, false, fReset)); pblocktree.reset(new CBlockTreeDB(nBlockTreeDBCache, block_tree_db_in_memory, fReset));
if (fReset) { if (fReset) {
pblocktree->WriteReindexing(true); pblocktree->WriteReindexing(true);
@@ -81,7 +83,7 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
for (CChainState* chainstate : chainman.GetAll()) { for (CChainState* chainstate : chainman.GetAll()) {
chainstate->InitCoinsDB( chainstate->InitCoinsDB(
/* cache_size_bytes */ nCoinDBCache, /* cache_size_bytes */ nCoinDBCache,
/* in_memory */ false, /* in_memory */ coins_db_in_memory,
/* should_wipe */ fReset || fReindexChainState); /* should_wipe */ fReset || fReindexChainState);
if (coins_error_cb) { if (coins_error_cb) {

View File

@@ -63,6 +63,8 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
int64_t nBlockTreeDBCache, int64_t nBlockTreeDBCache,
int64_t nCoinDBCache, int64_t nCoinDBCache,
int64_t nCoinCacheUsage, int64_t nCoinCacheUsage,
bool block_tree_db_in_memory,
bool coins_db_in_memory,
std::function<bool()> shutdown_requested = nullptr, std::function<bool()> shutdown_requested = nullptr,
std::function<void()> coins_error_cb = nullptr); std::function<void()> coins_error_cb = nullptr);