Implement proposal 321: "Better performance and usability for the MyFamily option (v2)"
Proposal 321 explains how to migrate from the status quo, in which an n-member family consumes O(n^2) bytes in advertising itself, to an improved situation in which an n-member family requires only O(n) bytes to advertise itself. This is a prerequisite for Walking Onions.
To implement the proposal, we should follow approximately these steps:
-
Double-check with the relay operator community about usability issues. -
Ask the network-health community about possible issues I haven't thought of. -
Implement code to generate, read, and maintain family keys and family certificates. -
Relays should publish family certificates in router descriptors -
Authorities should derive family-keys entries in microdescriptors from family certificates. This will require a new consensus method. -
Relays should, based on a derive-family-line
consensus parameter, infer entries for a family line based on other observed router descriptors with the same family keys. -
Clients should use family-keys entries when deciding if two relays are in the same family.
Edited by Nick Mathewson