|
|
|
@ -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))
|
|
|
|
|