V2 transport presents a unique opportunity to disallow a couple p2p messages that we can’t deprecate under v1 given their usage. Of the top of my head, it seems like the following things could be disallowed:
- Bloom filters should not be used and are superseded by client side filtering.
filter{add,clear,load}
,merkleblock
andmempool
could therefore be disallowed. - V1 address relay was superseded by V2 address relay (not to be confused with BIP324 v2 transport).
addr
could therefore be disallowed. getblocks
makes very little sense which is why Bitcoin Core no longer sends it. Syncing headers before downloading blocks should always be preferred.getblocks
could therefore be disallowed.
This might be too late to squeeze in and would require BIP changes as well but long term it seems worthwhile considering. If we ever get rid of v1 transport we can delete the entire code for the things mentioned above (and maybe more?)!