[tor-dev] Review of Proposal 147: Eliminate the need for v2 directories in generating v3 directories

Karsten Loesing karsten at torproject.org
Fri Jan 17 15:38:50 UTC 2014


On 1/16/14 10:06 PM, Nick Mathewson wrote:
> On Wed, Jan 15, 2014 at 9:15 PM, Roger Dingledine <arma at mit.edu>
> wrote:
>> On Wed, Jan 15, 2014 at 01:08:03PM +0100, Karsten Loesing wrote:
>>> I talked to Roger on IRC, and here's why this proposal may indeed
>>> be overkill:
>>> 
>>> As of January 2013, there is only a single version 3 directory
>>> authority left that serves version 2 statuses: dizum.  moria1 and
>>> tor26 have been rejecting version 2 requests for a long time, and
>>> it's mostly an oversight that dizum still serves them.  The other
>>> six authorities have never generated version 2 statuses for
>>> others to be used as pre-voting opinions.  So, it's basically not
>>> true that version 2 statuses are required for the version 3
>>> protocol to work properly.
>> 
>> See git commits 2e692bd8 and eaf5487d, which went into 0.2.2.12-alpha:
>>   o Major bugfixes:
>>     - Many relays have been falling out of the consensus lately because
>>       not enough authorities know about their descriptor for them to get
>>       a majority of votes. When we deprecated the v2 directory protocol,
>>       we got rid of the only way that v3 authorities can hear from each
>>       other about other descriptors. Now authorities examine every v3
>>       vote for new descriptors, and fetch them from that authority. Bugfix
>>       on 0.2.1.23.
>> 
>> That was the stopgap that made proposal 147 not so critical. I think
>> based on Karsten's recent results that maybe it's enough.
> 
> Sounds good to me.
> 
> Is this in dir-spec.txt? I'm not finding it at first glance.  If it 
> isn't, Karsten, would you be able to add it?  Probably we should do 
> that _after_ merging your dirspec branch.

Current Section 4.4 ("Downloading and storing router descriptors
(authorities and caches)") mentions this, though rather implicitly:

> Periodically (currently, every 10 seconds), directory servers check
> whether there are any specific descriptors that they do not have and
> that they are not currently trying to download.  [...]; authorities
> identify them by hash in vote (if publication date is more recent
> than the descriptor we currently have).  If so, the directory server
> launches requests to the authorities for these descriptors, such that
> each authority is only asked for descriptors listed in its most
> recent vote (if the requester is an authority) [...].  If we're an
> authority, and more than one authority lists the descriptor, we
> choose which to ask at random.

We could this make more explicit by adding a sentence or two to the end
of the current Section 4.2 ("Voting (authorities only)"), which would be
the new Section 3.4 ("Exchanging votes") in my reorder-dirspec branch.
This sentence or two should probably explain why it's important that
authorities learn descriptors contained in other authorities' votes.

And sure, happy to add this clarification after merging the branch.

All the best,
Karsten


More information about the tor-dev mailing list