Bandwidth Authority Renovation
This ticket describes the Bandwidth Authority Refactoring Project.
Goals:
- Replace pyTorCtl with stem[1] or txtorcon
- Address Critical Issues
- Address Scalability Issues
- Implement New Feedback Mechanisms
Critical:
- Bandwith Authorities are leaving 10 percent of the network unmeasured https://trac.torproject.org/projects/tor/ticket/13450
- Understand how accurate the bandwidth authority estimates are https://trac.torproject.org/projects/tor/ticket/7177
- The slowest fraction of the network takes 18 hours to complete https://trac.torproject.org/projects/tor/ticket/9795
- BwAuth takes a long time to scan the network https://trac.torproject.org/projects/tor/ticket/13449
- Make a torflow option that starts every testing circuit at a local Tor relay first https://trac.torproject.org/projects/tor/ticket/9762
Decentralize:
- Decentralized measurement for network load balancing https://trac.torproject.org/projects/tor/ticket/5464
Parallelise:
- Split BwAuth children more equally https://trac.torproject.org/projects/tor/ticket/3440
- Increase the number of parallel scanners in a BandwidthAuthority from 4 to 8 https://trac.torproject.org/projects/tor/ticket/9795
Feedback Mechanisms:
- Implement bwauth cap for latency https://trac.torproject.org/projects/tor/ticket/4708
- Implement bwauth cap for TCP socket exhaustion https://trac.torproject.org/projects/tor/ticket/4709
- Bwauth: Use only "slow" measurements for positive feedback https://trac.torproject.org/projects/tor/ticket/4730
- Bandwidth auths should publish average and weighted onionskin failure rates https://trac.torproject.org/projects/tor/ticket/7281
- Detect overtuned exit relays https://trac.torproject.org/projects/tor/ticket/10791
untracked issues?:
- Scalability - how are the BwAuths scaling?
- How long does this take?
- How much longer will it take with 10000 relays?
- Network stability?
- Circuit failure rates?
- Partition detection?
papers:
-
EigenSpeed: Secure Peer-to-peer Bandwidth Evaluation https://www.usenix.org/legacy/event/iptps09/tech/full_papers/snader/snader.pdf http://www.cs.ucla.edu/~nrl/CapProbe/
-
Requirements and Software Design for a Better Tor Performance Measurement Tool https://research.torproject.org/techreports/torperf2-2013-10-30.pdf
[1] stem is "is a synchronous (threaded) Python library". There is/was? a plan to integrate it with txtorcon[2].
[2] https://www.torproject.org/getinvolved/volunteer.html.en#txtorcon-stemIntegration