summaryrefslogtreecommitdiff
path: root/bip-0148.mediawiki
diff options
context:
space:
mode:
Diffstat (limited to 'bip-0148.mediawiki')
-rw-r--r--bip-0148.mediawiki13
1 files changed, 9 insertions, 4 deletions
diff --git a/bip-0148.mediawiki b/bip-0148.mediawiki
index 767c084..13ad4cd 100644
--- a/bip-0148.mediawiki
+++ b/bip-0148.mediawiki
@@ -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");
}
}