Seems like updateFallbackDirs.py requires relays to have a DirPort because that's how stem downloads consensuses; and the script uses the consensus download as a form of speedcheck.
Because of the latest attacks, lots of relays have removed their DirPort which means that the new list does not contain a bunch of relays that we might want in.
That said...do we actually have fewer fallbackdirs in the proposed patch? Looks like no, it's plenty either way? Are the new ones 'worse' in some way, like, we would have chosen the others as better but we passed them over because no dirport?
I think we passed over a bunch of good fallbackdirs because of the list of dirport, like Sebastian's.
Also, I noticed that one of the two relays from !272 (closed) is missing from the new list (maybe the operator also removed their dirport).
Let's try to get this done before the next stable. If we want to re-run the old process, we should start now. If we want to change the old process, we should start doing that now too. :)
I'm pondering if we should test a one-hop to the relay upon choosing it but this might be skewed by where the script is ran or network conditions of the client... Thus, I think we should just trust Stable and Fast and be agile to changing the list regularly.
This should check whether the relay is a DirCache as well.
Also, do we know how long a randomly chosen "stable+fast" relay remains on the network on average? I think our old logic was (at least in part) meant to avoid picking relays that hadn't been around for long enough.
Also, do we know how long a randomly chosen "stable+fast" relay remains on the network on average? I think our old logic was (at least in part) meant to avoid picking relays that hadn't been around for long enough.
From dir-spec.txt:
"Stable" -- A router is 'Stable' if it is active, and either its Weighted MTBF is at least the median for known active routers or its Weighted MTBF corresponds to at least 7 days.
We'll leave couple days to simmer on the list before re-generating a new list in case we missed some important bits that relay operator(s) could point to us.