commit 54c3a5f09d9634b359344f8155dd973dafe0e86e Author: Nick Mathewson nickm@torproject.org Date: Wed Dec 5 09:44:12 2018 -0500
Close and merge prop298 --- dir-spec.txt | 31 +++++++++++++++++++++++++++++-- proposals/000-index.txt | 4 ++-- proposals/298-canonical-families.txt | 3 ++- 3 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/dir-spec.txt b/dir-spec.txt index e9f201c..65f329d 100644 --- a/dir-spec.txt +++ b/dir-spec.txt @@ -1500,6 +1500,32 @@
The "family" element as specified in section 2.1.1.
+ When generating microdescriptors for consensus method 29 or later, + the following canonicalization algorithm is applied to improve + compression: + + For all entries of the form $hexid=name or $hexid~name, + remove the =name or ~name portion. + + Remove all entries of the form $hexid, where hexid is not + 40 hexadecimal characters long. + + If an entry is a valid nickname, put it into lower case. + + If an entry is a valid $hexid, put it into upper case. + + If there are any entries, add a single $hexid entry for + the relay in question, so that it is a member of its own + family. + + Sort all entries in lexical order. + + Remove duplicate entries. + + (Note that if an entry is not of the form "nickname", "$hexid", + "$hexid=nickname" or "$hexid~nickname", then it will be unchanged: + this is what makes the algorithm forward-compatible.) + "p" SP ("accept" / "reject") SP PortList NL
[Exactly once.] @@ -1517,8 +1543,8 @@
[At most once]
- The IPv6 exit policy summary as specified in sections 3.4.1 and 3.8.2. A - missing "p6" line is equivalent to "p6 reject 1-65535". + The IPv6 exit policy summary as specified in sections 3.4.1 and + 3.8.2. A missing "p6" line is equivalent to "p6 reject 1-65535".
(Only included when generating microdescriptors for consensus-method 15 or later.) @@ -2972,6 +2998,7 @@ "26" -- Initialize bandwidth weights to 1 to avoid division-by-zero. "27" -- Adds support for "a" lines in microdescriptor consensues. "28" -- Removes "a" lines from microdescriptors. + "29" -- Canonicalizes families in microdescriptors.
Before generating a consensus, an authority must decide which consensus method to use. To do this, it looks for the highest version number diff --git a/proposals/000-index.txt b/proposals/000-index.txt index 7960f95..9746434 100644 --- a/proposals/000-index.txt +++ b/proposals/000-index.txt @@ -218,7 +218,7 @@ Proposals by number: 295 Using ADL-GCM for relay cryptography (solving the crypto-tagging attack) [OPEN] 296 Have Directory Authorities expose raw bandwidth list files [OPEN] 297 Relaxing the protover-based shutdown rules [OPEN] -298 Putting family lines in canonical form [OPEN] +298 Putting family lines in canonical form [CLOSED]
Proposals by status: @@ -250,7 +250,6 @@ Proposals by status: 295 Using ADL-GCM for relay cryptography (solving the crypto-tagging attack) 296 Have Directory Authorities expose raw bandwidth list files 297 Relaxing the protover-based shutdown rules [for 0.3.5.x] - 298 Putting family lines in canonical form [for 0.3.6.x] ACCEPTED: 188 Bridge Guards and other anti-enumeration defenses 249 Allow CREATE cells with >505 bytes of handshake data @@ -356,6 +355,7 @@ Proposals by status: 283 Move IPv6 ORPorts from microdescriptors to the microdesc consensus [for 0.3.3.x] [in 0.3.3.1-alpha] 284 Hidden Service v3 Control Port 293 Other ways for relays to know when to publish [for 0.3.5] [in 0.4.0.1-alpha] + 298 Putting family lines in canonical form [for 0.3.6.x] [in 0.4.0.1-alpha] SUPERSEDED: 112 Bring Back Pathlen Coin Weight 113 Simplifying directory authority administration diff --git a/proposals/298-canonical-families.txt b/proposals/298-canonical-families.txt index 938754d..a96ab8d 100644 --- a/proposals/298-canonical-families.txt +++ b/proposals/298-canonical-families.txt @@ -2,8 +2,9 @@ Filename: 298-canonical-families.txt Title: Putting family lines in canonical form Author: Nick Mathewson Created: 31-Oct-2018 -Status: Open +Status: Closed Target: 0.3.6.x +Implemented-In: 0.4.0.1-alpha
1. Introduction
tor-commits@lists.torproject.org