Discussion:
[tor-dev] Consensus-health single-relay data
Tom Ritter
2018-03-07 17:22:14 UTC
Permalink
teor suggested the other day that it'd be really useful to be able to
see the vote data for a single relay; since the _entire_ detailed page
is huge and unwieldy.

I've been pondering how I could support this without complicating the
server, which results in a few constraints:
a) I really don't want to create one file per-relay
b) I really don't want to make any server-side logic, I'd like to keep
it as static HTML and client-side javascript. (With the client-side
javascript optional for most of the information.)


I think I can make something work using AJAX and Range requests
though. Before I fly forward with that though, I wanted to understand
a bit more about the use cases where one wants to see per-relay vote
data.

The biggest question I have for you teor (and anyone else who wants to
chime in) is how do you know what relay you want the information for?
Do you know the fingerprint?

If so, I could try adding a text box at the bottom of the index page
saying "Supply a fingerprint, and I will populate vote data for this
relay inline".

-tom
teor
2018-03-07 19:30:25 UTC
Permalink
Post by Tom Ritter
teor suggested the other day that it'd be really useful to be able to
see the vote data for a single relay; since the _entire_ detailed page
is huge and unwieldy.
I've been pondering how I could support this without complicating the
a) I really don't want to create one file per-relay
b) I really don't want to make any server-side logic, I'd like to keep
it as static HTML and client-side javascript. (With the client-side
javascript optional for most of the information.)
I think I can make something work using AJAX and Range requests
though. Before I fly forward with that though, I wanted to understand
a bit more about the use cases where one wants to see per-relay vote
data.
The biggest question I have for you teor (and anyone else who wants to
chime in) is how do you know what relay you want the information for?
Do you know the fingerprint?
I know whatever the relay operator supplies.
Usually, that's a fingerprint.
Sometimes, it's just a name or part of a name.

But most of the time, I have looked up the relay on Relay Search
before using Consensus Health. Or I could look it up, to avoid having
my browser grind for a minute downloading the large consensus
health page.
Post by Tom Ritter
If so, I could try adding a text box at the bottom of the index page
saying "Supply a fingerprint, and I will populate vote data for this
relay inline".
That would work for me.
And I think it would make consensus health more usable for
(some) relay operators.

T
nusenu
2018-03-07 21:43:00 UTC
Permalink
Post by Tom Ritter
teor suggested the other day that it'd be really useful to be able to
see the vote data for a single relay;
great to see this is being worked on - thanks for that!
Previously we also mentioned this feature in the context of onionoo,
but processing votes is not something onionoo does currently (and it is a lot
more data to take).
--
https://mastodon.social/@nusenu
twitter: @nusenu_
Tom Ritter
2018-03-09 19:28:49 UTC
Permalink
Please test http://utternoncesense.com/ : check the end of the page.
(Note this is a static link, I'm not updating it every hour).

I have tested it on Tor Browser and High Security Slider, seems to
work for me, but I want feedback on the UX and for bugs. Obviously
this doesn't work with js disabled, but it should at least tell you
what the issue is.

---

Under the covers while generating the detailed page, I also generate a
list of indexes for each relay. I lazy-load that list at the end of
the index page load (about 700kb). When you ask for a fingerprint it
makes a range request using that index. Even trying to be as speedy as
I could be, the lazy-load is quite fast. I'm hopeful the use case of
trying to paste a fingerprint in as fast as one can is acceptable and
speedy, so give that a shot.

I almost was able to do with with no apache config, but it turns out
that the HTTP spec is ambiguous about how to handle Range requests on
gzipped content, so Apache just doesn't. ' SetEnvIf
X-Requested-With XMLHttpRequest no-gzip' will fix it for this use
case.

In the future I expect to be able to extend this to inline-load
historical data from the prior consensus when you click the <- button;
but I have to give some more thought to how I want to display that.
(And it's more complicated in general.)

-tom
Post by nusenu
Post by Tom Ritter
teor suggested the other day that it'd be really useful to be able to
see the vote data for a single relay;
great to see this is being worked on - thanks for that!
Previously we also mentioned this feature in the context of onionoo,
but processing votes is not something onionoo does currently (and it is a lot
more data to take).
--
_______________________________________________
tor-dev mailing list
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
teor
2018-03-09 19:55:15 UTC
Permalink
Post by Tom Ritter
I have tested it on Tor Browser and High Security Slider, seems to
work for me, but I want feedback on the UX and for bugs
Wow! It works! And it even works in iOS Safari.

Also, there is a feature? where you can keep pasting relay fingerprints
into the box, and it will keep adding them to the end of the page.

How hard would it be to add support for:
* multiple fingerprints
* nicknames
* partial fingerprints

I don't know how important each of these features are.
But I bet that nicknames would be the first feature request from most users.

T
Tom Ritter
2018-04-07 01:49:48 UTC
Permalink
This now supports exact nickname, partial fingerprint, and multiple of
each; and is deployed. Other updates are:

- Known flags are not omitted from summary
- A footnote is given when an assigning bwauth is not present
- the misleading sha-1 signature algorithm is removed
- Atlas became Relay Search
- You can search for relays in votes that are missing a flag (e.g.
that are struck-through) by prefacing the flag with a "!". E.g.
"!HSDIR" on the detailed will show relays where one DirAuth did not
vote for the HSDir flag, but enough DirAuths did such that it was
granted the flag. This is particularly useful for !ReachableIPv6
Post by teor
Post by Tom Ritter
I have tested it on Tor Browser and High Security Slider, seems to
work for me, but I want feedback on the UX and for bugs
Wow! It works! And it even works in iOS Safari.
Also, there is a feature? where you can keep pasting relay fingerprints
into the box, and it will keep adding them to the end of the page.
* multiple fingerprints
* nicknames
* partial fingerprints
I don't know how important each of these features are.
But I bet that nicknames would be the first feature request from most users.
T
_______________________________________________
tor-dev mailing list
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
Loading...