[tor-dev] Proposal 281: downloading microdescriptors in bulk

Nick Mathewson nickm at alum.mit.edu
Mon Aug 28 15:32:21 UTC 2017

On Mon, Aug 21, 2017 at 12:42 AM, teor <teor2345 at gmail.com> wrote:
>> On 12 Aug 2017, at 03:36, Nick Mathewson <nickm at torproject.org> wrote:
>>  Caches MUST NOT answer this request unless they recognize the
>>  consensus with digest X, and digest Y.
>>  digest Y.
> Extra "digest Y.  "

Fixed, thanks!

>>  If answering, caches MUST reply with all of the
>>  microdescriptors that the cache holds that were listed by
>>  consensus X, and MUST omit all the microdescriptors that were
>>  omitted listed in consensus Y.
> What happens if the consensus versions are different?
> In particular, what happens if the microdesc algorithms are different
> in these consensus versions?
> (What should happen is that the diff is larger than normal, because
> most microdesc hashes have changed. We should have a test for this.)

Right.  I've tried to clarify.  Now it says "(For the purposes of this proposal,
  microdescriptors are "the same" if they are textually identical
  and have the same digest.)"

>> 2.3. When to make these requests
>>  Clients should decide to use this format in preference to the
>>  old download-by-digest format if the consensus X lists their
>>  preferred directory cache as using a new DirCache subprotocol
>>  version. (See 5 below.)
> Don't clients have 3 preferred directory caches?

Edited to say additionally:

  When a client has some preferred directory caches that support
  this subprotocol and some that do not, it chooses one at random,
  and uses these requests if that one supports this subprotocol.

> What about fallback directory mirrors?
> We don't care about diff/X/Y - there is no previous consensus.
> But knowing when a fallback supports full/X could be handy.
> Or do we deliberately want to use the legacy protocol to
> bootstrap, so a single cache can't lie to us?

When using fallback mirrors, the client downloads the consensus before
downloading microdescriptors.  Having downloaded the consensus, it
should know whether the cache supports this protocol.

> What about bridge clients?
> Can they find out from the bridge descriptor?

Yup; the subprotocol information is listed there too.

Thanks for the review!

More information about the tor-dev mailing list