[tor-commits] [chutney/master] README: Document how a tor network bootstraps
teor at torproject.org
teor at torproject.org
Fri Mar 13 01:11:26 UTC 2020
commit 59c9a9764aa41e1988c878b386405bf639e890f1
Author: teor <teor at torproject.org>
Date: Wed Feb 19 15:17:39 2020 +1000
README: Document how a tor network bootstraps
Part of 33232.
---
README | 39 +++++++++++++++++++++++++++++++++------
1 file changed, 33 insertions(+), 6 deletions(-)
diff --git a/README b/README
index 9712232..2e850ff 100644
--- a/README
+++ b/README
@@ -157,15 +157,40 @@ Multiple Tests:
CHUTNEY_CONNECTIONS=N to make multiple connections within each verification
round. Any round or connection failure will fail the current test.
-Waiting for the network:
+Bootstrapping the network:
+
+ Chutney expects a tor network to bootstrap in these stages:
+ 1. All directory authorities (DirAuths) bootstrap to 100%.
+ 2. The DirAuths produce the first consensus.
+
+ 3. Relays bootstrap to 100%.
+ 4. Relays with "AssumeReachable 1" publish their descriptors to the
+ DirAuths.
+ 5. The DirAuths produce a consensus containing enough nodes for
+ relay reachability self-tests (usually 3 nodes).
+
+ 6. Relays perform ORPort reachability self-tests.
+ If the consensus contains at least 1 exit, relays also perform DirPort
+ reachability self-tests.
+ 7. Relays publish their descriptors to the DirAuths.
+ 8. The DirAuths produce a consensus containing all authorities (including
+ the bridge authority, if present) and all relays.
+
+ 9. Clients bootstrap to 100%.
+ (Clients start bootstrapping as soon as the first consensus is
+ available.)
+ 10. Onion Services publish their descriptors to Onion Service directories
+ (otherwise known as hidden service directories, or HSDirs).
The tools/test-network.sh script uses the chutney wait_for_bootstrap
command to wait for up to CHUTNEY_START_TIME seconds (default: 120), checking
- whether the logged bootstrapped status for every node is 100%. It it is,
- great: it succeeds. If not, it dumps the bootstrap statuses and exits.
- test-network.sh does not exit immediately if a tor node fails to bootstrap.
- Instead, it attempts to verify. We'll add an option to fail on tor
- bootstrap failure in #20473.
+ whether the logged bootstrapped status for every node is 100% (step 9). If
+ all the nodes have bootstrapped, wait_for_bootstrap succeeds. If some nodes
+ have not bootstrapped, wait_for_bootstrap dumps the bootstrap statuses, and
+ exits with a failure. But test-network.sh does not exit immediately if a tor
+ node fails to bootstrap. Instead, it attempts to verify.
+
+Verifying the network:
Commands like "chutney verify" start immediately, and keep trying for
CHUTNEY_BOOTSTRAP_TIME seconds (default: 60). If it hasn't been
@@ -173,6 +198,8 @@ Waiting for the network:
the script leaves the network running, and exits after CHUTNEY_START_TIME
(without verifying).
+Shutting down the network:
+
The tools/test-network.sh script waits CHUTNEY_STOP_TIME seconds
after verifying, then exits (default: immediately). If CHUTNEY_STOP_TIME is
negative, the script leaves the network running, and exits after verifying.
More information about the tor-commits
mailing list