Implement full circuit-build-timeout logic
Tor has a complicated set of logic that measures how long circuits take to build, and then adjusts Tor's time-out requirements accordingly. This is important for performance (and possibily security) properties.
-
Basic pareto estimator backend -
Set parameters from consensus -
Record measurements from circuits as they are built. -
Record timeouts from circuits as they time out. -
Compute circuit timeouts correctly, given different circuit lengths. -
Actually use timeout estimates to decide when to timeout/abandon a circuit. -
Use correct "doubling" algorithm from path-spec 2.4.5. -
Break histogram-bin ties correctly. -
Make sure all consensus paremeters are implemented. -
Ability to switch (or reconfigure) estimators while running -
Actually use pareto estimator -
Testing.
These are a bit tricky and will want to be separate tickets:
- #142 (closed): Add a function to tell us when we last saw incoming network activity.
- #143 (closed): Persistence for build-time data
- #144 (closed): Get notification about changes in network parameters.
- #145 (closed): Launch testing circuits as needed.
Edited by Nick Mathewson