Upgrading to 0.8: re-use blkNNNN.dat files.
This commit is contained in:
parent
da8c5c9f4e
commit
f4445f9982
1 changed files with 27 additions and 0 deletions
27
src/init.cpp
27
src/init.cpp
|
@ -729,6 +729,33 @@ bool AppInit2()
|
|||
return InitError(msg);
|
||||
}
|
||||
|
||||
// Upgrading to 0.8; hard-link the old blknnnn.dat files into /blocks/
|
||||
filesystem::path blocksDir = GetDataDir() / "blocks";
|
||||
if (!filesystem::exists(blocksDir))
|
||||
{
|
||||
filesystem::create_directories(blocksDir);
|
||||
bool linked = false;
|
||||
for (unsigned int i = 1; i < 10000; i++) {
|
||||
filesystem::path source = GetDataDir() / strprintf("blk%04u.dat", i);
|
||||
if (!filesystem::exists(source)) break;
|
||||
filesystem::path dest = blocksDir / strprintf("blk%05u.dat", i-1);
|
||||
try {
|
||||
filesystem::create_hard_link(source, dest);
|
||||
printf("Hardlinked %s -> %s\n", source.string().c_str(), dest.string().c_str());
|
||||
linked = true;
|
||||
} catch (filesystem::filesystem_error & e) {
|
||||
// Note: hardlink creation failing is not a disaster, it just means
|
||||
// blocks will get re-downloaded from peers.
|
||||
printf("Error hardlinking blk%04u.dat : %s\n", i, e.what());
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (linked)
|
||||
{
|
||||
fReindex = true;
|
||||
}
|
||||
}
|
||||
|
||||
// cache size calculations
|
||||
size_t nTotalCache = GetArg("-dbcache", 25) << 20;
|
||||
if (nTotalCache < (1 << 22))
|
||||
|
|
Loading…
Reference in a new issue