Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 14F5F927 for ; Thu, 13 Jul 2017 01:48:36 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from azure.erisian.com.au (cerulean.erisian.com.au [139.162.42.226]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 5728D86 for ; Thu, 13 Jul 2017 01:48:35 +0000 (UTC) Received: from aj@azure.erisian.com.au (helo=sapphire.erisian.com.au) by azure.erisian.com.au with esmtpsa (Exim 4.84_2 #1 (Debian)) id 1dVTF2-0003LF-0v for ; Thu, 13 Jul 2017 11:48:33 +1000 Received: by sapphire.erisian.com.au (sSMTP sendmail emulation); Thu, 13 Jul 2017 11:48:26 +1000 Date: Thu, 13 Jul 2017 11:48:26 +1000 From: Anthony Towns To: bitcoin-dev@lists.linuxfoundation.org Message-ID: <20170713014826.GA12388@erisian.com.au> References: <0119661e-a11a-6d4b-c9ec-fd510bd4f144@gmail.com> <1c1d06a9-2e9f-5b2d-42b7-d908ada4b09e@gmail.com> <001b20f2-1f33-3484-8ad2-1420ae1a2df5@gmail.com> <03cf3326-ae84-96f9-5eee-158054341eff@osc.co.cr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <03cf3326-ae84-96f9-5eee-158054341eff@osc.co.cr> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Score: -1.9 X-Spam-Score-int: -18 X-Spam-Bar: - X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Thu, 13 Jul 2017 02:21:02 +0000 Subject: Re: [bitcoin-dev] how to disable segwit in my build? 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: Thu, 13 Jul 2017 01:48:36 -0000 On Tue, Jul 11, 2017 at 11:17:24PM -0700, Dan Libby via bitcoin-dev wrote: > At this time, I would like to have some of the more recent features, but > without the possibility that my node will activate segwit, until I > choose to. I think that terminology isn't quite precise. I think your options are: - if you're a miner or run a mining pool, you can *signal* (or not signal) support for segwit activation; you do this by controlling the block version - if you're running a node, you can choose to *enforce* (or not enforce) the additional consensus rules associated with segwit I think it's the latter you're talking about. "Activation" is different: it's the collective action of the bitcoin ecosystem to start enforcing the segwit consensus rules after a sufficient majority of miners are signalling support. That's not something you as an individual can control. If you want to disable enforcement of segwit rules, even if a majority of mining power signal activation, you can change the code and recompile to do so, for example by changing the nTimeout setting for DEPLOYMENT_SEGWIT from 1510704000 (Nov 15 2017) to 1493596800 (May 1 2017, already expired). This is probably a bad idea, in that it will cause you to risk accepting blocks that nobody else in the network will accept, opening you up to higher risk of double spends, and may cause you to be unable to peer with segwit enabled nodes after segwit is activated if your node is rejecting blocks with witness data because you think segwit is not enabled while they think it is enabled. To avoid that you would also need to stop setting the NODE_WITNESS p2p bit, which you might be able to do by setting the nTimeout above to 0 instead of just a date in the past? I believe a timeout of 0 gets treated as automatically FAILED. There might be other complexities too though. > I'm not looking for reasons NOT to do it, only HOW to do it without > unwanted side-effects. The unwanted side-effects are precisely the reasons not to do it. If you don't understand what they are, you won't be able to avoid them. :) Cheers, aj