The address overrides will become obvious when we check against the current list.
check that all supported Tor versions can parse the list (existing unit tests)
We can do this by replacing src/or/auth_dirs.inc with the generated list, then running Tor's "make check".
This will only work once #24854 (moved) is completed.
Hi Tim. Is this to generate tor's hardcoded list of authorities? If so then seems a little odd to check for the 'Authority' flag since this means that your script will omit authorities when they're down.
For what it's worth Stem has a get_authorities() which references its own copy of the authority list...
Hi Tim. Is this to generate tor's hardcoded list of authorities? If so then seems a little odd to check for the 'Authority' flag since this means that your script will omit authorities when they're down.
For what it's worth Stem has a get_authorities() which references its own copy of the authority list...
However, probably unhelpful due to the clear chicken-and-egg since part of the goal is to sync this listing with the document you generate.
Maybe the best bet would be for your script to include a hardcoded listing of the authority fingerprints, then...
Fetch their descriptors to generate the rest of the doc (address, or/dirport, nickname, etc).
If any of the hardcoded relays isn't present in the consensus then error.
This way adding/removing authorities is as simple as changing the list of fingerprints and rerunning your script.
I want to use the consensus to make sure that we only include valid IPv6 addresses for authorities.
When we start hard-coding ed25519 key fingerprints, we can use it to warn about incorrectly pinned ed25519 keys.
(Key pinning is much less of a concern, but IPv6 addresses can be quite dynamic.)
I don't think it matters whether the other fields are retrieved from the consensus or the descriptor.
So your strategy sounds good.