aboutsummaryrefslogtreecommitdiff
path: root/path-spec.txt
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2021-08-27 11:04:22 -0400
committerNick Mathewson <nickm@torproject.org>2021-08-27 11:04:22 -0400
commitde373736ee74a300f68e1355e0cbeed812ca5d80 (patch)
treea45d8438deac8c8d07a500c5436fc8e98e3cef62 /path-spec.txt
parent2b92f992ef27ceea3b253a3940a6da3127a0a8b8 (diff)
downloadtorspec-de373736ee74a300f68e1355e0cbeed812ca5d80.tar.gz
torspec-de373736ee74a300f68e1355e0cbeed812ca5d80.zip
Describe reload behavior of path-spec data.
Diffstat (limited to 'path-spec.txt')
-rw-r--r--path-spec.txt13
1 files changed, 10 insertions, 3 deletions
diff --git a/path-spec.txt b/path-spec.txt
index f257e86..0243260 100644
--- a/path-spec.txt
+++ b/path-spec.txt
@@ -423,9 +423,9 @@ of their choices.
or network change (see section 2.4.5 below).
Timeouts are stored on disk in a histogram of 10ms bin width, the same
- width used to calculate the Xm value above. This histogram must be shuffled
- after being read from disk, to preserve a proper expiration of old values
- after restart.
+ width used to calculate the Xm value above. The timeouts recorded in the
+ histogram must be shuffled after being read from disk, to preserve a
+ proper expiration of old values after restart.
Thus, some build time resolution is lost during restart. Implementations may
choose a different persistence mechanism than this histogram, but be aware
@@ -534,6 +534,13 @@ of their choices.
If the timeout was already at least `cbtinitialtimeout`,
the client doubles the timeout.
+ The records here (of how many circuits succeeded or failed among the most
+ recent 'cbrrecentcount') are also stored as persistent state. On reload,
+ the history here is reconstructed from the counts by placing successes and
+ failures in an arbitrary order. (The C Tor implementation shuffles them,
+ whereas Arti always places failures before successes so that they expire
+ sooner.)
+
2.4.6. Consensus parameters governing behavior
Clients that implement circuit build timeout learning should obey the