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
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to