"Activation of segwit is defined by BIP9. After 15 Nov 2016 and
before 15 Nov 2017 UTC, if in a full retarget cycle at least 1916 out of
2016 blocks is signaling readiness, segwit will be activated in the
retarget cycle after the next one"
Just change BIP9 and the code to say "if in a full retarget cycle at
least 1 out of 2016 blocks" and call it done. Or something very similar to this that effectively does the exact same thing. :) Wasting too much time on
this. 15 Nov 2017 is plenty of time to be ready for SegWit, and if a participant is not ready by then they are either unreasonably lazy, a manipulator, or manipluted, and we don't need them.
-------- Original Message --------Subject: Re: [bitcoin-dev] Flag day activation of segwitLocal Time: March 13, 2017 5:18 PMUTC Time: March 13, 2017 10:18 PMFrom: bitcoin-dev@lists.linuxfoundation.orgTo: shaolinfry <shaolinfry@protonmail.ch>, Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>>time >= 1506816000 && time <= 1510704000 && !IsWitnessEnabled()This has a different start time from the first post.>if (pindex->GetMedianTimePast() >= 1538352000 && pindex->GetMedianTimePast() <= 1510704000 ...Thanks,--NickOn Mon, Mar 13, 2017 at 4:36 AM, shaolinfry via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:From: luke@dashjr.orgOn Sunday, March 12, 2017 3:50:27 PM shaolinfry via bitcoin-dev wrote:> // mandatory segwit activation between Oct 1st 2017 and Nov 15th 2017> inclusive if (pindex->GetMedianTimePast() >= 1538352000 &&> pindex->GetMedianTimePast() <= 1510704000 &&> !IsWitnessEnabled(pindex->pprev, chainparams.GetConsensus())) { > if (!((pindex->nVersion & VERSIONBITS_TOP_MASK) ==> VERSIONBITS_TOP_BITS) && (pindex->nVersion & VersionBitsMask(params,> Consensus::DEPLOYMENT_SEGWIT)) != 0) {> return state.DoS(2, error("ConnectBlock(): relayed block must> signal for segwit, please upgrade"), REJECT_INVALID,> "bad-no-segwit");> }> }I don't think this is actually BIP 9 compatible. Once activated, the bit losesits meaning and should not be set. So you need to check that it hasn't locked-in already...I believe that is handled.time >= 1506816000 && time <= 1510704000 && !IsWitnessEnabled()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.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. It also adds unnecessary complexity to an otherwise simple patch.That said, I have no strong feelings either way on both counts, but I chose to present the simplest option first._______________________________________________ bitcoin-dev mailing list