Hi,

I've finally got around to playing with Tahoe and all works well--I get
a few warnings when it starts, see the included tahoe.log, but not sure
if that's because of the version of Python I'm using.

My only initial concern is the apparent lack of timeouts when
creating/uploading things.  Maybe I'm the first person whose client
happens to have found a bad (firewalled?) node but creating/writing
things takes ages.  When I look on the "status" screen I see "Sending
Shares: 9 placed out of 10".  It sits there for ages and doesn't seem
to get anywhere.  If I hit "Create a Directory" a few times it'll
eventually pick a good set of nodes and things will work, but this
doesn't seem "optimal".

Maybe I've done something strange?


I also got somewhat confused by "docs/running.html" somewhat
arbitrarily referring to "nodes", "clients", "grids", "servers",
"clients" and "introducers".  I've had a reasonable hack of this file
and am attaching it as well.

-- 
  Sam  http://samason.me.uk/
STARTING /home/sam/.tahoe
/home/sam/build/allmydata-tahoe-1.5.0/support/lib/python2.6/site-packages/Twisted-8.2.0-py2.6-linux-x86_64.egg/twisted/persisted/sob.py:12:
 DeprecationWarning: the md5 module is deprecated; use hashlib instead
  import os, md5, sys
/home/sam/build/allmydata-tahoe-1.5.0/support/lib/python2.6/site-packages/Twisted-8.2.0-py2.6-linux-x86_64.egg/twisted/python/filepath.py:12:
 DeprecationWarning: the sha module is deprecated; use the hashlib module 
instead
  import sha
/home/sam/build/allmydata-tahoe-1.5.0/support/lib/python2.6/site-packages/foolscap-0.4.2-py2.6.egg/foolscap/banana.py:2:
 DeprecationWarning: the sets module is deprecated
  import struct, sets, time
/home/sam/build/allmydata-tahoe-1.5.0/support/lib/python2.6/site-packages/Nevow-0.9.33_r17222-py2.6.egg/formless/annotate.py:730:
 DeprecationWarning: object.__new__() takes no parameters
  rv = cls = InterfaceClass.__new__(cls, name, bases, dct)
/home/sam/build/allmydata-tahoe-1.5.0/support/lib/python2.6/site-packages/Nevow-0.9.33_r17222-py2.6.egg/nevow/testutil.py:7:
 DeprecationWarning: The popen2 module is deprecated.  Use the subprocess 
module.
  from popen2 import Popen3
client node probably started
Title: Running Tahoe

How To Start Tahoe

This is how to run a Tahoe client or a complete Tahoe grid. First you have to install the Tahoe software, as documented in install.html.

The tahoe executable in the bin directory is used to create, start, and stop nodes. Each node lives in a separate base directory, in which there is a configuration file named tahoe.cfg. Nodes read and write files within this base directory.

A grid consists of a set of nodes, computers running the tahoe code, each of these nodes functions as in one of the following roles:

Storage Nodes (or Server Nodes)
are the computers that actually store the data in a grid.
Client Nodes
talk to the storage nodes to put files onto the grid and get them back off again.
Introducer Node
is responsible for getting everybody talking to each other.

If you're getting started we recommend you try connecting to the the public test grid as you only need to create a client node. When you want to create your own grid you'll need to create the introducer and an initial storage nodes.

To construct a client node, run "path-to-the-tahoe-bin-directory/tahoe create-client", which will create ~/.tahoe to be the node's base directory. Acquire a copy of the introducer.furl from the introducer and put it into this directory, then run "path-to-the-tahoe-bin-directory/tahoe start". After that, the node should be off and running. The first thing it will do is connect to the introducer and get itself connected to all other nodes on the grid. By default, a node will serve as a storage node, meaning that it offers its disk space to other nodes. To configure other behavior, see configuration.txt.

To construct an introducer, create a new base directory for it (the name of the directory is up to you), cd into it, and run "path-to-the-tahoe-bin-directory/tahoe create-introducer .". Now start the introducer by running "tahoe start .". After it starts, it will write a file named introducer.furl in that base directory. This file contains the URL the other nodes must use in order to connect to this introducer.

To stop a running node run "path-to-the-tahoe-bin-directory/tahoe stop".

See configuration.txt for more details about how to configure tahoe.

A note about firewalls

If your node is behind a firewall or NAT device and want other clients to connect to it then you'll need to open a port in your firewall. To do that you'll need to know which port tahoe is listening on as, by default, it listens on an arbitrary port number. To tell tahoe to listen to a fixed port, open the ~/.tahoe/tahoe.cfg file in your favourite text editor and changing the tub.port line to something like the following:

tub.port = 8098

This tells tahoe to always listen on port 8098 of your computer. The next issue is that your computer may be behind a NATing router and isn't directly connected to the internet but goes through a router to get out. If that's the case then you'll need to set the tub.location option so that tahoe tells the introducer where you're really listening:

tub.location = myserver.mydomain.org:8098

or probably more likely

tub.location = 123.456.789.012:8098

The configuration.txt file contains more details

Do Stuff With It

Now you have a decentralized filesystem. See using.html for instructions about how to interact with it.

_______________________________________________
tahoe-dev mailing list
[email protected]
http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev

Reply via email to