mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
touchups
svn:r18165
This commit is contained in:
parent
3f9b2dda53
commit
31d05f5aa3
@ -8,17 +8,19 @@ Status: Open
|
||||
|
||||
1. Overview
|
||||
|
||||
This proposal replaces section 3.2 of proposal 141, called "Fetching
|
||||
descriptors on demand". Rather than modifying the circuit-building
|
||||
protocol to fetch a server descriptor inline at each circuit extend,
|
||||
we instead put all of the information that clients need either into
|
||||
the consensus itself, or into a new set of data about each relay
|
||||
called a microdescriptor. The goal is that descriptor elements that
|
||||
are small and frequently changing should go in the consensus itself,
|
||||
descriptor elements that are small and relatively static should go in
|
||||
the microdescriptor, and if we ever end up with descriptor elements
|
||||
that aren't small yet clients need to know them, we'll need to resume
|
||||
considering some design like the one in proposal 141.
|
||||
This proposal replaces section 3.2 of proposal 141, which was
|
||||
called "Fetching descriptors on demand". Rather than modifying the
|
||||
circuit-building protocol to fetch a server descriptor inline at each
|
||||
circuit extend, we instead put all of the information that clients need
|
||||
either into the consensus itself, or into a new set of data about each
|
||||
relay called a microdescriptor.
|
||||
|
||||
The goal is that descriptor elements that are small and frequently
|
||||
changing should go in the consensus itself, descriptor elements that
|
||||
are small and relatively static should go in the microdescriptor,
|
||||
and if we ever end up with descriptor elements that aren't small yet
|
||||
clients need to know them, we'll need to resume considering some design
|
||||
like the one in proposal 141.
|
||||
|
||||
2. Motivation
|
||||
|
||||
@ -31,10 +33,10 @@ Status: Open
|
||||
|
||||
3. Design
|
||||
|
||||
There are three pieces to the proposal. First, authorities will list
|
||||
in their votes (and thus in the consensus) what relay elements are
|
||||
included in the microdescriptor, and also list the expected hash of
|
||||
microdescriptor for each relay. Second, directory mirrors will serve
|
||||
There are three pieces to the proposal. First, authorities will list in
|
||||
their votes (and thus in the consensus) what relay descriptor elements
|
||||
are included in the microdescriptor, and also list the expected hash
|
||||
of microdescriptor for each relay. Second, directory mirrors will serve
|
||||
microdescriptors. Third, clients will ask for them and then cache them.
|
||||
|
||||
3.1. Consensus changes
|
||||
@ -82,8 +84,8 @@ Status: Open
|
||||
over the elements that we're declaring it should be for.
|
||||
|
||||
Then the "m" line for a given relay is the one that gets the most votes
|
||||
from authorities that a) voted for the microdescriptor-elements line
|
||||
we're using, and b) voted for the descriptor we're using.
|
||||
from authorities that both a) voted for the microdescriptor-elements
|
||||
line we're using, and b) voted for the descriptor we're using.
|
||||
|
||||
(If there's a tie, use the smaller hash. But really, if there are
|
||||
multiple such votes and they differ about a microdescriptor, we caught
|
||||
@ -102,7 +104,7 @@ Status: Open
|
||||
each authority will still have to decide what hash to vote for before
|
||||
knowing what consensus-method will be used.
|
||||
|
||||
Here's one way we could do that. Each vote / consensus includes both
|
||||
Here's one way we could do it. Each vote / consensus includes
|
||||
the microdescriptor-elements that were used to compute the hashes,
|
||||
and also a preferred-microdescriptor-elements set. If an authority
|
||||
has a consensus from the previous period, then it should use the
|
||||
@ -175,6 +177,9 @@ Status: Open
|
||||
Fetching "all" when you need at least half is a good first order fix,
|
||||
but might not be all there is to it.
|
||||
|
||||
Another future option would be to fetch some of the microdescriptors
|
||||
anonymously (via a Tor circuit).
|
||||
|
||||
4. Transition and deployment
|
||||
|
||||
Phase one, the directory authorities should start voting on
|
||||
|
Loading…
Reference in New Issue
Block a user