<blockquote class="protonmail_quote" type="cite"><div>From: luke@dashjr.org<br></div><div>On Sunday, March 12, 2017 3:50:27 PM shaolinfry via bitcoin-dev wrote:<br></div><div>&gt; // mandatory segwit activation between Oct 1st 2017 and Nov 15th 2017<br></div><div>&gt; inclusive if (pindex-&gt;GetMedianTimePast() &gt;= 1538352000 &amp;&amp;<br></div><div>&gt; pindex-&gt;GetMedianTimePast() &lt;= 1510704000 &amp;&amp;<br></div><div>&gt; !IsWitnessEnabled(pindex-&gt;pprev, chainparams.GetConsensus())) {<br></div><div>&gt;     if (!((pindex-&gt;nVersion &amp; VERSIONBITS_TOP_MASK) ==<br></div><div>&gt;     VERSIONBITS_TOP_BITS) &amp;&amp; (pindex-&gt;nVersion &amp; VersionBitsMask(params,<br></div><div>&gt;     Consensus::DEPLOYMENT_SEGWIT)) != 0) {<br></div><div>&gt;         return state.DoS(2, error("ConnectBlock(): relayed block must<br></div><div>&gt;         signal for segwit, please upgrade"), REJECT_INVALID,<br></div><div>&gt;         "bad-no-segwit");<br></div><div>&gt;     }<br></div><div>&gt; }<br></div><div><br></div><div>I don't think this is actually BIP 9 compatible. Once activated, the bit loses <br></div><div>its meaning and should not be set. So you need to check that it hasn't locked-<br></div><div>in already...<br></div></blockquote><div><br></div><div>I believe that is handled. <br></div><div><br></div><div>time &gt;= 1506816000 &amp;&amp; time &lt;= 1510704000 &amp;&amp; !IsWitnessEnabled()<br></div><div><br></div><div>Signalling is only required from October 1st until the BIP9 timeout, or, until segwit is activated. The bit becomes  free after activation/timeout as per BIP9. Also, the default behaviour of BIP9 in Bitcoin Core is to signal through the LOCKED_IN period - it would be trivial to add a condition to not require mandatory signalling during  LOCKED_IN but since miners signal by default during this period, I figured I would leave it.<br></div><div><br></div><div>I thought about 5% tolerance. but I don't think it makes sense since miners will already have plenty of warning this is coming up and the intent of the mandatory signalling period is quite clear. It also seems a bit weird to say "it's mandatory but not for 5%". If miners are required to signal, they need to signal.&nbsp;It also adds unnecessary complexity to an otherwise simple patch.<br></div><div><br></div><div>That said, I have no strong feelings either way on both counts, but I chose to present the simplest option first.<br></div>