aboutsummaryrefslogtreecommitdiff
path: root/proposals/ideas
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2008-06-07 09:27:43 +0000
committerRoger Dingledine <arma@torproject.org>2008-06-07 09:27:43 +0000
commit1f78b40c67f73744bee0c7a9fc9b7cd4b13714fd (patch)
tree6d9595f75fe7f9813f4ce0e8af00bdc426cd9973 /proposals/ideas
parented91efd88f017e7f0c83ead21290f543e4d2fdac (diff)
downloadtorspec-1f78b40c67f73744bee0c7a9fc9b7cd4b13714fd.tar.gz
torspec-1f78b40c67f73744bee0c7a9fc9b7cd4b13714fd.zip
start a spec proposal to describe this whole bootstrapping phase thing
svn:r15010
Diffstat (limited to 'proposals/ideas')
-rw-r--r--proposals/ideas/xxx-bootstrap-phases.txt106
1 files changed, 106 insertions, 0 deletions
diff --git a/proposals/ideas/xxx-bootstrap-phases.txt b/proposals/ideas/xxx-bootstrap-phases.txt
new file mode 100644
index 0000000..e7d67d8
--- /dev/null
+++ b/proposals/ideas/xxx-bootstrap-phases.txt
@@ -0,0 +1,106 @@
+Filename: xxx-bootstrap-phases.txt
+Title: Keep controllers informed as Tor bootstraps
+Version: $Revision$
+Last-Modified: $Date$
+Author: Roger Dingledine
+Created: 07-Jun-2008
+Status: Open
+
+1. Overview.
+
+ Tor has many steps to bootstrapping directory information and
+ initial circuits, but from the controller's perspective we just have
+ a coarse-grained "CIRCUIT_ESTABLISHED" status event. Tor users with
+ slow connections or with connectivity problems can wait a long time
+ staring at the yellow onion, wondering if it will ever change color.
+
+ This proposal describes a new client status event so Tor can give
+ more details to the controller. Section 2 describes the changes to the
+ controller protocol; Section 3 describes Tor's internal bootstrapping
+ phases assuming everything goes correctly; and Section 4 describes
+ how and when Tor chooses to issue bootstrap warnings.
+
+2. Controller event syntax.
+
+ The generic status event is:
+
+ "650" SP StatusType SP StatusSeverity SP StatusAction
+ [SP StatusArguments] CRLF
+
+ So in this case we send
+ 650 STATUS_CLIENT NOTICE/WARN BOOTSTRAP \
+ PROGRESS=num TAG=string SUMMARY=string
+
+ "Progress" gives a number between 0 and 100 for how far through
+ the bootstrapping process we are. "Summary" is a string that can be
+ displayed to the user to describe the *next* task that Tor will tackle,
+ i.e., the task it is working on after sending the status event. "Tag"
+ is an optional string that controllers can use to recognize bootstrap
+ phases from Section 3, if they want to do something smarter than just
+ blindly displaying the summary string.
+
+ The severity describes whether this is a normal bootstrap phase
+ (severity notice) or an indication of a bootstrapping problem
+ (severity warn).
+
+3. The bootstrap phases.
+
+ Phase 0: tag=STARTING
+
+ Phase 5: tag=CONN_DIR
+
+ Phase 10: tag=HANDSHAKE_DIR
+
+ Phase 15: tag=ONEHOP_CREATE
+
+ Phase 20: tag=REQUESTING_STATUS
+
+ Phase 25: tag=LOADING_STATUS
+
+ Phase 40: tag=LOADING_KEYS
+
+ Phase 45: tag=REQUESTING_DESCRIPTORS
+
+ Phase 50: tag=LOADING_DESCRIPTORS
+
+ Phase 80: tag=CONN_OR
+
+ Phase 85: tag=HANDSHAKE_OR
+
+ Phase 90: tag=CIRCUIT_CREATE
+
+ Phase 100: tag=DONE
+
+
+ 5: fetching authority key certs
+ LOADING_KEYS
+ (authority_certs_fetch_missing)
+10: Connecting to directory mirror
+ CONN_DIR
+ (circuit_handle_first_hop)
+15: Finishing handshake with directory mirror
+ HANDSHAKE_DIR
+ (connection_or_finished_connecting)
+20: Establishing one-hop circuit for dir info
+ ONEHOP_CREATE
+ (circuit_send_next_onion_skin)
+25: Asking for networkstatus consensus
+ REQUESTING_STATUS
+ (circuit_send_next_onion_skin)
+30: Fetching networkstatus consensus
+ LOADING_STATUS
+ (update_consensus_networkstatus_downloads)
+50: Fetching relay descriptors
+ LOADING_DESCRIPTORS
+ (update_router_have_minimum_dir_info)
+80: Connecting to entry guard
+ CONN_OR
+ (update_router_have_minimum_dir_info)
+85: Finishing handshake with entry guard
+ HANDSHAKE_OR
+ (connection_or_finished_connecting)
+90: Establishing circuit
+ CIRCUIT_CREATE
+ (circuit_send_next_onion_skin)
+100: Done
+