A Tor client generates the desc_id for the v2 hidden service it would like to query. It did selects the 3 HSDIR from the router list which are found directly after the position of the desc_id when the routers are sorted by their identity digest (hash of their onion public key). I took me quite a while to figure out exactly how this works from the relatively sparse info in the rend-spec.txt.

I just put up a Gist with the python implementation of desc_id calculation. It should be pretty straightforward using STEM to sort list of OR's with the HsDir flag by identity_digest and determine which 6 are responsible at the current time.

https://gist.github.com/DonnchaC/5451637



On Wed, Apr 24, 2013 at 11:23 AM, Frank Young <pfcodes@gmail.com> wrote:
Dealing with v2 hidden service descriptors, how does a tor client get
the list of HSDIR are responsible for a certain onion address so it
can contact them for descriptor of the hidden service?.

According to rend-spec.txt the list of the responsible HSDIR for a
particular hidden service changes almost in every 24.
_______________________________________________
tor-dev mailing list
tor-dev@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev