From: Eric Voskuil <eric@voskuil.org>
To: Peter Todd <pete@petertodd.org>,
Bitcoin Protocol Discussion
<bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] [BIP Proposal] Buried Deployments
Date: Wed, 16 Nov 2016 14:21:53 -0800 [thread overview]
Message-ID: <1DD0AEAC-ACC9-4F09-B922-8235D528BBC5@voskuil.org> (raw)
In-Reply-To: <20161116210100.GC5639@savin.petertodd.org>
I would suggest that, before discussing how best to fork the chain to meet this objective, we consider the objective.
The implementers have acknowledged that this does not represent a performance improvement. Especially given that this was apparently not initially understood, that alone is good reason for them to reconsider.
The remaining stated objective is reduction of code complexity. Let us be very clear, a proposal to change the protocol must be considered independently of any particular implementation of the protocol. While the implementation of BIP34 style activation may be hugely complex in the satoshi code, it is definitely not complex as a matter of necessity.
Activation constitutes maybe a dozen lines of additional code in libbitcoin. The need to hit the chain (or cache) to obtain historical header info will remain for proof of work, so this change doesn't even accomplish some sort of beneficial isolation from blockchain history.
So, at best, we are talking about various ways to introduce a consensus fork so that a well designed implementation can remove a tiny amount of already-written code and associated tests. In my opinion this is embarrassingly poor reasoning. It would be much more productive to reduce satoshi code complexity in ways that do not impact the protocol. There are a *huge* number of such opportunities, and in fact activation is one of them. Once that is done, we can talk about forking to reduce source code complexity.
These fork suggestions actually increase *necessary* complexity for any implantation that takes a rational approach to forks. By rational I mean *additive*. Deleting rules from Bitcoin code is simply bad design. Rules are never removed, they are added. A new rule to modify an old rule is simply a new rule. This is new and additional code. So please don't assume in this "proposal" that this makes development simpler for other implementations, that is not a necessary conclusion.
e
> On Nov 16, 2016, at 1:01 PM, Peter Todd via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
>
>> On Wed, Nov 16, 2016 at 09:32:24AM -0500, Alex Morcos via bitcoin-dev wrote:
>> I think we are misunderstanding the effect of this change.
>> It's still "OK" for a 50k re-org to happen.
>> We're just saying that if it does, we will now have potentially introduced
>> a hard fork between new client and old clients if the reorg contains
>> earlier signaling for the most recent ISM soft fork and then blocks which
>> do not conform to that soft fork before the block height encoded activation.
>>
>> I think the argument is this doesn't substantially add to the confusion or
>> usability of the system as its likely that old software won't even handle
>> 50k block reorgs cleanly anyway and there will clearly have to be human
>> coordination at the time of the event. In the unlikely event that the new
>> chain does cause such a hard fork, that coordination can result in everyone
>> upgrading to software that supports the new rules anyway.
>>
>> So no, I don't think we should add a checkpoint. I think we should all
>> just agree to a hard fork that only has a very very slim chance of any
>> practical effect.
>
> So, conceptually, another way to deal with this is to hardcode a blockhash
> where we allow blocks in a chain ending with that blockhash to _not_ follow
> BIP65, up until that blockhash, and any blockchain without that blockhash must
> respect BIP65 for all blocks in the chain.
>
> This is a softfork: we've only added rules that made otherwise valid chains
> invalid, and at the same time we are still accepting large reorgs (albeit under
> stricter rules than before).
>
> I'd suggest we call this a exemption hash - we've exempted a particular
> blockchains from a soft-forked rule that we would otherwise enforce.
>
> --
> https://petertodd.org 'peter'[:-1]@petertodd.org
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
next prev parent reply other threads:[~2016-11-16 22:21 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-14 18:17 [bitcoin-dev] [BIP Proposal] Buried Deployments Suhas Daftuar
2016-11-14 18:47 ` Eric Voskuil
2016-11-15 14:42 ` Suhas Daftuar
2016-11-15 17:45 ` Btc Drak
2016-11-15 22:42 ` Eric Voskuil
2016-11-16 13:29 ` Jameson Lopp
2016-11-16 13:58 ` Eric Voskuil
2016-11-16 14:18 ` Tier Nolan
2016-11-16 14:32 ` Alex Morcos
2016-11-16 21:01 ` Peter Todd
2016-11-16 22:21 ` Eric Voskuil [this message]
2016-11-17 3:06 ` Luke Dashjr
2016-11-16 14:18 ` Thomas Kerin
2016-11-16 23:58 ` Jorge Timón
2016-11-17 0:00 ` Eric Voskuil
2016-11-17 1:24 ` Alex Morcos
2016-11-17 1:41 ` Eric Voskuil
2016-11-17 0:13 ` Eric Voskuil
2016-11-16 23:48 ` Jorge Timón
2016-11-17 1:50 ` Pieter Wuille
2016-11-17 2:16 ` Eric Voskuil
2016-11-17 2:47 ` Pieter Wuille
2016-11-17 10:10 ` Eric Voskuil
2016-11-16 14:38 ` Tom Zander
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1DD0AEAC-ACC9-4F09-B922-8235D528BBC5@voskuil.org \
--to=eric@voskuil.org \
--cc=bitcoin-dev@lists.linuxfoundation.org \
--cc=pete@petertodd.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox