This does indeed sound reasonable. The chances of having a cut in the network consisting of non-upgraded nodes partitioning the network and not forwarding the segregated witnesses should be minimal, given a long rollout phase before the activation. If everybody agrees that this is a better way to approach the normalization issue we should probably start writing it up and see if we can get critical mass behind it :-) On Wed, Nov 4, 2015 at 5:00 AM Peter Todd wrote: > On Tue, Nov 03, 2015 at 09:44:02PM +0000, Christian Decker via bitcoin-dev > wrote: > > Ok, so assuming we can get a connected component of upgraded nodes that > > relay both the transaction and the associated external scripts then we > > could just piggyback the external scripts on top of the normal messages. > > Non-upgraded nodes will read the entire two-part message but only parse > the > > classical transaction, dropping the external script. Validation rules for > > upgraded nodes are the same as before: if the attached signatures are > > invalid the entire TX is dropped. We have to commit to the external > scripts > > used during the creation of a block. I think the easiest way to add this > > commitment is the coinbase input I guess, and following the transaction > > list a new list of signature lists is shipped with the rest of the block. > > Non-upgraded will ignore it as before. > > > > Would that work? It all hinges on having upgraded miners in a connected > > component otherwise non-upgraded nodes will drop the external scripts on > > the way (since they parse and then reconstruct the messages along the > > path). But if it works this could be a much nicer solution. > > FWIW my replace-by-fee fork does preferential peering with other RBF > nodes to ensure that you'll always be connected to at least some > full-RBF peers. In practice this works very well, and I'm sure a similar > scheme could be used in this situation as well. > > Basically, conceptually unless you're connected to peers that advertise > that they relay the new data, you treat the situation as though you're > not connected to any peers at all. No different than if for some reason > none of your peers were advertising NODE_NETWORK. > > -- > 'peter'[:-1]@petertodd.org > 00000000000000000247b0e7436a5169ac6f9087be0295d10b07bf0bcbd4c0cc >