mirror of
https://github.com/bitcoin/bips.git
synced 2024-11-19 09:50:06 +01:00
Update BIP148
Adjust start time to Aug 1st 2017 Fix code sample logic.
This commit is contained in:
parent
6925e66aa0
commit
60d4b512b8
@ -30,16 +30,21 @@ It is hoped that miners will respond to this BIP by activating segwit early, bef
|
||||
|
||||
All times are specified according to median past time.
|
||||
|
||||
This BIP will be activate between midnight October 1st 2017 (epoch time 1506816000) and midnight November 15th 2017 (epoch time 1510704000) if the existing segwit deployment is not activated before epoch time 1506816000. This BIP will cease to be active when the existing segwit deployment activates.
|
||||
This BIP will be activate between midnight August 1st 2017 (epoch time 1501545600) and midnight November 15th 2017 (epoch time 1510704000) if the existing segwit deployment is not activated before epoch time 1501545600. This BIP will cease to be active when the existing segwit deployment activates.
|
||||
|
||||
While this BIP is active, all blocks must set the nVersion header top 3 bits to 001 together with bit field (1<<1) (according to the existing segwit deployment). Blocks that do not signal as required will be rejected.
|
||||
|
||||
=== Reference implementation ===
|
||||
|
||||
<pre>
|
||||
// mandatory segwit activation between Oct 1st 2017 and Nov 15th 2017 inclusive
|
||||
if (pindex->GetMedianTimePast() >= 1506816000 && pindex->GetMedianTimePast() <= 1510704000 && !IsWitnessEnabled(pindex->pprev, chainparams.GetConsensus())) {
|
||||
if (!((pindex->nVersion & VERSIONBITS_TOP_MASK) == VERSIONBITS_TOP_BITS) && (pindex->nVersion & VersionBitsMask(chainparams.GetConsensus(), Consensus::DEPLOYMENT_SEGWIT)) != 0) {
|
||||
// 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()))
|
||||
{
|
||||
// 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) {
|
||||
return state.DoS(0, error("ConnectBlock(): relayed block must signal for segwit, please upgrade"), REJECT_INVALID, "bad-no-segwit");
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user