Tracking HSDirs and the version of Tor they run

I realized that there may be people coming here without technical knowledge of Tor and Onion services, an “HSDir” is a Tor node that has information about onion services, e.g. how to connect to them.
HSDirs that run a version of Tor without v2 onion support will not accept the information of a v2 onion. Which means, if all 6 of a v2 onion service's HSDirs don't understand v2, it will be impossible to access it.
You might want to see the How do onion services work? page to learn more.


I made a script* to track how many HSDirs run a version of tor that understands v2 onions. It runs every hour, downloads the current consensus, finds all relays that have the HSDir flag and checks their tor version. If the tor version is 0.4.[6-9] or 0.3.5.17/18 or 0.4.5.11/12** it is counted as being “nonv2” otherwise it is counted as “v2”

This is what it looks like as a chart:

But you may want to know what fraction of HSDirs are non-v2:

The fraction to the power of 6 (keep an eye on this one). That is, the chance that 6 (random) HSDirs will not understand v2. If all 6 of a v2 onion service's HSDirs don't understand v2, it will be impossible to access it. Because it is very close to 0, v2 onion services are expected to work fine.

The charts are self updating, every hour at 30, e.g. 11:30.
The data is available here:

And the source code here

* And then 3 others to generate charts and csv files.

** 0.3.5.17 and 0.4.5.11 were added on 16 UTC 26th Oct 21. 0.3.5.18 was added on 13 UTC 25th Jan 22. 0.4.5.12 was added on 00 UTC 05 Feb 22.


I got curious as to how it is with all relays, not just HSDirs, so here is a graph of all relays and whether they run a version (as specified above) that is v2 supporting or not:

and the data for that