Select paths correctly (according to Tor rules)
Even though we've got weighting and families implemented, there are likely some more rules we aren't following for Tor path selection. We should go over path-spec and the tor code to see what behavior we're missing, and implement it.
This is an incomplete list:
-
Some circuits are NEED_CAPACITY (only Fast relays) and some are NEED_UPTIME (only Stable relays). -
See the predicted-ports tracking algorithm of path-spec.txt
§2.1.1, and the behavior ofcircuit_all_predicted_ports_handled()
in Tor. (Make sure they match?)