aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorPieter Wuille <[email protected]>2012-12-05 14:15:17 -0800
committerPieter Wuille <[email protected]>2012-12-05 14:15:17 -0800
commitcd1391ae4d744243fa3183f9a93d09ad812d4468 (patch)
tree83a6bf65ddaf3c5b5750ebb158a9234dd817ea98 /src/main.cpp
parentMerge pull request #2063 from Diapolo/CDiskBlockPos (diff)
parentOnly send reorged txn to mempool after checkpoint (diff)
downloaddiscoin-cd1391ae4d744243fa3183f9a93d09ad812d4468.tar.xz
discoin-cd1391ae4d744243fa3183f9a93d09ad812d4468.zip
Merge pull request #2056 from sipa/fix_2052
Fixes for obscure mempool-checkpoint interaction
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 84571e11e..756b8ff3d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1723,9 +1723,11 @@ bool SetBestChain(CBlockIndex* pindexNew)
if (!block.DisconnectBlock(pindex, view))
return error("SetBestBlock() : DisconnectBlock %s failed", BlockHashStr(pindex->GetBlockHash()).c_str());
- // Queue memory transactions to resurrect
+ // Queue memory transactions to resurrect.
+ // We only do this for blocks after the last checkpoint (reorganisation before that
+ // point should only happen with -reindex/-loadblock, or a misbehaving peer.
BOOST_FOREACH(const CTransaction& tx, block.vtx)
- if (!tx.IsCoinBase())
+ if (!tx.IsCoinBase() && pindex->nHeight > Checkpoints::GetTotalBlocksEstimate())
vResurrect.push_back(tx);
}
@@ -1774,7 +1776,7 @@ bool SetBestChain(CBlockIndex* pindexNew)
// Resurrect memory transactions that were in the disconnected branch
BOOST_FOREACH(CTransaction& tx, vResurrect)
- tx.AcceptToMemoryPool(false);
+ tx.AcceptToMemoryPool();
// Delete redundant memory transactions that are in the connected branch
BOOST_FOREACH(CTransaction& tx, vDelete) {