Commit fd58e74d authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

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)
parent d872c692
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
  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.
+31 −34
Original line number Diff line number Diff line
@@ -241,11 +241,12 @@ STATIC microdesc_t *dirvote_create_microdescriptor(const routerinfo_t *ri,
#define DIRVOTE_RECOMMEND_RELAY_PROTO           \
  "Cons=2 "                                     \
  "Desc=2 "                                     \
  "DirCache=1-2 "                     \
  "HSDir=1 "                          \
  "HSIntro=3 "                        \
  "HSRend=1 "                         \
  "Link=4 "                           \
  "DirCache=2 "                                 \
  "HSDir=2 "                                    \
  "HSIntro=4 "                                  \
  "HSRend=2 "                                   \
  "Link=4-5 "                                   \
  "LinkAuth=3 "                                 \
  "Microdesc=2 "                                \
  "Relay=2"

@@ -259,9 +260,8 @@ STATIC microdesc_t *dirvote_create_microdescriptor(const routerinfo_t *ri,
  "HSDir=2 "                                    \
  "HSIntro=4 "                                  \
  "HSRend=2 "                                   \
  "Link=5 "                            \
  "LinkAuth=3 "                        \
  "Microdesc=1-2 "                     \
  "Link=4-5 "                                   \
  "Microdesc=2 "                                \
  "Relay=2"

/** The required relay protocols for this authority's votes.
@@ -272,13 +272,14 @@ 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.
@@ -288,10 +289,6 @@ STATIC microdesc_t *dirvote_create_microdescriptor(const routerinfo_t *ri,
#define DIRVOTE_REQUIRE_CLIENT_PROTO            \
  "Cons=2 "                                     \
  "Desc=2 "                                     \
  "DirCache=1 "                      \
  "HSDir=1 "                         \
  "HSIntro=3 "                       \
  "HSRend=1 "                        \
  "Link=4 "                                     \
  "Microdesc=2 "                                \
  "Relay=2"