Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information