I am reading the "Tor directory protocol, version 3" and there are some points that I cannot clearly understand, please help!
there are 4 paragraphs as follows:
First
Clients, directory caches, and directory authorities all use consensus
documents to find out when their list of routers is out-of-date.
(Directory authorities also use vote statuses.) If it is, they download
any missing server descriptors. Clients download missing descriptors
from caches; caches and authorities download from authorities.
Descriptors are downloaded by the hash of the descriptor, not by the
relay's identity key: this prevents directory servers from attacking
clients by giving them descriptors nobody else uses.
Second,
Periodically (currently, every 10 seconds), directory caches check
whether there are any specific descriptors that they do not have and that
they are not currently trying to download. Caches identify these
descriptors by hash in the recent network-status consensus documents.
If so, the directory cache launches requests to the authorities for these
descriptors.
Third
Clients try to have the best descriptor for each router. A descriptor is
"best" if:
* It is listed in the consensus network-status document.
Periodically (currently every 10 seconds) clients check whether there are
any "downloadable" descriptors. A descriptor is downloadable if:
- It is the "best" descriptor for some router.
- The descriptor was published at least 10 minutes in the past.
(This prevents clients from trying to fetch descriptors that the
mirrors have probably not yet retrieved and cached.)
- The client does not currently have it.
- The client is not currently trying to download it.
- The client would not discard it immediately upon receiving it.
- The client thinks it is running and valid (see section 5.4.1 below).
Last,
Each client maintains a list of directory authorities. Insofar as
possible, clients SHOULD all use the same list.
Clients try to have a live consensus network-status document at all times.
A network-status document is "live" if the time in its valid-until field
has not passed.
By reading 1st, 2nd and 3rd, what I understand is that all descriptors in the consensus will be checked and updated every 10 seconds basing on their hash values.
But in the last paragraph, what I figure out is that the client download the new consensus every one hour because of the fact that Directory Authorities recently publish the new consensus every one hour. In addition, when I check the "cached-microdesc-consensus" file in my Tor Browser Bundle, the following lines seem to be changed every one hour if I keep my Tor Browser alive for many hours.
network-status-version 3 microdesc
vote-status consensus
consensus-method 18
valid-after 2015-03-17 08:00:00
fresh-until 2015-03-17 09:00:00
valid-until 2015-03-17 11:00:00
voting-delay 300 300
client-versions
Thank you so much for reading my long question. Best Regards!