[tor-commits] [tor/release-0.4.4] Update required/recommended protocol lists more systematically

dgoulet at torproject.org dgoulet at torproject.org
Tue Oct 27 14:20:30 UTC 2020


commit fd58e74ddcb012892bd7e59ef1587fc4faa2ab35
Author: Nick Mathewson <nickm at 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) */





More information about the tor-commits mailing list