[tor-dev] Better relay uptime visualisation

Tom Ritter tom at ritter.vg
Mon Dec 7 23:43:01 UTC 2015


On 7 December 2015 at 13:51, Philipp Winter <phw at nymity.ch> wrote:
> I spent some time improving the existing relay uptime visualisation [0].
> Inspired by a research paper [1], the new algorithm uses single-linkage
> clustering with Pearson's correlation coefficient as distance function.
> The idea is that relays are grouped next to each other if their uptime
> (basically a binary sequence) is highly correlated.  Check out the
> following gallery.  It contains monthly relay uptime images, dating back
> to 2007:
> <https://nymity.ch/sybilhunting/uptime-visualisation/>
>
> If you aren't familiar with this type of visualisation: Every image
> shows the uptime of all Tor relays that were online in a given month.
> Every row is a consensus and every column is a relay.  White pixels mean
> that a relay was offline and black pixels means that a relay was
> online.  Red pixels are used to highlight suspiciously similar clusters.

That's really cool.  It seems to imply that the majority of the tor
network stop operating halfway through the month though... Do the
other tor graphs take into account hibernating relays?  For example, I
would expect the time-to-download graph would be somewhat affected:
https://metrics.torproject.org/torperf.html?graph=torperf&start=2015-10-01&end=2015-10-31&source=all&filesize=5mb

> Another practical problem is that it's cumbersome to learn the relay
> fingerprint of a given column.  I'm looking into JavaScript/HTML tricks
> that can show text when you hover over a region in the image.  Perhaps
> somebody knows more?

Besides David's way, you could also do this with <canvas>.  Stick the
image in the back of a canvas, then get the mouse coordinates like so:
http://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/
 You can detect a click and use it to display the data below.  You
could also use it to show a zoomed-in version of the surrounding area
on another canvas below, and then let the user click in _that_ canvas
to actually load details. (Since no one can do pixel-perfect
clicking.)

-tom


More information about the tor-dev mailing list