Protocol versioning



Summary:

The issue of alternative implementations of a protocol has been discussed on forums and agreed upon by many. The current scheme was preferred by Satoshi who discouraged alternative client efforts. However, since protocol development has slowed down and there is at least one major alternative client in the works, it is time to revisit those assumptions and preferences. Several proposals have been made for the Satoshi Client, such as avoiding creating four-component version numbers and using pszSubVer as a client identification string, removing IP transactions in v0.4, creating constants for protocol version, splitting protocol and client versions in v0.4 but not noticing a change until v0.4.1, and using a single bit inside 'nServices' to indicate the presence of an optional "capabilities" message. All these proposals are aimed at better preparing the bitcoin protocol for the long term, enabling minor protocol changes without having to change the protocol version, and supporting more mature protocols that use features rather than simply "I support all features >= version X".


Updated on: 2023-05-26T18:07:39.569748+00:00