|
|
@ -38,13 +38,14 @@ While this BIP is active, all blocks must set the nVersion header top 3 bits to |
|
|
|
|
|
|
|
<pre> |
|
|
|
// BIP148 mandatory segwit signalling. |
|
|
|
if (pindex->GetMedianTimePast() >= 1501545600 && // Tue 1 Aug 2017 00:00:00 UTC |
|
|
|
pindex->GetMedianTimePast() <= 1510704000 && // Wed 15 Nov 2017 00:00:00 UTC |
|
|
|
!IsWitnessEnabled(pindex->pprev, chainparams.GetConsensus())) |
|
|
|
int64_t nMedianTimePast = pindex->GetMedianTimePast(); |
|
|
|
if ( (nMedianTimePast >= 1501545600) && // Tue 01 Aug 2017 00:00:00 UTC |
|
|
|
(nMedianTimePast <= 1510704000) && // Wed 15 Nov 2017 00:00:00 UTC |
|
|
|
(!IsWitnessEnabled(pindex->pprev, chainparams.GetConsensus())) ) // Segwit is not active |
|
|
|
{ |
|
|
|
// versionbits topbit and segwit flag must be set. |
|
|
|
if ((pindex->nVersion & VERSIONBITS_TOP_MASK) != VERSIONBITS_TOP_BITS || |
|
|
|
(pindex->nVersion & VersionBitsMask(chainparams.GetConsensus(), Consensus::DEPLOYMENT_SEGWIT)) == 0) { |
|
|
|
bool fVersionBits = (pindex->nVersion & VERSIONBITS_TOP_MASK) == VERSIONBITS_TOP_BITS; // BIP9 bit set |
|
|
|
bool fSegbit = (pindex->nVersion & VersionBitsMask(chainparams.GetConsensus(), Consensus::DEPLOYMENT_SEGWIT)) != 0; // segwit bit set |
|
|
|
if (!(fVersionBits && fSegbit)) { |
|
|
|
return state.DoS(0, error("ConnectBlock(): relayed block must signal for segwit, please upgrade"), REJECT_INVALID, "bad-no-segwit"); |
|
|
|
} |
|
|
|
} |
|
|
|