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
These are a bit tricky and will want to be separate tickets: