tasooshi / torboost

Download utility for Tor
MIT License
31 stars 5 forks source link

TOR Relay Info - SpeedUp #3

Open UnlimitedChild opened 1 year ago

UnlimitedChild commented 1 year ago

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 commented 1 year ago

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.

UnlimitedChild commented 1 year ago

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 commented 1 year ago

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.