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.

In response to Thomas' email.  I think ideally we would treat these soft forks the way we did BIP30 which is to say that we're just introducing a further soft fork that applies to all blocks except for the historical exceptions.  So then its a almost no-op soft fork with no risk of hard fork.   This however isn't practical with at least BIP 34 without storing the hashes of all 200K blocks that don't meet the requirement.



On Wed, Nov 16, 2016 at 9:18 AM, Tier Nolan via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
On Wed, Nov 16, 2016 at 1:58 PM, Eric Voskuil via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
Are checkpoints good now? Are hard forks okay now?

I think that at least one checkpoint should be included.  The assumption is that no 50k re-orgs will happen, and that assumption should be directly checked.

Checkpointing only needs to happen during the headers-first part of the download.

If the block at the BIP-65 height is checkpointed, then the comparisons for the other ones are automatically correct.  They are unnecessary, since the checkpoint protects all earlier block, but many people would like to be able to verify the legacy chain.

This makes the change a soft-fork rather than a hard fork.  Chains that don't go through the checkpoint are rejected but no new chains are allowed.

_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev