commit fd58e74ddcb012892bd7e59ef1587fc4faa2ab35 Author: Nick Mathewson nickm@torproject.org Date: Fri Oct 23 11:23:08 2020 -0400
Update required/recommended protocol lists more systematically
First I began with a set of candidates:
The client's _required_ list starts with all the protocols supported by every release in 0.2.9-stable through current master.
The client's _required_ list starts with all the protocols supported by every release in 0.3.5-stable through current master.
Everybody's _recommended_ list starts with all the protocols supported by every release in 0.3.5-stable through current master.
Then I removed the protocol versions that we do not actually want to require or recommend:
DirCache=1 (deprecated) HSDir=1, HSIntro=1-3, HSRend=1 (deprecated) (All HS* protocol requirements for clients) Link=1-3 (deprecated) LinkAuth=1 (obsolete) Relay=1 (obsolete) --- changes/ticket40162 | 10 +++---- src/feature/dirauth/dirvote.h | 65 +++++++++++++++++++++---------------------- 2 files changed, 36 insertions(+), 39 deletions(-)
diff --git a/changes/ticket40162 b/changes/ticket40162 index 5a8a76bfd8..093042f9af 100644 --- a/changes/ticket40162 +++ b/changes/ticket40162 @@ -1,7 +1,7 @@ o Minor features (authorities): - - Authorities now list the directory formats used by currently supported - Tor releases as required. Previously, they listed only the formats - supported by older Tor releases as required. This change makes - the subprotocols "Cons=2 Desc=2 Microdesc=2" required, and makes - "Cons=1 Desc=1 Microdesc=1" no longer required or recommended. + - Authorities now list a different set of protocols as required and + recommended. These lists are chosen so that only truly recommended + and/or required protocols are included, and so that clients using 0.2.9 + or later will continue to work (even though they are not supported), + whereas only relays running 0.3.5 or later will meet the requirements. Closes ticket 40162. diff --git a/src/feature/dirauth/dirvote.h b/src/feature/dirauth/dirvote.h index 69c8a025c4..a9b356b387 100644 --- a/src/feature/dirauth/dirvote.h +++ b/src/feature/dirauth/dirvote.h @@ -238,30 +238,30 @@ STATIC microdesc_t *dirvote_create_microdescriptor(const routerinfo_t *ri, /** The recommended relay protocols for this authority's votes. * Recommending a new protocol causes old tor versions to log a warning. */ -#define DIRVOTE_RECOMMEND_RELAY_PROTO \ - "Cons=2 " \ - "Desc=2 " \ - "DirCache=1-2 " \ - "HSDir=1 " \ - "HSIntro=3 " \ - "HSRend=1 " \ - "Link=4 " \ - "Microdesc=2 " \ +#define DIRVOTE_RECOMMEND_RELAY_PROTO \ + "Cons=2 " \ + "Desc=2 " \ + "DirCache=2 " \ + "HSDir=2 " \ + "HSIntro=4 " \ + "HSRend=2 " \ + "Link=4-5 " \ + "LinkAuth=3 " \ + "Microdesc=2 " \ "Relay=2"
/** The recommended client protocols for this authority's votes. * Recommending a new protocol causes old tor versions to log a warning. */ -#define DIRVOTE_RECOMMEND_CLIENT_PROTO \ - "Cons=2 " \ - "Desc=2 " \ - "DirCache=2 " \ - "HSDir=2 " \ - "HSIntro=4 " \ - "HSRend=2 " \ - "Link=5 " \ - "LinkAuth=3 " \ - "Microdesc=1-2 " \ +#define DIRVOTE_RECOMMEND_CLIENT_PROTO \ + "Cons=2 " \ + "Desc=2 " \ + "DirCache=2 " \ + "HSDir=2 " \ + "HSIntro=4 " \ + "HSRend=2 " \ + "Link=4-5 " \ + "Microdesc=2 " \ "Relay=2"
/** The required relay protocols for this authority's votes. @@ -272,28 +272,25 @@ STATIC microdesc_t *dirvote_create_microdescriptor(const routerinfo_t *ri, #define DIRVOTE_REQUIRE_RELAY_PROTO \ "Cons=2 " \ "Desc=2 " \ - "DirCache=1 " \ - "HSDir=1 " \ - "HSIntro=3 " \ - "HSRend=1 " \ - "Link=3-4 " \ + "DirCache=2 " \ + "HSDir=2 " \ + "HSIntro=4 " \ + "HSRend=2 " \ + "Link=4-5 " \ + "LinkAuth=3 " \ "Microdesc=2 " \ - "Relay=1-2" \ + "Relay=2"
/** The required relay protocols for this authority's votes. * WARNING: Requiring a new protocol causes old tor versions to shut down. * Requiring the wrong protocols can break the tor network. * See Proposal 303: When and how to remove support for protocol versions. */ -#define DIRVOTE_REQUIRE_CLIENT_PROTO \ - "Cons=2 " \ - "Desc=2 " \ - "DirCache=1 " \ - "HSDir=1 " \ - "HSIntro=3 " \ - "HSRend=1 " \ - "Link=4 " \ - "Microdesc=2 " \ +#define DIRVOTE_REQUIRE_CLIENT_PROTO \ + "Cons=2 " \ + "Desc=2 " \ + "Link=4 " \ + "Microdesc=2 " \ "Relay=2"
#endif /* defined(DIRVOTE_PRIVATE) */
tor-commits@lists.torproject.org