Author: Matt Corallo 2012-01-31 18:22:25
Published on: 2012-01-31T18:22:25+00:00
The methods for forward compatibility in BIP 21 have been changed from using a version number to adding new variables with either as-is or with a mustimplement: prefix. Clients that do not know what the variable is after mustimplement: should consider the entire URI invalid and either notify the user or just drop it silently. This way, new fields like expiretime can be added without worrying about old clients ignoring the field. However, this solution is not ideal because depending on the names of variables to provide information is ugly. According to the BIP, "It is recommended that additional variables prefixed with mustimplement: not be used in a mission-critical way until a grace period of 6 months from the finalization of this BIP has passed in order to allow client developers to release new versions, and users of old clients to upgrade. "The implementation of the expiretime field is problematic because some clients already have an old implementation, and the possibility of it getting ignored is too large. The BIP is still a draft, but it is implemented in all versions of Bitcoin-Qt for drag and drop. Adding a field which restricts the validity of a URI for new clients but which old clients will gladly accept could result in some ugly situations. Matt would like to keep the list of changes from the Bitcoin-Qt implementation to this BIP very minimal at this late stage of the 0.6 release cycle. The send private key was not in the original spec, is not implemented anywhere, and should have been removed as part of the BIP 21 copy/paste.
Updated on: 2023-05-18T23:03:06.517557+00:00