wiki:org/meetings/2018Rome/Notes/BandwidthAuthorityRequirements

Version 1 (modified by teor, 4 months ago) (diff)

Draft sent to the dir auth list

Minimum Requirements

(An initial draft sent to the dir-auth list)

Any bandwidth authority implementation:

  • must measure relay capacity
  • must not rely on self-reported capacities
  • must include new relays within a short time
  • must produce results that Tor can parse
  • must update results so they are not stale

Bandwidth authorities that produce votes for the same consensus:

  • must scale results so they are similar to existing results

(This spec deliberately allows for implementations like OnionPerf and PeerFlow. I don't want to require a clone of the current design.)

I tried to keep the list small, because every extra feature delays the implementation.

There are a bunch of other features that are nice, but not essential.

For example:

  • using multiple bandwidth servers

And there are some features that we're not sure if we want.

For example:

  • limiting capacity in some countries, ASs, ...

We can list these extra features in the spec, but I don't want to spend much time on them.

Scaling

Express each weight as a proportion of the total, and multiply by some agreed total (e.g. for the current network it would have to be the total of the consensus weight, but within some limited range to avoid unbounded growth).

See the graphs in #25459.