Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 3DCB694F for ; Thu, 20 Aug 2015 00:08:22 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-pa0-f45.google.com (mail-pa0-f45.google.com [209.85.220.45]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id A3EBF16E for ; Thu, 20 Aug 2015 00:08:21 +0000 (UTC) Received: by pawq9 with SMTP id q9so13858959paw.3 for ; Wed, 19 Aug 2015 17:08:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=cz/P6byh20989Rx4QmXWIk8NOai4uwG1AVJVL5gX6WY=; b=ig1IWxOpJT5XYArFTf4zw4Jeq6SDiGS6EWLDeGqf0B1RWkicgmAUkCaJkVeB9pQzU8 MG9gN4tEnJScCsGR8Bpem21lFVaLnXeEChB9XCapeOACtHY2MiC1yWieJuDJ2wsh9El+ O0BRZ1sIFM9u9TwKwGkMum46hfmQ+kgCKxSBAwBHQAmZCBgKMaqFilV1PhftB9tiqw2A Qdhtq0HiLUoAzrV9rIeqGLCxAsOXANHGmMYWUD9K9J+NNOgVn3B0AZsa1v9hoORwzbC+ JUzs1yMNCd3ZBXBemP1jdA1MhnqTj05JDCnMPQGDY3mwGO5v2tHDvWyaEYXJxUwZgo4p TICw== X-Gm-Message-State: ALoCoQnkQS/TtoOFYrbnJ+h2z8oorrxZdBgp1mumoqrCiW4Bwj7496ZkyPv31N6NVoZCl4Kzl8qv X-Received: by 10.68.253.65 with SMTP id zy1mr420746pbc.159.1440029301427; Wed, 19 Aug 2015 17:08:21 -0700 (PDT) Received: from [10.0.1.13] (c-73-225-134-208.hsd1.wa.comcast.net. [73.225.134.208]) by smtp.googlemail.com with ESMTPSA id ob4sm2123967pbb.40.2015.08.19.17.08.20 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 19 Aug 2015 17:08:20 -0700 (PDT) Message-ID: <55D51A7E.9030301@voskuil.org> Date: Wed, 19 Aug 2015 17:08:30 -0700 From: Eric Voskuil User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: =?UTF-8?B?Sm9yZ2UgVGltw7Nu?= References: <20150819182010.GB12306@muck> <55D4D9C3.5070004@riseup.net> <55D50C15.9020402@voskuil.org> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Bitcoin Dev , Libbitcoin Subject: Re: [bitcoin-dev] Bitcoin XT Fork X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Development Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Aug 2015 00:08:22 -0000 On 08/19/2015 04:27 PM, Jorge Timón wrote: > On Thu, Aug 20, 2015 at 1:07 AM, Eric Voskuil wrote: >> [cross-posted to libbitcoin] >> >> On 08/19/2015 03:00 PM, Jorge Timón via bitcoin-dev wrote:> On Wed, Aug >> 19, 2015 at 10:04 PM, Eric Lombrozo wrote: >>>> But the consensus code should NOT be subject to the same commit >> policies…and we should make an effort to separate the two clearly. And >> we should find a way to communicate the difference succinctly and >> clearly to laypeople (which is something I think the XT opponents have >> been horrible at doing so far). >>> >>> I think that effort is in progress (again, much slower that I would >>> like it to be) and it's called libconsensus. >>> Once we have libconsensus Bitcoin Core it's just another >>> implementation (even if it is the reference one) and it's not "the >>> specification of the consensus rules" which is a "privileged" position >>> that brings all sorts of misunderstandings and problems (the block >>> size debate is just one example). >> >> Jorge, >> >> I applaud your efforts and objectives WRT libconsensus independence. But >> as you know I differ with you on this point: >> >>> Once we have libconsensus Bitcoin Core it's just another >>> implementation >> >> I do not consider Bitcoin Core just another implementation as long as >> libconsensus is built directly out of the bitcoind repository. It's a >> finer point, but an important one. Eric makes this point emphatically as >> well: >> >>>> But the consensus code should NOT be subject to the same commit >> policies...and we should make an effort to separate the two clearly. >> >> As you have implied, it's not likely to happen in the Bitcoin Core repo. >> Taking a dependency on Bitcoin Core is a metaphorical deal with the >> devil from our perspective. So my question is, how do you expect other >> implementations to transition off of that repository (and commit >> policies)? Or do you expect the dependency to be perpetual? > > No, as previously explained, once libconsensus is complete it can be > moved to a separate repository like libsecp256k1. I don't see this happening any time soon, and I'm not sure why we should wait for it. > At first it will need to be a subtree/subrepository of Bitcoin Core > (like libsecp256k1 currently is), but I still don't undesrtand how > that can possibly be a problem for alternative implementations (they > can use a subtree as well if they want to). Depending on a separated > libconsensus doesn't "make Bitcoin Core a dependency" more than > depending on libsecp256k1 currently does. > >> In our discussion leading up to libbitcoin building libbitcoin-consensus >> we disagreed on whether intentional hard forks would (or even could) >> happen. I think that issue is now settled. So my question remains how do >> stakeholders (users/miners) maintain consensus when it's their >> individual intent (the first objective of libconsensus), and diverge >> when intended (which a direct dependency on libconsensus makes harder)? >> IMO it's unreasonable to operate as if this won't happen, given that it has. > > I believe the simplest option... You might consider this as feedback from your customer base. > would be to fork the libconsensus > project and do the schism/controversial/contentious hardfork there. > But of course modifying libconsensus will be much easier than > modifying Bitcoin Core (if anything, because the amount of code is > much smaller). That's a false dichotomy. We never would have considered forking Bitcoin Core, and still wouldn't. Why would we set ourselves up for this disruption, which would inevitably lead to us factoring the consensus portions of libconsensus out of /bitcoin at the 11th hour? We have to operate as if it can happen at any time. Otherwise we have relinquished control of this vote and failed our users. Given that operating assumption, it is much safer for us to have already done this work (which we did). [It also provides a forcing function for us to review in detail any consensus changes that get pushed out.] My question is why you would not embrace an independent consensus repository? Your work to evolve it doesn't change. >> There are a very small number of implementations that rely on consensus >> (fewer that aren't also forks of Bitcoin Core). I think it's time we >> discuss how to work together to achieve our mutual goal. I assume you >> have been in contact with all of us. If you would like to facilitate >> this I'd be happy to join in an offline discussion. > > Unfortunately I only directly contacted libbitcoin because I was > subscribed to the list at the time (maybe I'm still subscribed, not > really sure). > The other attempts to get feedback from other alternative > implementations have been just mostly-ignored threads in bitcoin-dev. > So, no, I cannot facilitate such a discussion, but I'm more than happy > to collaborate to achieve our mutual goal. OK e