Running Blossom

Presently Blossom runs on most operating systems that support Tor and Python, including POSIX-compatible systems and Microsoft Windows.

Step-1 Download and unpack the latest stable version of Blossom.

Step-2 Copy the Blossom data files to an appropriate place ($HOME/.blossom/ by default). The Makefile does this automatically:

Step-3 Make sure that your Tor client is accepting controller connections. (Note that Blossom will try to connect to localhost:9051 by default, but the -c option overrides this.) If Tor is not accepting controller connections, then you should uncomment the following line from your torrc:

Step-4 Now you are ready to run Blossom as an ordinary Tor client. It does not matter where TorCtl.py and TorCtl1.py are located so long as they are available in your PYTHONPATH. If you have an HTTP proxy such as Privoxy running on port 8118, you can invoke Blossom by running:

Otherwise, you must use the -p option to specify an alternate HTTP proxy, e.g.

As long as you are running Blossom as an ordinary Tor client (i.e. no -b or -f options), you do not actually need an HTTP proxy at all, but this means that you will perform directory and metadata lookups directly. To instruct Blossom to NOT use an HTTP proxy, specify a hyphen in place of the proxy location:

By default, Blossom runs a web server on localhost:9052. If you want to specify a different address or port, use the -s option:

Step-5 Tor and Blossom can be started independently. Once they are both running, you can use an ordinary web browser as an interface to Blossom. Point your browser to the following URL (If you used -s, then substitute that port for 9052):

You will then see a page that provides details about currently active Tor circuits and streams. Click the autorefresh start link to update this page roughly once per second. What you see should look something like this:

Client
Status

Each highlighted row in the table corresponds to a Tor circuit. The semihighlighted rows correspond to circuits that are not yet able to accept TCP streams. In each row, the leftmost column consists of a series of icons: the first icon illustrates circuit availability (unbuilt, ready, reusable), the second icon illustrates estimated throughput, and subsequent icons are flags corresponding to the nations in which the constituent routers are located. The center column specifies the circuit ID, and the rightmost column provides a comma-delimited list of the individual Tor routers in the circuit. Clicking the leftmost icon closes the circuit.

The unhighlighted rows correspond to streams. If Tor has attempted to attach the stream to a particular circuit, then the stream will appear under that circuit. Otherwise, the stream appears at the bottom of the list as unattached. Streams appearing as bold have been designated for attachment. Streams appearing as normal have been attached successfully. Streams appearing as red have either closed or failed. For open streams, a red icon will appear at the far left; clicking this icon closes the stream.

Step-6 At this point you are ready to run Blossom as a full-fledged Blossom client, allowing access to not only Tor nodes but also Blossom nodes, which do not provide strong anonymity but can exist in arbitrary network topologies. To do this, use the -b option to specify a Blossom directory server. For example, one is running on lefkada.eecs.harvard.edu:

Note that if you specify -b, the title of the web page will be Blossom Client Status rather than Tor Client Status.

Step-7 If you intend to make use of .exit or .blossom notation in web browsing, then consider running edgeproxy, which will rewrite URLs in HTML tags so that the links, images, and forms in the web pages you view function correctly. Suppose that you already have an HTTP proxy like Privoxy running on port 8118. The following line will run the new proxy on port 8119 (instruct your web browser to make use of the new proxy):

Step-8 If you want to run a Blossom node, then you must configure your torrc to run in server mode but NOT publish its descriptor to the Tor directories. To do this, uncomment and configure the Nickname and ORPort lines, and add the following line as well:

Running Blossom as specified above will now add your server as a Blossom node and publish its descriptor to the directory specified with -b. If you are behind a NAT or firewall, you must establish a persistent connection to some Blossom node listed in the directory; you can specify this with the -x option. Generally it is reasonable to specify the nickname of the directory itself, e.g.:

Step-9 If you want to run a Blossom directory, then you must create a configuration file (instructions coming soon) and refer Blossom to this file using the -f option, as follows:

Blossom Home

$Id: running.html,v 1.4 2006-09-04 19:57:32 goodell Exp $