Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TOR Relay Info - SpeedUp #3

Open
UnlimitedChild opened this issue May 28, 2023 · 3 comments
Open

TOR Relay Info - SpeedUp #3

UnlimitedChild opened this issue May 28, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@UnlimitedChild
Copy link

Hello,

is it possible to display statistics about which nodes and which addresses are used for downloading in a particular request? This is necessary to optimize the configuration in order to speed up the download of files.

Thanks!

@tasooshi
Copy link
Owner

Hey there,

Yeah, I know what you mean. Had the same issue, just waited until something's stuck for too long and then flush connections. It would be cool to be able to e.g. delete a single circuit and keep the rest. So yes, it is possible, it is definitely a great idea, but the amount of work is considerable and I currently have no business in pushing this project any further. I'll keep this ticket open however, perhaps I'll find a good reason to continue.

@tasooshi tasooshi added the enhancement New feature or request label May 28, 2023
@UnlimitedChild
Copy link
Author

UnlimitedChild commented May 28, 2023

A simple python script that shows the tor nodes you connect to
https://github.com/Sir-Arthur56537/Tor-Circuits/blob/main/tor.py

#!/usr/bin/python3
import stem
from stem import CircStatus
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
  controller.authenticate()

  for circ in sorted(controller.get_circuits()):
    if circ.status != CircStatus.BUILT:
      continue

    print("")
    print("Circuit %s (%s)" % (circ.id, circ.purpose))

    for i, entry in enumerate(circ.path):
      div = '+' if (i == len(circ.path) - 1) else '|'
      fingerprint, nickname = entry

      desc = controller.get_network_status(fingerprint, None)
      address = desc.address if desc else 'unknown'

      print(" %s- %s (%s, %s)" % (div, fingerprint, nickname, address))

It would be enough to measure the performance of downloading streams and display information on the node. All this can be automatically logged into a log file. The rest of the configuration is easy to do through the configuration file.

@UnlimitedChild
Copy link
Author

This option works for me, but in this case, all analysis will need to be done manually ...

OnionView
https://github.com/hectormartin42/onionview
OnionView displays the circuits and streams which Tor creates to service requests.

The display is a Graphical User Interface (GUI) using the Python Tk library and shows each circuit as it is created and each stream using that circuit. The excellent Stem library is used to interface with the running Tor process via the Control Port.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants