Currently the net_plugin handshake message does not include earliest available block information which causes many requests from peers for blocks that a node does not have.
Include the earliest available block on a node in the handshake message. One potential way would be to look at the peers network_version after the initial handshake and send a handshake_v2 which includes the earliest block info. handshake_v2 could be detected according to network_version of the handshake to know if any additional information is included after the end of handshake_message. This additional information can't be sent until verification of the peer's version as an older version of net_plugin would not correctly handle the additional information after the handshake_message data.
Currently the
net_plugin
handshake message does not include earliest available block information which causes many requests from peers for blocks that a node does not have.Include the earliest available block on a node in the handshake message. One potential way would be to look at the peers
network_version
after the initial handshake and send ahandshake_v2
which includes the earliest block info.handshake_v2
could be detected according tonetwork_version
of the handshake to know if any additional information is included after the end ofhandshake_message
. This additional information can't be sent until verification of the peer's version as an older version ofnet_plugin
would not correctly handle the additional information after thehandshake_message
data.