mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-18 22:35:39 +01:00
Merge pull request #2851 from TheBlueMatt/master
Prepare for mempool testing in pull-tester and fix multi-block transaction resurrection
This commit is contained in:
12
src/main.cpp
12
src/main.cpp
@@ -810,9 +810,9 @@ bool CTxMemPool::accept(CValidationState &state, CTransaction &tx, bool fLimitFr
|
||||
if ((int64)tx.nLockTime > std::numeric_limits<int>::max())
|
||||
return error("CTxMemPool::accept() : not accepting nLockTime beyond 2038 yet");
|
||||
|
||||
// Rather not work on nonstandard transactions (unless -testnet)
|
||||
// Rather not work on nonstandard transactions (unless -testnet/-regtest)
|
||||
string reason;
|
||||
if (!TestNet() && !IsStandardTx(tx, reason))
|
||||
if (Params().NetworkID() == CChainParams::MAIN && !IsStandardTx(tx, reason))
|
||||
return error("CTxMemPool::accept() : nonstandard transaction: %s",
|
||||
reason.c_str());
|
||||
|
||||
@@ -888,7 +888,7 @@ bool CTxMemPool::accept(CValidationState &state, CTransaction &tx, bool fLimitFr
|
||||
}
|
||||
|
||||
// Check for non-standard pay-to-script-hash in inputs
|
||||
if (!TestNet() && !AreInputsStandard(tx, view))
|
||||
if (Params().NetworkID() == CChainParams::MAIN && !AreInputsStandard(tx, view))
|
||||
return error("CTxMemPool::accept() : nonstandard transaction input");
|
||||
|
||||
// Note: if you modify this code to accept non-standard transactions, then
|
||||
@@ -1938,7 +1938,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
|
||||
}
|
||||
|
||||
// Disconnect shorter branch
|
||||
vector<CTransaction> vResurrect;
|
||||
list<CTransaction> vResurrect;
|
||||
BOOST_FOREACH(CBlockIndex* pindex, vDisconnect) {
|
||||
CBlock block;
|
||||
if (!ReadBlockFromDisk(block, pindex))
|
||||
@@ -1952,9 +1952,9 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
|
||||
// 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)
|
||||
BOOST_REVERSE_FOREACH(const CTransaction& tx, block.vtx)
|
||||
if (!tx.IsCoinBase() && pindex->nHeight > Checkpoints::GetTotalBlocksEstimate())
|
||||
vResurrect.push_back(tx);
|
||||
vResurrect.push_front(tx);
|
||||
}
|
||||
|
||||
// Connect longer branch
|
||||
|
||||
Reference in New Issue
Block a user