Graphs for the Tor Relay Challenge
JavaScript Python CSS Puppet
Latest commit f43491b Sep 18, 2014 @kloesing Only consider added values since challenge start.
 - Add new option `-a` to only include bandwidth, weights, and clients
   values in combined document files starting at a given date time, and
   after subtracting maximum values from before that date time.
 - Add another option `-v` to write combined documents to a single
   comma-separated file for easier plotting.
 - Fix start and end dates of combined graphs.

Graphs for the Tor Relay Challenge

EFF is planning to do another "Tor relay challenge", to both help raise awareness of the value of Tor, and encourage many people to run relays. We should provide them with graphs visualizing progress.


sudo apt-get install python-requests

Update fingerprint.txt to contain the actual list of fingerprints of participating relays and bridges.

Please avoid running this script more often than once per hour. New data is only available at most once per hour, so running this script more often only puts unnecessary load on the Onionoo server.


  • combined-uptime.json contains combined uptime fractions of all relays or bridges listed in fingerprints.txt. This graph can be used to display "Total number of relays and bridges".
  • combined-bandwidth.json contains bandwidth histories of all relays or bridges listed in fingerprints.txt. The unit is total bytes per second read or written by all relays and bridges. This graph shows "Total bandwidth consumed by relays and bridges".
  • combined-weights.json contains sums of advertised bandwidth fractions, consensus weight fractions, and guard/middle/exit probabiliby fractions. One possible graph would be "Total consensus weight fraction added by relays".
  • combined-clients.json contains average number of clients served by all bridges listed in fingerprints.txt.
  • fingerprints.json contains (hashed) fingerprints and nicknames of participating relays and bridges.
  • transferred-bytes.json contains total written bytes by all participating relays and bridges.

The data format is pretty similar to the Onionoo protocol specification.