Hi Karsten,
Over a year ago I wrote a small measuring proxy called Monitor In The Middle. This proxy sits between the browser and Tor and examines all HTTP traffic. Results of the measurements like response times, timeouts etc can be viewed using an internal webserver (at http://mitm.proxy).
My code uses Twisted, but does not use the Tor control interface. Wrote an article about it at:
http://freedomboxblog.nl/mitm-for-tor/
You can download the source-code at:
http://freedomboxblog.nl/wp-content/uploads/2011/09/mitm-0.9.tar.gz
Maybe this can be adapted to your needs?
On Mon, 2013-01-21 at 21:06 +0100, Karsten Loesing wrote:
Hi everyone,
you probably heard of Torperf [0], the tool that produces our Tor client performance graphs [1]. Torperf is mostly a bunch of scripts and lengthy HOWTOs, so setting it up and keeping it happy is not exactly trivial. The same applies to extending it, e.g., to make downloads using Selenium/Firefox rather than using its own C SOCKS client.
I'm pondering a rewrite of Torperf in Twisted. The idea is to have a single Twisted application that is trivial to install and that does the following things:
- set up local Tor clients, configure them, and register for events;
- run a local web server to download files from or upload files to;
- periodically run one or more tests which can be:
3.1) an HTTP GET request over Tor to its own web server, 3.2) an HTTP POST request to measure upload speed, 3.3) a GET or POST request to a locally running hidden service, 3.4) a series of fetches of top 50 Alexa domains using Selenium/Firefox; 3.5) a series of requests to track stream/circ allocations for #5830; 4) store request timestamps and Tor controller events to SQLite; 5) provide results via a RESTful API over its web server.
That's a lot, and to make things even more fun, there's a sponsor deadline to have more realistic Torperf measurements by February 28. So, I want to start with 3.4 and minimal versions of 4 and 5. But I want to make sure that the remaining parts can be added later without redesigning everything again.
My questions:
- Is Twisted the right framework for this? What are the alternatives?
- Is there existing code that I should look at before writing new code?
- Does anybody want to help out? :)
Thanks! Karsten
[0] https://gitweb.torproject.org/torperf.git
[1] https://metrics.torproject.org/performance.html _______________________________________________ tor-dev mailing list tor-dev@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev