Fallback Scripts issueshttps://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues2021-11-15T16:46:19Zhttps://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/31021Add fallback CI for the check_existing and OUTPUT_CANDIDATES modes2021-11-15T16:46:19ZteorAdd fallback CI for the check_existing and OUTPUT_CANDIDATES modesWe should test these modes, because they run some different code to the default mode.We should test these modes, because they run some different code to the default mode.https://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/31020Validate the fallback scripts CI output using grep and stem2021-11-15T16:46:18ZteorValidate the fallback scripts CI output using grep and stemOr we could write a test python script that runs the other scripts and checks their output.Or we could write a test python script that runs the other scripts and checks their output.https://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/30969Add timestamp, country, and commit keys to the directory list header and log2021-11-15T16:46:19ZteorAdd timestamp, country, and commit keys to the directory list header and logAt the moment, I'm including them in the filename, which isn't ideal.
We should copy the spec from sbws for timestamp and country, and maybe commit if sbws adds it first.At the moment, I'm including them in the filename, which isn't ideal.
We should copy the spec from sbws for timestamp and country, and maybe commit if sbws adds it first.https://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/28987Add a log level option to the fallback script2021-11-15T16:46:20ZteorAdd a log level option to the fallback scriptIn legacy/trac#28986, we want to log at info level by default.
But for quick tests, it might be useful to log at warning level.In legacy/trac#28986, we want to log at info level by default.
But for quick tests, it might be useful to log at warning level.https://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/26687Output ed25519 IDs in the authority and fallback lists2021-11-15T16:46:19ZteorOutput ed25519 IDs in the authority and fallback listshttps://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/26686Add ed25519 ids to the fallback whitelist2021-11-15T16:46:19ZteorAdd ed25519 ids to the fallback whitelistThe fallback scripts should parse ed25519 ids from the fallback whitelist, and check both the RSA id and ed25519 id.The fallback scripts should parse ed25519 ids from the fallback whitelist, and check both the RSA id and ed25519 id.https://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/24719Make sure fallback whitelist entries are unique2021-11-15T16:46:20ZteorMake sure fallback whitelist entries are uniqueWe shouldn't be duplicating fingerprint, or any address/port combination.
But there's no urgency here, it's mostly harmless, it just means we won't catch relays that switch details.We shouldn't be duplicating fingerprint, or any address/port combination.
But there's no urgency here, it's mostly harmless, it just means we won't catch relays that switch details.https://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/20939Add average for each flag and uptime to the fallback summary2021-11-15T16:46:19ZteorAdd average for each flag and uptime to the fallback summaryWhen we generate a list of fallbacks, the script outputs a summary of the spread of IP blocks, ports, exit/non-exit, etc.
It would be useful to have the average flags and uptime in this list as well.
We could then do `success_without_a...When we generate a list of fallbacks, the script outputs a summary of the spread of IP blocks, ports, exit/non-exit, etc.
It would be useful to have the average flags and uptime in this list as well.
We could then do `success_without_auth = min(avg_uptime, avg_running, avg_v2dir)^3` and print it too.https://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/20934Use standard python multiset implementation in fallback script2021-11-15T16:46:19ZteorUse standard python multiset implementation in fallback scriptI wrote a multiset (bag) implementaion for updateFallbackDirs.py, but python has Counter. I'd rather use someone else's tested code.
https://docs.python.org/2/library/collections.htmlI wrote a multiset (bag) implementaion for updateFallbackDirs.py, but python has Counter. I'd rather use someone else's tested code.
https://docs.python.org/2/library/collections.htmlhttps://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/20883Ignore relays without contact info when emailing potential fallback operators2021-11-15T16:46:18ZteorIgnore relays without contact info when emailing potential fallback operatorsSometimes, we want to do a mail-out to (potential) fallback operators.
We might want to skip operators without contact details.
Or we might want to leave them in there, so we know the how many operators we can't contact.Sometimes, we want to do a mail-out to (potential) fallback operators.
We might want to skip operators without contact details.
Or we might want to leave them in there, so we know the how many operators we can't contact.https://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/19129Allow Fallback Directories with no DirPort2021-11-15T16:46:19ZteorAllow Fallback Directories with no DirPortIn legacy/trac#12538, we made almost every relay support begindir-style directory fetches. In legacy/trac#18483, we made clients never use DirPorts. Both of these features are scheduled for 0.2.8.
Eventually, we can allow fallback direc...In legacy/trac#12538, we made almost every relay support begindir-style directory fetches. In legacy/trac#18483, we made clients never use DirPorts. Both of these features are scheduled for 0.2.8.
Eventually, we can allow fallback directories with no DirPort.
(Perhaps this works already with a zero DirPort?)
If we implement legacy/trac#7798, we might want this feature, but only for directory guards in the state file.
If we want to include fallback directories with no DirPort in the default fallback list, we will need to make some some changes to the fallback directory checks in scripts/maint/updateFallbackDirs.py. In particular, stem can't do begindir, so it will be harder to verify these fallback directories have connectivity and support begindir. So maybe we should require a DirPort for fallback directories for the moment.https://gitlab.torproject.org/tpo/core/fallback-scripts/-/issues/18605Consider including fallback directory mirrors with multiple IP addresses2021-11-15T16:46:19ZteorConsider including fallback directory mirrors with multiple IP addressesarma describes the advantages of hard-coding bootstrap IP addresses that aren't in the consensus:
https://lists.torproject.org/pipermail/tor-dev/2016-March/010588.html
I think we could do this with fallback directory mirrors, to increa...arma describes the advantages of hard-coding bootstrap IP addresses that aren't in the consensus:
https://lists.torproject.org/pipermail/tor-dev/2016-March/010588.html
I think we could do this with fallback directory mirrors, to increase the chances of Tor bootstrapping successfully in these environments.
With two authority attempts in 0.2.7, it's roughly 47% (2/9 + 2/8).
We already have the same or greater probability of bootstrap success with fallbacks and authorities and an increased number of attempts. But it would be nice to use this trick for about 10% of fallbacks.
This will require changes to the fallback selection script and the whitelist format.