Opened 4 years ago

Closed 3 years ago

#20946 closed enhancement (fixed)

Make it easier to find contacts for a fallback list

Reported by: teor Owned by:
Priority: Medium Milestone: Tor: 0.3.3.x-final
Component: Core Tor/Fallback Scripts Version:
Severity: Normal Keywords: fallback, review-group-28
Cc: Actual Points: 0
Parent ID: Points: 1
Reviewer: Sponsor:


It would be great to be able to take a list of relays, and find their contact details.

But this might be better implemented using stem, rather than the rather heavyweight

See for details

Child Tickets

Change History (12)

comment:1 Changed 4 years ago by atagar

Hi Tim, is this what you're looking for?

from stem.descriptor.remote import FallbackDirectory, get_server_descriptors

for fallback in FallbackDirectory.from_remote().values():
  for desc in get_server_descriptors([fallback.fingerprint]):
    print("%s: %s" % (fallback.fingerprint,

comment:2 Changed 4 years ago by teor

Yes, I could definitely use something like this.

But I also need to find the contacts for draft lists of fallbacks, so I could add a script like this to scripts/maint that takes a list of fingerprints on the command-line, and then outputs their contacts. (And defaults to the latest fallbacks in stem.)

comment:3 Changed 4 years ago by nickm

Keywords: tor-03-unspecified-201612 added
Milestone: Tor: 0.3.???Tor: unspecified

Finally admitting that 0.3.??? was a euphemism for Tor: unspecified all along.

comment:4 Changed 3 years ago by nickm

Keywords: tor-03-unspecified-201612 removed

Remove an old triaging keyword.

comment:5 Changed 3 years ago by nickm

Component: Core Tor/TorCore Tor/Fallback Scripts
Owner: set to teor

comment:6 Changed 3 years ago by teor

Owner: teor deleted
Status: newassigned

Disowning tickets I don't intend to work on in the next 6 months.

comment:7 Changed 3 years ago by teor

Status: assignednew

Mark all tickets that are assigned to nobody as "new".

comment:8 Changed 3 years ago by teor

These are the old wiki instructions:

d. Informing Relay Operators

After "Generating the List", contact operators using the process in 'Group Emails' section above, BCC'ing each operator in the list. It aids transparency if you first post a draft list, and then allow the operators to make corrections. (Once you've emailed all the operators on the draft list, you only need email the operators whose relays were added or deleted from the final list. This makes it easier for you, and keeps the volume of email down.)

Keep the info-level logs somewhere publicly accessible (a trac ticket is a good place), so that people can see exactly what decisions the script made.

It can be helpful to label the list and logs with the date and time (in UTC) and the tor git commit used to generate the list. This aids others in reproducing the list. (Except for the network reachability and download time checks, which happen in real-time and are non-deterministic.)

If you want to generate the same list, but with operator contact details, follow the steps in "Finding Broken Fallbacks".
To find the contacts for an old list, follow those steps, but use:

-OUTPUT_SORT_FIELD = 'contact' if OUTPUT_CANDIDATES else 'fingerprint'
+OUTPUT_SORT_FIELD = 'contact'

If you have the old OnionOO files, set:


comment:9 Changed 3 years ago by teor

Actual Points: 0
Milestone: Tor: unspecifiedTor: 0.3.3.x-final
Parent ID: #24706
Status: newneeds_review

This is done in #24706, it can close when that ticket is merged.

comment:10 Changed 3 years ago by nickm

Keywords: review-group-28 added

comment:11 Changed 3 years ago by pastly

Status: needs_reviewmerge_ready

Close at the same time as #24706

comment:12 Changed 3 years ago by nickm

Parent ID: #24706
Resolution: fixed
Status: merge_readyclosed

Pastly says this is closeable.

Note: See TracTickets for help on using tickets.