#314 closed enhancement

DNS tricks to connect clients to their own (local) node — at Initial Version

Reported by: warner Owned by: nobody
Priority: major Milestone: undecided
Component: code-frontend-web Version: 0.7.0
Keywords: introduction web Cc: zandr
Launchpad Bug:

Description

Zandr had a clever idea that we wanted to write down before we forgot about it. I'm not entirely sure what it is, but here's what I remember of it:

A user who accesses their tahoe vdrive through a web browser may or may not be running a local node. We and they would prefer to get service from their local node: it transfers load from a central webapi server to the user's own machine (thus distributing it better), and it avoids revealing file caps to the external server (thus improving privacy).

But how to tell if they're running a local node or not?

We rig up a DNS server that is connected to our Introducer. We have the client always hit the same DNS address, maybe 'anynode.allmydata.com:8123'. If our Introducer somehow concludes that they are running a node (and that it's running a webserver), it returns 127.0.0.1 for that name. If not, it returns the IP address of our central webapi server.

It's kind of like IPv6 anycast addresses. It's also kind of like dynamic-DNS services. Perhaps we give each node a distinct name, and have the client access nodeid1234.anynode.allmydata.com, and if the introducer knows that that nodeid is online, it sends the browser at 127.0.0.1 .

Anyways, neat trick, not quite sure how to use it yet.

Change History (0)

Note: See TracTickets for help on using tickets.