[tor-dev] Pyonionoo Descriptors

Karsten Loesing karsten at torproject.org
Sat Jul 28 08:23:37 UTC 2012

Hi Megan, hi Erik,

cc'ing Sathya and tor-dev, hoping you don't mind.

On 7/27/12 5:21 PM, Megan Chang wrote:
> We are currently almost done with the first draft of pyonionoo.

Awesome! :)

> We were
> wondering what some of the entries might look like so we would be able to
> see what information was being parsed to fill in some of the fields such as
> the bandwidth handler's "write_history" and "read_history". We noticed that
> the router descriptor format includes "write_history" and "read_history"
> according to torspec but again, we aren't too sure on what these entries
> look like.

The bandwidth documents are tricky, because one cannot just look up
these values from Tor descriptors.  They're based on histories in
extra-info descriptors, but they aggregate these values on different
levels of detail, and they're specifically designed for graphing.  I
don't know about your schedule, but if you're short on time, I'd say
let's discuss summary and details documents first and ignore bandwidth
documents for the moment.  (Of course, if you have plenty of time left,
happy to discuss bandwidth documents more!)

Is your code online somewhere?  I'd like to take a look and give you
some feedback about Tor descriptor specific things (not so much about
Python/Twisted (?) things).

> Also, we don't know how to approach the fields in the details
> handler that require GeoIP information. Any tips on this?

Onionoo uses Maxmind's Java API, their GeoIP database, and their AS
database to resolve IP addresses to country/AS information.  There's a
Python API, too, which I think Sathya used for his network entropy code:


If you're unsure how to use it, best ask Sathya for more details.


More information about the tor-dev mailing list