Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Trac
Trac
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Create a new issue
  • Issue Boards

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • Legacy
  • TracTrac
  • Issues
  • #16599

Closed (moved)
Open
Opened Jul 15, 2015 by virgil@virgil

Onionoo feature: family ID

Whereas each relay is uniquely identified (by its fingerprint), families do not have unique identifiers. We want to change that. As it is currently unclear whether family ids will be implemented (prop 242), we (Virgil Griffith and Sean Saito) propose the stopgap solution that, at least within Onionoo, each family is assigned a unique positive integer (UUID) derived from the "first_seen" field of the oldest relay within its "effective_family" (symmetric family). If two families have exactly the same oldest "first_seen" field, the families are assigned UUIDs based on asciibetical order of the oldest relay's fingerprint.

How it works To compute the UUIDs, Onionoo would iterate over all effective families and record the earliest "first_seen" value within each effective family. The effective families are then sorted by their first_seen value (ties broken by asciibetical order), and assigned an index (UUID) starting from 1. This UUID number will be invariant under relays leaving / being added to the family. When a new effective_family is discovered it is assigned the next UUID.

Effective families 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. Work is currently being done (ticket #16276 (moved)) to resolve asymmetric connections between relays (where one relay points to a relay but that relay does not point back).

Finally, upon receiving a request with a specific relay's fingerprint, Onionoo would return:

  1. The symmetric family, a.k.a. the "effective family" of that relay. If there is none returns an empty list.
  2. The UUID (a positive integer) of that effective family.

References

  • Proposition 242 https://gitweb.torproject.org/torspec.git/tree/proposals/242-better-families.txt
  • Ticket #16276 (moved) https://trac.torproject.org/projects/tor/ticket/16276
To upload designs, you'll need to enable LFS and have admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: legacy/trac#16599