bitcoin-dev

BIP151 protocol incompatibility

BIP151 protocol incompatibility

Original Postby Eric Voskuil

Posted on: February 13, 2017 11:17 UTC

In this context, a discussion is taking place on the backward compatibility of Bitcoin protocol.

Matt Corallo believes that many messages are sent irrespective of version number, and there is a peer version test before sending SENDCMPCT (and SENDHEADERS) inside the VERACK handler after the handshake. He also mentions that he has never seen any control messages arrive before the handshake is complete. Eric Voskuil argues that an explicit part of the version handshake and protocol negotiation is the exchange of otherwise-ignored messages to set up optional features, but this only happens if the peer is at the protocol level that allows the message. The links to the relevant code are provided for compact blocks, fee filter, send headers, and filters. Peers that do not support these ignore such messages as if they had indicated they wouldn't support it, just as in BIP 152's handshake. However, it is pointed out that control messages apart from BIP151 are not sent until after the version is negotiated.