tor/doc/spec/proposals/104-short-descriptors.txt
Nick Mathewson 01b5ee3a4a r12275@Kushana: nickm | 2007-02-20 13:09:14 -0500
Note migration plan change for 104 from conversation with arma.


svn:r9605
2007-02-20 23:22:27 +00:00

60 lines
2.2 KiB
Plaintext

Filename: 104-short-descriptors.txt
Title: Long and Short Router Descriptors
Version: $Revision$
Last-Modified: $Date$
Author: Nick Mathewson
Created:
Status: Open
Overview:
This document proposes moving unused-by-clients information from regular
router descriptors into a special "long form" router descriptor.
It presents options; it is not yet a complete proposal.
Proposal:
Some of the costliest fields in the current directory protocol are ones
that no client actually uses. In particular, the "read-history" and
"write-history" fields are used only by the authorities for monitoring the
status of the network. If we took them out, the size of a compressed list
of all the routers would fall by about 60%. (No other disposable field
would save more than 2%.)
One possible solution here is that routers should generate and upload a
short-form and long-form descriptor. Only the short-form descriptor should
ever be used by anybody for routing. The long-form descriptor should be
used only for analytics and other tools. (If we allowed people to route
with long descriptors, we'd have to ensure that they stayed in sync with
the short ones somehow. So let's not do that.) We can ensure that the
short descriptors are used by only recommending those in the network
statuses.
Another possible solution would be to drop these fields from descriptors,
and have them uploaded as a part of a separate "bandwidth report" to the
authorities. This could help prevent the mistake of using long descriptors
in the place of short ones.
Thoughts? -NM
Migration:
For long/short descriptors:
* In 0.1.2.x:
* Add a "long version" URL that tools can start using now. Need to
design it first.
* In 0.1.2.x:
* Authorities should accept both, now, and silently drop short
descriptors.
* Routers should upload both once authorities accept them.
* There should be a "long descriptor" url and the current "normal" URL.
Authorities should serve long descriptors from both URLs.
* Once tools that want long descriptors support fetching them from the
"long descriptor" URL:
* Have authorities remember short descriptors, and serve them from the
'normal' URL.