> Yes, thanks for the reminder. I meant to do this earlier but apparently > forgot. I just added an issue on Trac with a more complete description > and code to reproduce: https://trac.torproject.org/projects/tor/ticket/14314
Thanks Nik! Think I know what's going on and agreed that it doesn't match the docs. > I actually did find a couple things that were either worded in a > confusing way (I thought) or mistyped in `tor-spec.txt`, and when I have > a few minutes later this week I'll send a patch. Great! > Now that I think about it, something that would be great to have in Stem > would be path selection capabilities. So something like, say, given a > list of RelayDescriptors and some constraints that must hold for a path, > return some randomly chosen path that satisfies those constraints. I'd be up for that. This isn't a very commonly requested piece of functionality, but it was part of TorCtl (which Stem deprecated in 2012)... https://gitweb.torproject.org/pytorctl.git/tree/PathSupport.py > A starting point might be just implementing Tor's default path selection > algorithm This part concerns me a tad since it would be duplicating a bit of tor and likely a moving target. Path selection isn't as simple as "pick some random relays", rather it's based on bandwidth authority measurements, stability, and other heuristics. Not to mention guards, families, bad-exit flags, etc. > One of the next things I need to do for oppy is implement Tor's full > path selection algorithm. However, if you think it would be appropriate, > it'd be great if some of this could eventually just wind up in Stem (so > I could make oppy's code simpler and also so other people could use > these capabilities more easily). > > How would you feel about adding path selection capabilities to Stem? Gotcha. Honestly I haven't looked into path selection much. If it turns out to be reasonably straight forward and a maintainable thing for Stem to include then great. > Aside from allowing one to do nice things with descriptors, this could > also work well with some method analogous to > stem.control.Controller.new_circuit() that could do stuff like > auto-choose a path for you based on some desired path attributes the > caller specifies. Agreed, that would be neat. > PS: Thanks for writing/maintaining Stem! It's a really great library and > made writing oppy and working with network status docs and descriptors > *much* simpler. My pleasure! Glad you found it useful. :) Cheers! -Damian _______________________________________________ tor-dev mailing list [email protected] https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
