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