Subject: Re: [bitcoin-dev] Generalizing feature negotiation when new p2p connections are setup

From: Matt Corallo <[email-masked]>
Date: Fri, 21 Aug 2020 18:16:02 -0400

Hmm, could that not be accomplished by simply building this into new messages? eg, send "betterprotocol", if you see a 
verack and no "betterprotocol" from your peer, send "worseprotocol" before you send a "verack".

Matt

On 8/21/20 5:17 PM, Jeremy wrote:
> As for an example of where you'd want multi-round, you could imagine a scenario where you have a feature A which gets 
> bugfixed by the introduction of feature B, and you don't want to expose that you support A unless you first negotiate B. 
> Or if you can negotiate B you should never expose A, but for old nodes you'll still do it if B is unknown to them. An 
> example of this would be (were it not already out without a feature negotiation existing) WTXID/TXID relay.
> 
> The SYNC primitve simply codifies what order messages should be in and when you're done for a phase of negotiation 
> offering something. It can be done without, but then you have to be more careful to broadcast in the correct order and 
> it's not clear when/if you should wait for more time before responding.
> 
> 
> On Fri, Aug 21, 2020 at 2:08 PM Jeremy <[email-masked] <mailto:[email-masked]>> wrote:
> 
>     Actually we already have service bits (which are sadly limited) which allow negotiation of non bilateral feature
>     support, so this would supercede that.
>     --
>     @JeremyRubin <https://twitter.com/JeremyRubin><https://twitter.com/JeremyRubin>
>