I noticed a paragraph in dir-spec.txt as follow:
To address these, we extended the directory protocol so that
authorities now published signed "network status" documents. Each
network status listed, for every router in the network: a hash of its identity key, a hash of its most recent descriptor, and a summary of what the authority believed about its status. Clients would download the authorities' network status documents in turn, and believe statements about routers iff they were attested to by more than half of the authorities.Instead of downloading all server descriptors at once, clients
downloaded only the descriptors that they did not have. Descriptors were indexed by their digests, in order to prevent malicious caches from giving different versions of a server descriptor to different clients.
So could anyone please explain me how Tor clients check if a descriptor is there in their recent network-status-document? If the answer is basing on "what I have highlighted", could anyone please give me a hint where I can have a look at those "variables", given that the recent version of Tor only fetchs micro-descriptors, not the whole server-descriptors. Thank you so much!
____Edit______
So from this Snapshot (please copy URL of the image and open it in new-tab for a better view), I compared two cached-microdesc-consensuses at two different time, and the differences are highlighted by the plugin of Notepad++.
As you can see the "identity key hash" and the hash of its most recent descriptor did not change. So can you please tell me a little bit more details of how a client update microdesc-consensuses?
Say,
- will they send the "identity key hash" OR/AND the hash of its most recent descriptor of all descriptors to Directory Mirrors,
- then the mirrors will check if any value of those descriptors has changed
- next,the mirrors reply to client by sending only those descriptors that have been changed?