[tor-bugs] #9778 [Onionoo]: Adding votes documents to Onionoo
Tor Bug Tracker & Wiki
blackhole at torproject.org
Wed Apr 23 09:58:22 UTC 2014
#9778: Adding votes documents to Onionoo
-----------------------------+---------------------
Reporter: karsten | Owner: karsten
Type: enhancement | Status: new
Priority: normal | Milestone:
Component: Onionoo | Version:
Resolution: | Keywords:
Actual Points: | Parent ID:
Points: |
-----------------------------+---------------------
Comment (by karsten):
Replying to [comment:6 alphawolf]:
> What if we include an array of authorities that voted in the current
consensus? Since the document is designed for machine consumption, we
don't actually need to repeat the authority names under each
"missing_flags"/"extra_flags" property. Instead, these properties become
arrays of arrays, with the index of each subarray corresponding to the
index of the authority.
Hmm, I think we can't move authority names to the top level, for several
reasons. Most importantly, it may always be the case that an authority
doesn't vote on a flag, even when "Named" and "Unnamed" are gone. To make
this even more complicated, there's an open Tor proposal
([https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/177-flag-
abstention.txt proposal 177]) that suggests allowing authorities to
abstain from voting on flags for only a subset of relays.
Another reason why I'd like to avoid adding new fields to the top level is
that all response types return exactly these four fields at the top level:
"relays_published", "relays", "bridges_published", "bridges". This is
done to simplify parsing responses by clients. Adding a new "authorities"
field just for details responses would break that simplification.
Yet another reason is that we're putting together responses from
previously written JSON documents. These pre-written documents may be
days old, and it might well be the case that some authorities took that
day off but not the current day. So, any object contained in "relays" or
"bridges" must be self-contained.
> > 2. There's nothing that the user could hover over to learn about flags
in votes that didn't make it into the consensus. This would be the
tooltip that would display `extra_flags`. Not sure how to solve this.
> >
>
> Atlas could show the flags grayed out, in red, or with a strike through
(or a combination) if a flag was not in the consensus. Hovering over the
"inactive" flag could then show the missing/extra flags tooltip.
Right, we can do that! Good idea!
> While we're working out the document format, I propose shortening the
flags to a 1-2 character token each. The property names under "relays"
could also be shortened. Saving a few bytes in this area will end up
saving megabytes when votes for all relays are requested.
Not sold on that one. The actual saving shouldn't be that big with
compression turned on (yes, yes, that's a different ticket). And while
documents are designed for machine consumption, there's always a tiny
fraction of people who read machine-readable documents because there's no
good user interface (yet). There's also the issue that clients will have
to understand both full and shortened field names at least for a while.
That requires quite some coordination, and in practice we'll still end up
with broken clients.
Are there any other ways to improve the document format for including vote
information? And should we consider additional information contained in
the proposed "vote-info" document type
([https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/164
-reporting-server-status.txt proposal 164])?
Thanks for your feedback here!
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/9778#comment:7>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list