Filename: ExtraRelayDescriptorFields.txt
Title: Adding new X- fields to relay descriptor
Author: Virgil Griffith, Nick Mathewson
Created: 2014-06-03
Status: Open
1. Motivation
We wish to allow developers to build new applications atop relays. Towards this
end, we wish to add the ability for users to specify arbitrary new key-value
entries under the "X-" namespace.
2. Proposal
Allow optional key-value lines in the relay's torrc file. These lines will be
mirrored in the relay's descriptor which is then published in the directory
consensus.
For example:
X-bitcoin 19mP9FKrXqL46Si58pHdhGKow88SUPy1V8
X-favoritequote Be excellent to each other. Party on dudes!
X-foo bar
The value field must be printable ASCII (characters 32-126). The value must
not under any condition contain a newline. The key may contain lowercase
ASCII letters (a-z), digits, underscore, or dash. In regex, [-_0-9a-z].
There may need to be a maximum sum length of the X- entries. This is
left to the developers. I propose a maximum sum length of 5 kilobytes.
To mitigate the chance of a malformed torrc file, I additionally propose there
be a schema for the relay descriptor, and if the relay descriptor fails to
match the schema it errors to the user to change her torrc file.
-V