[tor-commits] [torspec/master] bandwidth: edit bandwidth URL dir-spec and proposal

nickm at torproject.org nickm at torproject.org
Tue Jul 17 12:46:21 UTC 2018


commit d29d9ada0bf86167edc647285534b8d75890a593
Author: teor <teor2345 at gmail.com>
Date:   Mon Jul 16 10:16:18 2018 +1000

    bandwidth: edit bandwidth URL dir-spec and proposal
    
    * dir-spec: don't post bandwidth files to other authorities
    * dir-spec: add URL for current bandwidth file
    * dir-spec: clean up the consensus and vote "current" publication schedule
    
    Closes ticket #21377.
---
 dir-spec.txt                                       | 26 +++++++-------
 ...th_votes.txt => xxx-expose-bandwidth-files.txt} | 41 ++++++++++++++--------
 2 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/dir-spec.txt b/dir-spec.txt
index 388ad04..df74ca8 100644
--- a/dir-spec.txt
+++ b/dir-spec.txt
@@ -2607,19 +2607,19 @@
      http://<hostname>/tor/status-vote/next/bandwidth.z
 
    at the start of each voting period.
+
+   It MUST NOT attempt to send its bandwidth list file in a HTTP POST to
+   other authorities and it SHOULD NOT make bandwidth list files from other
+   authorities available.
+
    If an authority makes this file available, it MUST be the bandwidth file
    used to create the vote document available at
 
      http://<hostname>/tor/status-vote/next/authority.z
 
-   Once the voting period starts, the bandwidth list file SHOULD be available
-   at
+   The bandwidth list format is described in bandwidth-file-spec.txt.
 
-     http://<hostname>/tor/status-vote/next/bandwidth.z
-
-   The bandwidth list file is described in bandwidth-file-spec.txt.
-
-   First-appeared in Tor 0.3.5.
+   The standard URLs for bandwidth list files first-appeared in Tor 0.3.5.
 
 3.5. Downloading missing certificates from other directory authorities
 
@@ -3343,16 +3343,14 @@
 
 3.11. Publishing the signed consensus
 
-   Once there are enough signatures, or once the voting period starts,
-   these documents are available at
+   The voting period ends at the valid-after time. If the consensus has
+   been signed by a majority of authorities, these documents are made
+   available at
       http://<hostname>/tor/status-vote/current/consensus.z
    and
       http://<hostname>/tor/status-vote/current/consensus-signatures.z
    [XXX current/consensus-signatures is not currently implemented, as it
     is not used in the voting protocol.]
-   [XXX It's actually false that the first document is available as soon
-    as there are enough signatures. It's only available as soon as the
-    voting period starts. -KL]
 
    [XXX possible future features include support for downloading old
     consensuses.]
@@ -3361,13 +3359,15 @@
      http://<hostname>/tor/status-vote/current/authority.z
      http://<hostname>/tor/status-vote/current/<fp>.z
      http://<hostname>/tor/status-vote/current/d/<d>.z
-   once the consensus is complete.
+     http://<hostname>/tor/status-vote/current/bandwidth.z
+   once the voting period ends, regardless of the number of signatures.
 
    The authorities serve another consensus of each flavor "F" from the
    locations
       /tor/status-vote/(current|next)/consensus-F.z. and
       /tor/status-vote/(current|next)/consensus-F/<FP1>+....z.
 
+   The standard URLs for bandwidth list files first-appeared in Tor 0.3.5.
 
 4. Directory cache operation
 
diff --git a/proposals/xxx-expose-bwauth_votes.txt b/proposals/xxx-expose-bandwidth-files.txt
similarity index 64%
rename from proposals/xxx-expose-bwauth_votes.txt
rename to proposals/xxx-expose-bandwidth-files.txt
index 93a6f1a..12abe0e 100644
--- a/proposals/xxx-expose-bwauth_votes.txt
+++ b/proposals/xxx-expose-bandwidth-files.txt
@@ -1,5 +1,5 @@
-Filename: xxx-expose-bwauth_votes.txt
-Title: Have Directory Authorities expose raw bandwidth list file documents
+Filename: xxx-expose-bandwidth-files.txt
+Title: Have Directory Authorities expose raw bandwidth list files
 Author: Tom Ritter
 Created: 11-December-2017
 Status: Open
@@ -8,10 +8,10 @@ Ticket: https://trac.torproject.org/projects/tor/ticket/21377
 1. Introduction
 
 Bandwidth Authorities (bwauths) perform scanning of the Tor Network
-and calculate observed speeds for each relay. They produce a bandwidth
+and calculate observed bandwidths for each relay. They produce a bandwidth
 list file that is given to a Directory Authority. The Directory
-Authority uses the speed value from this file in its vote file
-denoting its view of the speed of the relay.
+Authority uses the bw (bandwidth) value from this file in its vote file
+denoting its view of the bandwidth of the relay.
 
 After collecting all of the votes from other Authorities, a consensus
 is calculated, and the consensus's view of a relay's speed is
@@ -23,16 +23,21 @@ Directory Authority's vote, however the original file contains
 considerably more diagnostic information about how the bwauth arrives
 at that measurement for that relay.
 
+For more details, see the bandwidth list file specification in
+bandwidth-file-spec.txt.
+
 2. Motivation
 
 The bandwidth list file contains more information than is exposed in the
-overall vote file. This information is useful to debug anomalies in
-relays' utilization and suspected bugs in the (decrepit) bwauth code.
+overall vote file. This information is useful to debug:
+  * anomalies in relays' utilization,
+  * suspected bugs in the (decrepit) bwauth code, and
+  * the transition to a replacement bwauth implementation.
 
 Currently, all bwauths expose the bandwidth list file through various (non-
 standard) means, and that file is downloaded (hourly) by a single person
 (as long as his home internet connection and home server is working)
-and archived (with a small amount of robustness.)  
+and archived (with a small amount of robustness.)
 
 It would be preferable to have this exposed in a standard manner.
 Doing so would no longer require bwauths to run HTTP servers to expose
@@ -43,19 +48,25 @@ parties.  We hope that Collector will begin archiving the files.
 3. Specification
 
 An authority SHOULD publish the bandwidth list file used to calculate its
-current vote. It SHOULD make the bandwidth list file available at all
-times, and provide the file that it has most recently used for its
-vote (even if the vote is not currently published.) It SHOULD make
-the file available at
+next vote. It SHOULD make the bandwidth list file available whenever the
+corresponding vote is available, at the corresponding URL. (See
+dir-spec for the exact details.)
+
+It SHOULD make the file available at
   http://<hostname>/tor/status-vote/next/bandwidth.z
+  http://<hostname>/tor/status-vote/current/bandwidth.z
 
 It MUST NOT attempt to send its bandwidth list file in a HTTP POST to
 other authorities and it SHOULD NOT make bandwidth list files from other
 authorities available.
 
-Clients interested in consuming the document should download it when
-votes are created. (For the existing Tor network, this is at HH:50,
-or 50 minutes after each hour.)
+Clients interested in consuming these documents should download them from
+each authority's:
+  * next URL when votes are created. (In the public Tor network, this is
+    after HH:50 during normal operation, and after HH:20 during a
+    consensus failure.)
+  * current URL after the valid-after time in the consensus.
+    (After HH:00, and HH:30 during consensus failure.)
 
 4. Security Implications
 





More information about the tor-commits mailing list