[tor-bugs] #16599 [Onionoo]: Onionoo feature

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Jul 16 10:02:14 UTC 2015


#16599: Onionoo feature
--------------------------------+-----------------
     Reporter:  virgilgriffith  |      Owner:
         Type:  enhancement     |     Status:  new
     Priority:  normal          |  Milestone:
    Component:  Onionoo         |    Version:
   Resolution:                  |   Keywords:
Actual Points:                  |  Parent ID:
       Points:                  |
--------------------------------+-----------------

Comment (by karsten):

 Before we discuss possible implementations of such a family ID, which is
 certainly algorithmically fun, I'd first want to talk more about the
 intended use case.  What do you need a unique family ID for?  Onionoo
 already has a `family` parameter that accepts a fingerprints and returns
 that relay plus all relays in that relay's family that also list that
 relay in their family.  What you could do in your Roster application is
 accept any relay fingerprint of a user's relay family and simply hand that
 fingerprint over to Onionoo.  Then you wouldn't have to introduce the
 concept of family IDs at all.

 Now to a possible implementation of such a family ID, assuming there's
 indeed a valid use case for it: I don't think we can implement the UUID
 schema you describe.  One issue is that two Onionoo instances, one of
 which having intermittend network problems, may have a slightly different
 view on the Tor network and therefore assign UUIDs differently.  And what
 if a relay that is around for years is suddenly reconfigured to join a
 family?  And more generally, what if two families are merged, or if a
 family falls apart?  I'm afraid we'd find many more edge cases where the
 proposed numbering schema would fail as soon as we start implementing it.
 The concept seems too fragile to me.

 There's also a problem with the definition of "effective family".  You
 write that "Relays of an effective family are defined as a set of relays
 where every relay has a symmetric connection to every other relay, or, in
 other words, every relay points to every other relay."  But that's not the
 case right now.  Consider a relay A with family A, B, C.  If B's family is
 A, B, and C's family is A, C, we'd right now say that A's effective family
 is A, B, C.  Maybe that means that our current definition of "effective
 family" is flawed.

 Here's an alternative idea which is, admittedly, not fleshed out yet.  Can
 we combine relay fingerprints of family members somehow into a family
 fingerprint and use that to identify the family?  Of course, that family
 fingerprint would change once family members leave or new members join,
 but maybe we can use some kind of distance metric and identify the family
 that is closest to that fingerprint: "The family fingerprint XY is
 unknown, but there are two families with similar fingerprints XZ and WY."
 I could trying out bit-wise operations or probabilistic data structures
 for family fingerprints and then using something like Hamming distance for
 the comparison.

 Another option to consider here is to just go ahead and implement proposal
 242.  This might be a good opportunity to do the research and the coding,
 and it's not only Roster/Onionoo users that would benefit from that, but
 all relay family operators.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/16599#comment:4>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list