[tahoe-dev] IPv6 support

Brian Warner warner at lothar.com
Sat Aug 22 22:37:49 UTC 2009

Shawn Willden wrote:
> What is the status of Tahoe on an IPv6 network? Is it known not to
> work? Is there some reason it shouldn't work? Has it been tested? How
> do I get an IPv6 introducer FURL?

Huh, good question. I suspect it won't work yet.

The first step will be to get Foolscap IPv6-capable. I think I left room
for expansion in the FURL location hints, something like:


I think the current version might ignore those ipv6 FURLs, to provide
room for future expansion. We'd need to extend foolscap to recognize
those, and then, er, hm.

Ok, the zeroth step will be to make Twisted IPv6-capable :). It might be
already, if you pass a v6 address to reactor.connectTCP() . I don't know
how reactor.listenTCP() would work, though. Embarrassingly enough,
despite 9 years in the router business, I've not actually touched a v6
packet. So I don't know if you have to create a different socket type,
or if you just create a normal TCP socket but bind it to a v6 address.

Once Twisted can handle it, the Foolscap pieces are:

 * Listener() needs to be able to listen on a v6 address
 * the FURL parser needs to recognize v6 connection hints
 * the TubConnector needs to be able to make connections to v6 addresses
 * and maybe the setLocationAutomatically() code should recognize v6
   interfaces along with v4 ones, but that's less critical

Then, the Tahoe pieces will be:

 * networking config strings that get passed to foolscap need to not
   choke on v6
 * update tahoe's setLocationAutomatically() code (which is larger than
 * make sure v6 addresses don't confuse the grid-status web pages, in
   particular the bits that parse out addresses from the FURLs and
   getPeerAddress strings for display on the Welcome page.

So, not a deep problem, but enough work to be annoying, especially if
you have to start with Twisted. I'd love to see foolscap and tahoe be
v6-capable.. I don't have a v6 tunnel set up myself, but I'd be willing
to figure that part out if it would help test this stuff.


More information about the tahoe-dev mailing list