:: Re: [Libbitcoin] [bitcoin-dev] BIP1…
Inizio della pagina
Delete this message
Reply to this message
Autore: Eric Voskuil
Data:  
To: Matt Corallo, Bitcoin Protocol Discussion, Pieter Wuille
CC: libbitcoin
Oggetto: Re: [Libbitcoin] [bitcoin-dev] BIP151 protocol incompatibility
On 02/13/2017 03:11 AM, Matt Corallo wrote:
> I believe many, if not all, of those messages are sent irrespective of version number.


In the interest of perfect clarity, see your code:

https://github.com/bitcoin/bitcoin/blob/master/src/net_processing.cpp#L1372-L1403

Inside of the VERACK handler (i.e. after the handshake) there is a peer
version test before sending SENDCMPCT (and SENDHEADERS).

I have no idea where the fee filter message is sent, if it is sent at
all. But I have *never* seen any control messages arrive before the
handshake is complete.

> In any case, I fail to see how adding any additional messages which

are ignored by old peers amounts to a lack of backward compatibility.

See preceding messages in this thread, I think it's pretty clearly
spelled out.

e

> On February 13, 2017 11:54:23 AM GMT+01:00, Eric Voskuil <eric@???> wrote:
>> On 02/13/2017 02:16 AM, Matt Corallo wrote:
>>> For the reasons Pieter listed, an explicit part of our version
>> handshake and protocol negotiation is the exchange of otherwise-ignored
>> messages to set up optional features.
>>
>> Only if the peer is at the protocol level that allows the message:
>>
>> compact blocks:
>>
>> https://github.com/bitcoin/bitcoin/blob/master/src/protocol.h#L217-L242
>>
>> fee filter:
>>
>> https://github.com/bitcoin/bitcoin/blob/master/src/protocol.h#L211-L216
>>
>> send headers:
>>
>> https://github.com/bitcoin/bitcoin/blob/master/src/protocol.h#L204-L210
>>
>> filters:
>>
>> https://github.com/bitcoin/bitcoin/blob/master/src/protocol.h#L170-L196
>>
>>> Peers that do not support this ignore such messages, just as if they
>> had indicated they wouldn't support it, see, eg BIP 152's handshake.
>> Not
>> sure why you consider this backwards incompatible, as I would say it's
>> pretty clearly allowing old nodes to communicate just fine.
>>
>> No, it is not the same as BIP152. Control messages apart from BIP151
>> are
>> not sent until *after* the version is negotiated.
>>
>> I assume that BIP151 is different in this manner because it has a
>> desire
>> to negotiate encryption before any other communications, including
>> version.
>>
>> e