Add UUID to families in Onionoo
This is an enhancement of the implementation proposed in #16599 (moved).
Some services that depend onOnionoorequire persistence in family data. For instance, some of the proposed features of Roster such as replacing Tor Weather require knowing when a certain relay goes down. Analogous to Tor spec proposal #242 (moved),Onionoo should implement such a scheme.
Put simply, the implementation would be as follows:
- Each family will have some UUID, which would be tagged on all member relays (like an extra fingerprint).
- A new relay will be tagged by its family's UUID by looking up the ID of older relatives.
- There are two schemes for storing key-value based data. One is for looking up families via UUID, the other for looking up a UUID via relay fingerprint.
Unlike #16599 (moved), this implementation does not require any a priori information about the family. The UUIDs are guaranteed to be unique. Currently, Roster has a half-baked implementation of the above. Despite the simplicity of the implementation, the benefits are potentially great, as querying for and storing persistent data of families would become possible.
On uniqueness of UUIDs