On 1/16/14 10:06 PM, Nick Mathewson wrote:
On Wed, Jan 15, 2014 at 9:15 PM, Roger Dingledine arma@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