Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 361487AA for ; Mon, 13 Mar 2017 03:01:59 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from zinan.dashjr.org (zinan.dashjr.org [192.3.11.21]) by smtp1.linuxfoundation.org (Postfix) with ESMTP id 840AF1CB for ; Mon, 13 Mar 2017 03:01:58 +0000 (UTC) Received: from ishibashi.localnet (unknown [IPv6:2001:470:5:265:a45d:823b:2d27:961c]) (Authenticated sender: luke-jr) by zinan.dashjr.org (Postfix) with ESMTPSA id 1BB3838ABE7C; Mon, 13 Mar 2017 03:01:42 +0000 (UTC) X-Hashcash: 1:25:170313:bitcoin-dev@lists.linuxfoundation.org::K4X2q/PK+8xZUCKC:aBvAY X-Hashcash: 1:25:170313:shaolinfry@protonmail.ch::yQUxNuVS0W0bGKXZ:F5vQ From: Luke Dashjr To: bitcoin-dev@lists.linuxfoundation.org, shaolinfry Date: Mon, 13 Mar 2017 03:01:40 +0000 User-Agent: KMail/1.13.7 (Linux/4.4.45-gentoo; KDE/4.14.28; x86_64; ; ) References: In-Reply-To: X-PGP-Key-Fingerprint: E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F X-PGP-Key-ID: BD02942421F4889F X-PGP-Keyserver: hkp://pgp.mit.edu MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201703130301.41315.luke@dashjr.org> X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: Re: [bitcoin-dev] Flag day activation of segwit X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Mar 2017 03:01:59 -0000 On 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 loses its meaning and should not be set. So you need to check that it hasn't locked- in already... Also, IMO this should tolerate as many as 5% minus one non-signalling blocks. Disclaimer: This are technical suggestions, and do not imply endorsement of the idea. Luke