Add two hour buffer to manual pruning

This commit is contained in:
Alex Morcos 2017-02-16 11:07:15 -05:00
parent afae75fd3d
commit 91fb506e0a

View file

@ -820,7 +820,8 @@ UniValue pruneblockchain(const JSONRPCRequest& request)
throw runtime_error( throw runtime_error(
"pruneblockchain\n" "pruneblockchain\n"
"\nArguments:\n" "\nArguments:\n"
"1. \"height\" (numeric, required) The block height to prune up to. May be set to a discrete height, or to a unix timestamp to prune based on block time.\n" "1. \"height\" (numeric, required) The block height to prune up to. May be set to a discrete height, or a unix timestamp\n"
" to prune blocks whose block time is at least 2 hours older than the provided timestamp.\n"
"\nResult:\n" "\nResult:\n"
"n (numeric) Height of the last block pruned.\n" "n (numeric) Height of the last block pruned.\n"
"\nExamples:\n" "\nExamples:\n"
@ -839,7 +840,8 @@ UniValue pruneblockchain(const JSONRPCRequest& request)
// Height value more than a billion is too high to be a block height, and // Height value more than a billion is too high to be a block height, and
// too low to be a block time (corresponds to timestamp from Sep 2001). // too low to be a block time (corresponds to timestamp from Sep 2001).
if (heightParam > 1000000000) { if (heightParam > 1000000000) {
CBlockIndex* pindex = chainActive.FindEarliestAtLeast(heightParam); // Add a 2 hour buffer to include blocks which might have had old timestamps
CBlockIndex* pindex = chainActive.FindEarliestAtLeast(heightParam - 7200);
if (!pindex) { if (!pindex) {
throw JSONRPCError(RPC_INTERNAL_ERROR, "Could not find block with at least the specified timestamp."); throw JSONRPCError(RPC_INTERNAL_ERROR, "Could not find block with at least the specified timestamp.");
} }