On Mon, Aug 21, 2017 at 12:42 AM, teor teor2345@gmail.com wrote:
On 12 Aug 2017, at 03:36, Nick Mathewson nickm@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!