|
|
|
@ -1985,7 +1985,7 @@ bool static DisconnectTip(CValidationState &state) {
|
|
|
|
|
BOOST_FOREACH(const CTransaction &tx, block.vtx) {
|
|
|
|
|
// ignore validation errors in resurrected transactions
|
|
|
|
|
list<CTransaction> removed;
|
|
|
|
|
CValidationState stateDummy;
|
|
|
|
|
CValidationState stateDummy;
|
|
|
|
|
if (!tx.IsCoinBase())
|
|
|
|
|
if (!AcceptToMemoryPool(mempool, stateDummy, tx, false, NULL))
|
|
|
|
|
mempool.remove(tx, removed, true);
|
|
|
|
@ -2213,7 +2213,6 @@ CBlockIndex* AddToBlockIndex(CBlockHeader& block)
|
|
|
|
|
return pindexNew;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Mark a block as having its data received and checked (up to BLOCK_VALID_TRANSACTIONS).
|
|
|
|
|
bool ReceivedBlockTransactions(const CBlock &block, CValidationState& state, CBlockIndex *pindexNew, const CDiskBlockPos& pos)
|
|
|
|
|
{
|
|
|
|
@ -2246,7 +2245,6 @@ bool ReceivedBlockTransactions(const CBlock &block, CValidationState& state, CBl
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAddSize, unsigned int nHeight, uint64_t nTime, bool fKnown = false)
|
|
|
|
|
{
|
|
|
|
|
bool fUpdatedLast = false;
|
|
|
|
@ -2341,7 +2339,6 @@ bool FindUndoPos(CValidationState &state, int nFile, CDiskBlockPos &pos, unsigne
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool CheckBlockHeader(const CBlockHeader& block, CValidationState& state, bool fCheckPOW)
|
|
|
|
|
{
|
|
|
|
|
// Check proof of work matches claimed amount
|
|
|
|
@ -4455,8 +4452,8 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
|
|
|
|
|
// in flight for over two minutes, since we first had a chance to
|
|
|
|
|
// process an incoming block.
|
|
|
|
|
int64_t nNow = GetTimeMicros();
|
|
|
|
|
if (!pto->fDisconnect && state.nBlocksInFlight &&
|
|
|
|
|
state.nLastBlockReceive < state.nLastBlockProcess - BLOCK_DOWNLOAD_TIMEOUT*1000000 &&
|
|
|
|
|
if (!pto->fDisconnect && state.nBlocksInFlight &&
|
|
|
|
|
state.nLastBlockReceive < state.nLastBlockProcess - BLOCK_DOWNLOAD_TIMEOUT*1000000 &&
|
|
|
|
|
state.vBlocksInFlight.front().nTime < state.nLastBlockProcess - 2*BLOCK_DOWNLOAD_TIMEOUT*1000000) {
|
|
|
|
|
LogPrintf("Peer %s is stalling block download, disconnecting\n", state.name.c_str());
|
|
|
|
|
pto->fDisconnect = true;
|
|
|
|
|