On 7 December 2015 at 13:51, Philipp Winter phw@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-...
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