I'm trying to learn my way around Tor and the Stem library for a class. My understanding is that the middle node is selected by tor and is unaccessible through Stem, however as part of the class I have to identify the middle node and find the address/location/etc.

After doing some research it looks like some suggest to go about doing this using extend_circuit, while others say that it's just not doable (which i'm assuming is incorrect since if it wasn't doable it wouldn't be part of the class?). I was hoping for some help/direction so I know where to look and how to go about doing this.

closed as unclear what you're asking by Jens Kubieziel Dec 4 '16 at 22:05

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


stem.control.Controller.get_circuits returns a list of stem.response.events.CircuitEvent.

Each of these contains a path attribute, which is a list of the relays involved in the circuit, including the middle relay.

  • So, just to double check i'm understanding this correctly, if the output looks something like (('jsdasld', 'C'), ('sjdfls', 'a'), ('sdfsdf', 'W')), then these are the entry, middle, and exit nodes? – April Nov 28 '16 at 2:11
  • right, or at least the order of the nodes. not all circuits exit the tor network. – cacahuatl Nov 28 '16 at 3:34
  • You say you want to "select" a middle relay, this shows what middle relay is in use in current circuits if you're looking to build custom circuits with your own chosen middle node, then see this: tor.stackexchange.com/questions/12401/… – cacahuatl Nov 28 '16 at 3:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.