aboutsummaryrefslogtreecommitdiff
path: root/src/node
diff options
context:
space:
mode:
Diffstat (limited to 'src/node')
-rw-r--r--src/node/chainstate.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/node/chainstate.cpp b/src/node/chainstate.cpp
index ba1024d22e..fa521a9e03 100644
--- a/src/node/chainstate.cpp
+++ b/src/node/chainstate.cpp
@@ -10,12 +10,14 @@
#include <consensus/params.h>
#include <logging.h>
#include <node/blockstorage.h>
+#include <node/database_args.h>
#include <node/caches.h>
#include <sync.h>
#include <threadsafety.h>
#include <tinyformat.h>
#include <txdb.h>
#include <uint256.h>
+#include <util/system.h>
#include <util/time.h>
#include <util/translation.h>
#include <validation.h>
@@ -64,7 +66,12 @@ ChainstateLoadResult LoadChainstate(ChainstateManager& chainman, const CacheSize
// new CBlockTreeDB tries to delete the existing file, which
// fails if it's still open from the previous loop. Close it first:
pblocktree.reset();
- pblocktree.reset(new CBlockTreeDB(cache_sizes.block_tree_db, options.block_tree_db_in_memory, options.reindex));
+ pblocktree = std::make_unique<CBlockTreeDB>(DBParams{
+ .path = gArgs.GetDataDirNet() / "blocks" / "index",
+ .cache_bytes = static_cast<size_t>(cache_sizes.block_tree_db),
+ .memory_only = options.block_tree_db_in_memory,
+ .wipe_data = options.reindex,
+ .options = [] { DBOptions options; node::ReadDatabaseArgs(gArgs, options); return options; }()});
if (options.reindex) {
pblocktree->WriteReindexing(true);