[bitcoin-dev] BIP151 protocol incompatibility

Eric Voskuil eric at voskuil.org
Mon Feb 13 10:54:23 UTC 2017


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20170213/db42ecc6/attachment.sig>


More information about the bitcoin-dev mailing list