Arti Relay and Tor netdir versions
Various netinfo documents, notably consensuses, contain a "Tor version". Implicitly, only C Tor relays are supported by this protocol.
We need to decide how we are going to support Arti relays. One useful property to note is that C Tor versions all start 0.x and Arti toplevel versions all start 1.x. But maybe we don't want to use the Arti version for the Arti Relay version?
A complication is that the spec on versions is unhelpful and vague. The text does say that some information shouldn't be used for comparisons, but it does not fully define either equality comparisons (needed for "listed on the recommended list" etc.) nor inequalities ("newer than every recommended version")
Also it defines a property "new in series" which seems like it's not directly applicable to Arti Relay's version numbering, which will presumably be 3-part Rust semver. This is used to define a derived property "un-recommended". But, as far as I can tell from git grep
, those properties are not referenced anywhere so they may not be needed?
We don't necessasrily need to keep the existing comparison algorithm when we deploy Arti relay. But we do need:
- A way to represent Arti Relay versions that can be understood by C Tor and used in consensus calculations (ideally without changing the C Tor version comparison algorithm)
- A reasonably coherent definition of how Arti Dirauth will do version comparisons, which is compatible with currently in use versions of C Tor and with Arti Relay.