Feature #6842

Replace Vidalia's Tor streams and circuits view

Added by intrigeri 2014-03-04 23:51:39 . Updated 2016-03-08 13:36:58 .

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Target version:
Start date:
2015-06-15
Due date:
% Done:

100%

Feature Branch:
feature/6841-replace-vidalia
Type of work:
Code
Blueprint:

Starter:
0
Affected tool:
Onion Circuits
Deliverable for:

Description

tor-arm doesn’t have any such thing (yet): https://trac.torproject.org/projects/tor/ticket/5186

There is work in progress to add part of this functionality to the Tor Browser: https://trac.torproject.org/projects/tor/ticket/8641#comment:26

Our current plan is to rely on Alan’s Tor Monitor for the greatest part.


Files


Subtasks

Feature #9579: Always display domain instead if IP in Tor Monitor Resolved alant

100

Feature #9581: Verify TorMonitor localization Resolved alant

0

Feature #9580: Package Onion Circuits Resolved

50


History

#1 Updated by intrigeri 2014-07-29 14:38:05

  • Description updated

#2 Updated by intrigeri 2014-08-02 15:33:00

  • Description updated

#3 Updated by intrigeri 2014-11-26 10:13:12

The functionality landed into Tor Browser alpha, but it’s not enough for us, as it only exposes information about web browsing circuits. On the arm side of things, atagar updated the ticket and the short version is: either we wait a year, or we implement this feature on top of the 1.4.5 release.

#4 Updated by alant 2015-02-04 20:30:21

What do we actually need? I made a small prototype that show current circuits and the streams using them. I’m happy to extend it once we have clear specifications if we find it useful:

#!/usr/bin/env python
import stem.connection
import stem.response.events

from gi.repository import Gtk, GObject, GLib

class TorPaths():

    def __init__(self):
        self.conn = stem.connection.connect_socket_file()
        self._create_ui()
        self.refresh()
        GLib.timeout_add(333, self.refresh, None)

    def _create_ui(self):
        self._win = Gtk.Window()
        self._win.connect('delete-event', Gtk.main_quit)
        self._win.set_title("Tor paths")

        self._treestore = Gtk.TreeStore(GObject.TYPE_STRING)
        self._treeview = Gtk.TreeView.new_with_model(self._treestore)
        self._treeview.set_headers_visible(False)
        tvcolumn = Gtk.TreeViewColumn("Circuit")
        self._treeview.append_column(tvcolumn)
        cell = Gtk.CellRendererText()
        tvcolumn.pack_start(cell, True)
        tvcolumn.add_attribute(cell, 'text', 0)
        self._win.add(self._treeview)

        self._win.show_all()

    def refresh(self, data=None):
        self._treestore.clear()

        streams = self.conn.get_streams()
        circuits = self.conn.get_circuits()
        for c in circuits:
            circ_str = "%s: " % c.id
            for r in c.path:
                circ_str += r[1] + ' '
            circ_line = self._treestore.append(None, [circ_str])
            for s in streams:
                if s.circ_id == c.id:
                    self._treestore.append(circ_line,
                            ["%s:%s" % (s.target_address, s.target_port)])

        self._treeview.queue_draw()
        self._treeview.expand_all()

        return True

torpaths = TorPaths()
Gtk.main()

#5 Updated by intrigeri 2015-02-04 21:17:12

> What do we actually need?

Thanks for working on this!

I’m happy to explain in more details what I would like, once you’ve told me what’s unclear to you in the feature request against tor-arm.

Now, we’ve never really discussed what we really want before we can drop Vidalia.

#6 Updated by alant 2015-02-08 22:44:25

> Thanks for working on this!
>
A new fun project!

> I’m happy to explain in more details what I would like, once you’ve told me what’s unclear to you in the feature request against tor-arm.
>
If I understand well, we want an interface that “should show the targets of individual streams”.

I’m working on an GTK application that shows circuits and the streams that are attached to then, basically as the bottom left part of vidalia’s network map.
It’s basically ready and only needs some polishing.

> Now, we’ve never really discussed what we really want before we can drop Vidalia.

Time to do it perhaps? I’m happy to add the functionnalities we consider as missing.

