Hi George,

Thanks for your help with this!

We wrote up our high-level understanding of the current Tor guard selection algorithm here:

https://gist.github.com/chelseakomlo/2acbe15314b5a809c6f4

This has more than our python simulation, but less than the actual Tor implementation. For example, it is missing conditions like prioritization by uptime, capacity, etc.

https://github.com/twstrike/tor_guardsim/blob/develop/lib/original_client.py

If you wouldn't mind taking a look at this and letting us know anything that is missing/should change, that would be really helpful.

Thanks!
Chelsea