aboutsummaryrefslogtreecommitdiff
path: root/src/leveldb.cpp
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2012-10-21 21:23:13 +0200
committerPieter Wuille <pieter.wuille@gmail.com>2012-11-09 01:06:32 +0100
commit7fea48467442079cd0b4021b580761d7e33fa8a1 (patch)
treeb750e95c08a92a39df49a3325c1f124a3e2c7744 /src/leveldb.cpp
parent7a5b7535bf3b987c5e2157f25c8b3246033d952e (diff)
downloadbitcoin-7fea48467442079cd0b4021b580761d7e33fa8a1.tar.xz
Add -reindex, to perform in-place reindexing of block chain files
Flushes the blktree/ and coins/ databases, and reindexes the block chain files, as if their contents was loaded via -loadblock. Based on earlier work by Jeff Garzik.
Diffstat (limited to 'src/leveldb.cpp')
-rw-r--r--src/leveldb.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/leveldb.cpp b/src/leveldb.cpp
index 58b75e5295..9e2f32a171 100644
--- a/src/leveldb.cpp
+++ b/src/leveldb.cpp
@@ -21,7 +21,7 @@ static leveldb::Options GetOptions(size_t nCacheSize) {
return options;
}
-CLevelDB::CLevelDB(const boost::filesystem::path &path, size_t nCacheSize, bool fMemory) {
+CLevelDB::CLevelDB(const boost::filesystem::path &path, size_t nCacheSize, bool fMemory, bool fWipe) {
penv = NULL;
readoptions.verify_checksums = true;
iteroptions.verify_checksums = true;
@@ -33,6 +33,10 @@ CLevelDB::CLevelDB(const boost::filesystem::path &path, size_t nCacheSize, bool
penv = leveldb::NewMemEnv(leveldb::Env::Default());
options.env = penv;
} else {
+ if (fWipe) {
+ printf("Wiping LevelDB in %s\n", path.string().c_str());
+ leveldb::DestroyDB(path.string(), options);
+ }
boost::filesystem::create_directory(path);
printf("Opening LevelDB in %s\n", path.string().c_str());
}