Port XVersion from BU
Proposal
I would like to port XVersion from BU. The purpose of XVersion is to add an extension to allow implementations to announce further configuration and version information to peers without the need to reserve service bits. A more in depth reasoning for XVersion can be found in the documentation.
The documentation for XVersion can be found here: https://github.com/BitcoinUnlimited/BitcoinUnlimited/blob/release/doc/xversionmessage.md and the original BU PR for XVersion can be found here: https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/1236
XVersion was implemented in BU in late 2018 and has been a part of its release since then. The code is complete and fully tested in its current state.
XVersion does not require a hard fork to implement/use/update. XVersion could be implemented and disabled by default, and only enabled via xversion=1 param
BU currently uses XVersion for graphene, to notify peers about our mempool ancestor acceptance limits (since BU can handle up to 500), mempool sync version and supported versions, and i have an open PR that uses it for a negotiation/updates in a new pruning algo.
Edit list
- fixed the introduction date
- added link to original XVersion PR in BU
- added disabled by default suggestion from imu
- added list of things BU currently uses XVersion for.