Opened 5 years ago

Last modified 18 months ago

#13630 new project

Bandwidth Authority Renovation

Reported by: aagbsn Owned by:
Priority: Medium Milestone:
Component: Core Tor/Torflow Version:
Severity: Normal Keywords:
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


This ticket describes the Bandwidth Authority Refactoring Project.


Replace pyTorCtl with stem[1] or txtorcon
Address Critical Issues
Address Scalability Issues
Implement New Feedback Mechanisms


Bandwith Authorities are leaving 10 percent of the network unmeasured

Understand how accurate the bandwidth authority estimates are

The slowest fraction of the network takes 18 hours to complete

BwAuth takes a long time to scan the network

Make a torflow option that starts every testing circuit at a local Tor relay first


Decentralized measurement for network load balancing


Split BwAuth children more equally

Increase the number of parallel scanners in a BandwidthAuthority from 4 to 8

Feedback Mechanisms:

Implement bwauth cap for latency

Implement bwauth cap for TCP socket exhaustion

Bwauth: Use only "slow" measurements for positive feedback

Bandwidth auths should publish average and weighted onionskin failure rates

Detect overtuned exit relays

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?


EigenSpeed: Secure Peer-to-peer Bandwidth Evaluation

Requirements and Software Design for a Better Tor Performance Measurement Tool

[1] stem is "is a synchronous (threaded) Python library". There is/was? a plan to integrate it with txtorcon[2].


Child Tickets

#2550newmikeperrybwauth should reschedule quicker bandwidth test when bandwidthrate changes?Core Tor/Torflow
#2742closedmikeperryImproved flushing of bw auth scanner log message output?Core Tor/Torflow
#2888newmikeperryTesting framework/dataset for bw authsCore Tor/Torflow
#3679closedTorCtl Event Parsing RewriteTorctl
#3701closedPyTorCtl shouldn't os.kill() itselfCore Tor/Torflow
#3798closedBwAuthority does not exit cleanly; Traceback in _eventLoop at exitCore Tor/Torflow
#4015closedaagbsnBwAuthority postgres scanner freezes with changes from #3679 TorCtl Event Parsing RewriteCore Tor/Torflow
#4270newmikeperryProvide optimized postgres config for bw scannersCore Tor/Torflow
#4271newPerform some integrity checking in bw auth fetchesCore Tor/Torflow
#4359newmikeperryMinimize time between new relay appearing and having some bw vote for itCore Tor/Torflow
#4708newImplement bwauth cap for latencyCore Tor/Torflow
#4709newImplement bwauth cap for TCP socket exhaustionCore Tor/Torflow
#4909newbwscan never cleans up log filesCore Tor/Torflow
#4910closedaagbsnbwauthpid has confusing parameter namesCore Tor/Torflow
#9788closedaagbsnTorflow BandwidthAuthority url lists are baked into sourceCore Tor/Torflow
#9789newTorFlow BandwidthAuthority sleep scheduleCore Tor/Torflow
#10791newDetect overtuned exit relaysCore Tor/Torflow
#13449closedaagbsnbwauth takes a long time to scan the networkCore Tor/Torflow
#14177closedaagbsnbwauth spends some 40 minutes "updating rank history". Every hour.Core Tor/Torflow
#15238newImprove or replace TorFlowCore Tor/Torflow
#23412closedDo bandwidth authorities reset history when the relay fingerprint changes?Core Tor/Torflow

Change History (5)

comment:1 Changed 5 years ago by atagar

[1] stem is "is a synchronous (threaded) Python library". There is/was? a plan to integrate it with txtorcon[2].

Yup. This is something both meejah and I would love for somebody to take on. We've directed folks to it for GSoC but no nibbles...

comment:2 Changed 5 years ago by aagbsn

I can't edit the original ticket, so here are additional related tickets:

Publish and use circuit success rates in extrainfo descriptors

Bandwidth auths should publish average and weighted onionskin failure rates

comment:3 Changed 19 months ago by teor

Severity: Normal

Priorities and Severities in torflow are meaningless, setting them all to Medium/Normal.

comment:4 Changed 19 months ago by teor

Owner: aagbsn deleted
Status: newassigned

aagbsn was the default owner, unassigning

comment:5 Changed 18 months ago by teor

Status: assignednew

Mark all tickets that are assigned to nobody as "new".

Note: See TracTickets for help on using tickets.