#7 Updated by intrigeri 2015-02-09 09:13:26

> I’m working on an GTK application that shows circuits and the streams that are attached to then, basically as the bottom left part of vidalia’s network map. It’s basically ready and only needs some polishing.

Looks exactly like what we need.

>> Now, we’ve never really discussed what we really want before we can drop Vidalia.

> Time to do it perhaps? I’m happy to add the functionnalities we consider as missing.

Sure. Care to start a discussion about it on -dev@?

#8 Updated by alant 2015-02-09 20:57:47

intrigeri wrote:
> > I’m working on an GTK application that shows circuits and the streams that are attached to then, basically as the bottom left part of vidalia’s network map. It’s basically ready and only needs some polishing.
>
> Looks exactly like what we need.
>
See http://git.tails.boum.org/alan/tor-monitor/

> >> Now, we’ve never really discussed what we really want before we can drop Vidalia.
>
> > Time to do it perhaps? I’m happy to add the functionnalities we consider as missing.
>
> Sure. Care to start a discussion about it on -dev@?

Done, in the thread “What do we miss to replace Vidalia”

#9 Updated by alant 2015-02-09 20:58:58

  • Assignee set to alant

#10 Updated by alant 2015-02-12 19:51:05

Fixed issues preventing testing under Tails/Jessie. Here is a screenshot if you want a quick overview:

#11 Updated by intrigeri 2015-03-15 17:20:06

  • Status changed from Confirmed to In Progress
  • % Done changed from 0 to 10
  • Type of work changed from Research to Code
  • Affected tool set to Tor Monitor

#12 Updated by intrigeri 2015-03-15 17:22:04

  • Description updated

#13 Updated by intrigeri 2015-03-15 17:24:29

  • Target version set to Sustainability_M1

(as parent ticket)

#14 Updated by intrigeri 2015-05-04 04:40:30

Alan, can you please look into displaying DOMAIN:PORT information (like Vidalia does) instead of IP:PORT? See Feature #9298#note-5 for background info about it.

#15 Updated by alant 2015-05-12 09:00:03

intrigeri wrote:
> Alan, can you please look into displaying DOMAIN:PORT information (like Vidalia does) instead of IP:PORT? See Feature #9298#note-5 for background info about it.

I’ll look at this, but I’m not sure stem easily provides that.

#16 Updated by alant 2015-06-15 09:27:09

alant wrote:
> intrigeri wrote:
> > Alan, can you please look into displaying DOMAIN:PORT information (like Vidalia does) instead of IP:PORT? See Feature #9298#note-5 for background info about it.
>
> I’ll look at this, but I’m not sure stem easily provides that.

Tracked as subtask Feature #9579.

#17 Updated by alant 2015-06-15 09:30:47

I use TorMonitor since 3 monthe whithot any major issues. I plan to polish the remaining details and to integrate it in tails/jessie. Please add comments and requests as subtasks and not on this ticket anymore.

#18 Updated by sajolida 2015-11-08 02:09:03

#19 Updated by sajolida 2015-11-08 02:09:12

#20 Updated by intrigeri 2016-02-15 12:50:26

  • Subject changed from Replace Vidalia's Tor network map to Replace Vidalia's Tor streams and circuits view

#21 Updated by intrigeri 2016-02-15 12:50:43

  • Target version changed from Sustainability_M1 to 2016

#22 Updated by intrigeri 2016-02-15 12:51:46

  • % Done changed from 0 to 50

Alan, IIRC you had some refactoring going on upstream, that I don’t see in Git. How much of a blocker do you think it is, for inclusion of Tor Monitor in Debian and Tails? May I safely assume it is not a blocker in your opinion?

#23 Updated by intrigeri 2016-02-18 20:34:53

  • Affected tool changed from Tor Monitor to Onion Circuits

#24 Updated by intrigeri 2016-02-19 23:36:52

  • Status changed from In Progress to Resolved
  • % Done changed from 50 to 100
  • Feature Branch set to feature/6841-replace-vidalia

This is done in the topic branch, see parent & sibling tickets for remaining blockers.

#25 Updated by intrigeri 2016-02-19 23:37:03

  • Assignee deleted (alant)