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

Karsten Loesing karsten at torproject.org
Wed Jan 15 15:44:55 UTC 2014

On 1/15/14 1:08 PM, Karsten Loesing wrote:
> On 1/6/14 7:55 PM, Nick Mathewson wrote:
>> On Tue, Dec 24, 2013 at 3:55 AM, Karsten Loesing <karsten at torproject.org> wrote:
>>> On 12/17/13 10:31 PM, Nick Mathewson wrote:
>>>> 147  Eliminate the need for v2 directories in generating v3 directories
>>>>      This proposal explains a way that we can phase out the
>>>>      vestigial use of v2 directory documents in keeping authorities
>>>>      well-informed enough to generating the v3 consensus.  It's
>>>>      still correct; somebody should implement it before the v2
>>>>      directory code rots any further. (5/2011)
>>> This proposal looks plausible to me.  Some minor remarks:
>>> - The proposal suggests that authorities send an opinion document to the
>>> other authorities "at the regular vote upload URL".  URLs are cheap, why
>>> not use a different URL to keep things separated, e.g., /tor/post/opinion ?
>> sure.
> Okay, starting a patch with proposal 147 tweaks and changing this URL as
> suggested.
>>> - Should dir-spec.txt suggest a timing for pushing-and-pulling opinion
>>> documents?  Authorities could send their opinions at :45:00 and fetch
>>> missing opinions at :47:30.  This could be defined by a new
>>> OpinionSeconds part contained in "voting-delay" lines.  This would be a
>>> SHOULD requirement, not a MUST requirement.
>> This is plausible.
> Added to the proposal.
>>> - The proposal doesn't say what lines must be contained in opinion
>>> documents.  It seems that an authority that parses an opinion document
>>> is only interested in a) relay fingerprint, b) descriptor publication
>>> time, and c) descriptor digest; unless there's more information that
>>> helps authorities decide whether "they might accept" a descriptor.  If
>>> not, opinion documents only need to contain a small subset of headers
>>> and all the "r" lines that would be contained in a later vote.
>> This also seems okay.  It would however mean that we can't use the
>> same parsing logic as we use for regular votes.
> True.  Added as two comments to the proposal.
>>> - The proposal doesn't explicitly say this, so just to be sure: when an
>>> authority finds that it's missing a router descriptor that it then
>>> downloads, it also downloads the corresponding extra-info descriptor
>>> afterwards, right?
>> I suppose it should.
> Added.
>>> - Another thing that is left implicit in the proposal: the opinion
>>> document will always contain the valid-after time of the *next*
>>> consensus.  Well, the URL /tor/status-vote/next/opinion implies that,
>>> but maybe we should explicitly mention this in dir-spec.txt.
>> Hm. maybe valid-after and valid-until should just get ignored on
>> opinions. Or omitted.
> Added as comments.
>> Also, ISTR that Roger told me that this whole proposal didn't actually
>> seem to be necessary in practice. I wish I could remember the
>> rationale, though.
> 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.
> Here's a possible way to move this forward.
> - Please review and merge my prop147tweaks branch that contains tweaks
> from our discussion above, regardless of whether this proposal will be
> implemented or not.
> - I'm going to run a quick analysis of archived vote documents to see
> how much authorities would have benefited from the others' votes before
> generating their own votes.

>From January 1 to 7, 2014, only 0.4 relays on average were not included
in a consensus because they were listed in less than 5 votes.  These 0.4
relays could probably have been included with pre-voting opinions.

(Here's how I found out: extract the votes-2014-01.tar.bz2 tarball, run
`grep -R "^r " 0[1-7] | cut -c 4-22,112- | cut -d" " -f1,3 | sort | uniq
-c | sort | grep " [1-4] " | wc -l`, result is 63, divide by 7*24
published consensuses, obtain 0.375 as end result.)

> - I'm going to ask Alex to disable version 2 statuses on dizum using
> DisableV2DirectoryInfo_ 1 to see what that does to the network.  We
> should probably finish the 2048 bits RSA keys upgrade first before
> changing yet another variable.
> - If there's no convincing argument to implement opinion documents, we
> close this proposal as rejected.
> What do you think?
> All the best,
> Karsten

More information about the tor-dev mailing list