[tahoe-dev] Using allmydata.com production grid?

Brian Warner warner-tahoe at allmydata.com
Sun May 31 13:36:31 PDT 2009


On Sat, 30 May 2009 15:21:16 -0400
David Abrahams <dave at boostpro.com> wrote:

> So close, and yet...
> 
> Can't someone help me get past the CLI "permission denied" issue?
> The anticipation of success is killin' me!

Remind me which "permission denied" issue you're seeing? I looked over this
thread and couldn't find a description of it.. did you mean the "connection
refused" one?:

> From: David Abrahams <dave at boostpro.com>Date: Sat, 30 May 2009 10:54:17 -0400
> Subject: Re: [tahoe-dev] Using allmydata.com production grid?
> Date: Sat, 30 May 2009 10:54:17 -0400
> 
> Despite all this information, and despite the fact that I have
> successfully launched and used the WAPI from my node, I can't get the
> CLI to do anything more than create aliases; I get "connection refused"
> no matter what.  Any hints?


It might help to know that almost all of the CLI commands talk locally to the
same webapi port that you can hit with a browser. It looks in
NODEDIR/node.url to find out where the webapi server is listening, and
NODEDIR defaults to ~/.tahoe (but can be overridden with the annoying-to-use
-d/--node-directory= CLI argument). If the contents of node.url point to the
wrong port number, or to an address/interface on which the tahoe node is not
listening, then I'd expect to see a "connection refused" message whenever you
use the CLI.

The webapi listens on a port controlled by the tahoe.cfg [node]web.port
setting (see docs/configuration.txt for details). This setting controls both
the actual port number and the network interfaces that will accept a
connection. The default is to only listen on 127.0.0.1 (to make it harder for
other people to use your personal node), so one way to run into that
"connection refused" message is if your /etc/hosts file points "localhost" at
some other address (perhaps some LAN-aimed address, like 10.0.0.1), but your
node.url is specifically pointing at http://127.0.0.1 . Another likely
suspect is if web.port is using a different port number than node.url : a few
months ago, the default port number changed from 8123 to 3456, and depending
upon when you did the installation and which documents you've been reading,
you might have a mismatch somewhere.

Another common problem here is if you have a throwaway tahoe node configured
in ~/.tahoe (perhaps by accident), and a different one in some explicit
directory like ~/stuff/my-tahoe-node . If you forget to add the
--node-directory argument, you'll use the wrong node, which might not even be
running. The tahoe CLI is designed to be most convenient to use if you just
have the one node in ~/.tahoe .

Note that the CLI only cares about NODEDIR/node.url and
NODEDIR/private/aliases: you don't actually have to be running a node in
there (yay indirection). So if you want to switch between multiple nodes (I
do this for testing all the time, with one for prodnet, one for testgrid, and
one for a local private dev grid), do this:

* put your nodes anywhere you like
* have them all listen on the same web.port
* mkdir ~/.tahoe ; mkdir ~/.tahoe/private
* write the common web.port URL into ~/.tahoe/node.url
* only run one node at a time

The CLI commands will all look in ~/.tahoe/node.url and then talk to
whichever node is currently running and listening on that port. They'll all
share the aliases file, so name your aliases well (I use "prod:" and
"testgrid:").

hope that helps,
 -Brian


More information about the tahoe-dev mailing list