[tor-bugs] #28281 [Core Tor/Tor]: outline of high-level bootstrap tracker abstractions

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Nov 2 18:19:46 UTC 2018


#28281: outline of high-level bootstrap tracker abstractions
--------------------------+------------------------------------
 Reporter:  catalyst      |          Owner:  catalyst
     Type:  task          |         Status:  assigned
 Priority:  Medium        |      Milestone:  Tor: 0.3.6.x-final
Component:  Core Tor/Tor  |        Version:
 Severity:  Normal        |     Resolution:
 Keywords:  s8-boostrap   |  Actual Points:
Parent ID:  #28018        |         Points:  0.5
 Reviewer:                |        Sponsor:  Sponsor8
--------------------------+------------------------------------

Comment (by catalyst):

 Working from the list in [ticket:27103#comment:2 #27103], this is a
 hopefully useful breakdown of the high-level phases of bootstrapping:

 1. making the initial OR_CONN to any relay or bridge (see #27103)
    * this should track the farthest progress that any individual attempt
 has made so far
    * "farthest progress" should probably be reset under some circumstances
 (see #27691)
 2. directory info
    a. one-hop circuit, if needed?
    b. bridge descriptor, if bridges are used? (see #11966)
    c. consensus
    d. descriptors (usually microdescs for clients)
 3. building a useful application circuit
    a. first OR_CONN to a guard if we're not using bridges
    b. intermediate progress such as noting when each hop gets built (see
 #27104)

 In a pubsub framework, (1) will need to subscribe to events from
 connections, and keep track of the maximum progress any one connection has
 gotten.

 There should be an abstraction that tracks circuit-building progress.  We
 can use it for (2)(a) and (3)(b).

 We could make separate trackers for (2)(c) and (2)(d).  As a bonus, those
 trackers could handle the scaling of incremental progress for downloads.

 If we make a tracker that subscribes to both circuit and connection
 events, we could cleanly solve bugs such as #25061.  It would also work
 for (3)(a), which needs to know both circuit type (application circuit)
 and connection state.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/28281#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list