Hi,
I'm trying to figure out why a list from [TorBulkExitList.py] is so much larger than what is seen in [exit-addresses].
Point in case: Earlier today the list from TorBulkExitList.py contained 58% more addresses than exit-addresses:
--8<---------------cut here---------------start------------->8--- $ curl-tor -q 'https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8.8.8.8' | egrep -v ^# | wc -l 1554 $ curl-tor -q https://check.torproject.org/exit-addresses | egrep ^ExitNode | wc -l 985 --8<---------------cut here---------------end--------------->8---
Counting relays with the Exit flag in a consensus of roughly the same time gives 912:
--8<---------------cut here---------------start------------->8--- $ curl-tor -q http://171.25.193.9:443/tor/status-vote/current/consensus | egrep '^s.*Exit' | wc -l 912 --8<---------------cut here---------------end--------------->8---
If I read the code [check.py][exitips.py] correctly, we include the following IP addresses in what is served from [TorBulkExitList.py]:
- all routers in the current consensus - with exit addresses from TorDNSEL file(s) added - for which stem's exit_policy.is_exiting_allowed() returns true
I haven't read any TorDNSEL code and don't know exactly what above mentioned TorDNSEL file(s) are but I think they include results from active testing of what address exit relays really use for exiting.
[exit-addresses] seems to be from TorDNSEL too but holding more of a snapshot while the files mentioned above supposedly cover some period of time.
Before I dig further, perhaps someone here already know why the numbers differ so? I wouldn't expect the churn of addresses used for exiting to be high enough to explain the difference.
[TorBulkExitList.py] https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8.8.8.8 [exit-addresses] https://check.torproject.org/exit-addresses [check.go] https://gitweb.torproject.org/check.git/tree/check.go [exitips.py] https://gitweb.torproject.org/check.git/tree/scripts/exitips.py
Thanks, Linus