<div dir="ltr"><div>Filename: ExtraRelayDescriptorFields.txt</div><div>Title: Adding new X- fields to relay descriptor</div><div>Author: Virgil Griffith, Nick Mathewson</div><div>Created: 2014-06-03</div><div>Status: Open</div>

<div><br></div><div><br></div><div>1. Motivation</div><div>We wish to allow developers to build new applications atop relays. Towards this</div><div>end, we wish to add the ability for users to specify arbitrary new key-value</div>

<div>entries under the "X-" namespace.</div><div><br></div><div><br></div><div>2. Proposal</div><div>Allow optional key-value lines in the relay's torrc file.  These lines will be</div><div>mirrored in the relay's descriptor which is then published in the directory</div>

<div>consensus.</div><div><br></div><div><br></div><div>For example:<br></div><div>X-bitcoin 19mP9FKrXqL46Si58pHdhGKow88SUPy1V8</div><div>X-gravatar <a href="https://s.gravatar.com/avatar/d27fce46c9ac41a41bb52455ae75701d">https://s.gravatar.com/avatar/d27fce46c9ac41a41bb52455ae75701d</a></div>

<div>X-favoritequote Be excellent to each other.  Party on dudes!</div><div>X-foo bar</div><div><br></div><div><br></div><div>The value field must be printable ASCII (characters 32-126).  The value must</div><div>not under any condition contain a newline.  The key may contain lowercase</div>

<div>ASCII letters (a-z), digits, underscore, or dash.  In regex, [-_0-9a-z].</div><div><br></div><div>There may need to be a maximum sum length of the X- entries.  This is</div><div>left to the developers.  I propose a maximum sum length of 5 kilobytes.</div>

<div><br></div><div>To mitigate the chance of a malformed torrc file, I additionally propose there</div><div>be a schema for the relay descriptor, and if the relay descriptor fails to</div><div>match the schema it errors to the user to change her torrc file.</div>

<div><br></div><div>-V</div></div>