Stop special-casing phashBlock handling in validation for TBV
This commit is contained in:
parent
5d132e8b97
commit
9c5a4a6ed8
1 changed files with 4 additions and 5 deletions
|
@ -1771,9 +1771,7 @@ bool CChainState::ConnectBlock(const CBlock& block, CValidationState& state, CBl
|
||||||
{
|
{
|
||||||
AssertLockHeld(cs_main);
|
AssertLockHeld(cs_main);
|
||||||
assert(pindex);
|
assert(pindex);
|
||||||
// pindex->phashBlock can be null if called by CreateNewBlock/TestBlockValidity
|
assert(*pindex->phashBlock == block.GetHash());
|
||||||
assert((pindex->phashBlock == nullptr) ||
|
|
||||||
(*pindex->phashBlock == block.GetHash()));
|
|
||||||
int64_t nTimeStart = GetTimeMicros();
|
int64_t nTimeStart = GetTimeMicros();
|
||||||
|
|
||||||
// Check it again in case a previous version let a bad block in
|
// Check it again in case a previous version let a bad block in
|
||||||
|
@ -1847,8 +1845,7 @@ bool CChainState::ConnectBlock(const CBlock& block, CValidationState& state, CBl
|
||||||
// Now that the whole chain is irreversibly beyond that time it is applied to all blocks except the
|
// Now that the whole chain is irreversibly beyond that time it is applied to all blocks except the
|
||||||
// two in the chain that violate it. This prevents exploiting the issue against nodes during their
|
// two in the chain that violate it. This prevents exploiting the issue against nodes during their
|
||||||
// initial block download.
|
// initial block download.
|
||||||
bool fEnforceBIP30 = (!pindex->phashBlock) || // Enforce on CreateNewBlock invocations which don't have a hash.
|
bool fEnforceBIP30 = !((pindex->nHeight==91842 && pindex->GetBlockHash() == uint256S("0x00000000000a4d0a398161ffc163c503763b1f4360639393e0e4c8e300e0caec")) ||
|
||||||
!((pindex->nHeight==91842 && pindex->GetBlockHash() == uint256S("0x00000000000a4d0a398161ffc163c503763b1f4360639393e0e4c8e300e0caec")) ||
|
|
||||||
(pindex->nHeight==91880 && pindex->GetBlockHash() == uint256S("0x00000000000743f190a18c5577a3c2d2a1f610ae9601ac046a38084ccb7cd721")));
|
(pindex->nHeight==91880 && pindex->GetBlockHash() == uint256S("0x00000000000743f190a18c5577a3c2d2a1f610ae9601ac046a38084ccb7cd721")));
|
||||||
|
|
||||||
// Once BIP34 activated it was not possible to create new duplicate coinbases and thus other than starting
|
// Once BIP34 activated it was not possible to create new duplicate coinbases and thus other than starting
|
||||||
|
@ -3417,9 +3414,11 @@ bool TestBlockValidity(CValidationState& state, const CChainParams& chainparams,
|
||||||
AssertLockHeld(cs_main);
|
AssertLockHeld(cs_main);
|
||||||
assert(pindexPrev && pindexPrev == chainActive.Tip());
|
assert(pindexPrev && pindexPrev == chainActive.Tip());
|
||||||
CCoinsViewCache viewNew(pcoinsTip.get());
|
CCoinsViewCache viewNew(pcoinsTip.get());
|
||||||
|
uint256 block_hash(block.GetHash());
|
||||||
CBlockIndex indexDummy(block);
|
CBlockIndex indexDummy(block);
|
||||||
indexDummy.pprev = pindexPrev;
|
indexDummy.pprev = pindexPrev;
|
||||||
indexDummy.nHeight = pindexPrev->nHeight + 1;
|
indexDummy.nHeight = pindexPrev->nHeight + 1;
|
||||||
|
indexDummy.phashBlock = &block_hash;
|
||||||
|
|
||||||
// NOTE: CheckBlockHeader is called by CheckBlock
|
// NOTE: CheckBlockHeader is called by CheckBlock
|
||||||
if (!ContextualCheckBlockHeader(block, state, chainparams, pindexPrev, GetAdjustedTime()))
|
if (!ContextualCheckBlockHeader(block, state, chainparams, pindexPrev, GetAdjustedTime()))
|
||||||
|
|
Loading…
Reference in a new issue