[tahoe-lafs-trac-stream] [tahoe-lafs] #1086: servers should attempt to open connections to clients
tahoe-lafs
trac at tahoe-lafs.org
Mon Oct 10 11:02:29 PDT 2011
#1086: servers should attempt to open connections to clients
------------------------------+------------------------
Reporter: zooko | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: eventually
Component: code-network | Version: 1.7β
Resolution: | Keywords: introducer
Launchpad Bug: |
------------------------------+------------------------
Comment (by zooko):
Replying to [comment:12 davidsarah]:
>
> I also disagree that we should be changing the behaviour to one style
now and then changing it to the opposite style later. It makes more sense
to have a config switch (but I don't know where that switch should be).
Hm, well if we're going to converge on the minimal-unix style, this is
mostly just a matter of eliminating the use of certain foolscap features.
It isn't obvious how to eliminate them -- foolscap doesn't provide a way
to turn them off. I mean features like: all objects in one foolscap tub
can access all objects in the other foolscap tub as long as there is
currently a TCP connection open to them. One simple way to make it so that
this feature no longer allows clients to use an unrouteable server as long
as that server's tub happens to have opened a connection to that client
would be to stop running both clients and servers in the same tub! That
appeals to me. Then if you want to run both a gateway and a server you
have to launch two separate processes in your operating system.
Another feature which should probably be eliminated if we're going to the
minimal unix style is the foolscap feature of listing multiple alternative
IP addresses or hostnames, possibly including ones that are not routeable
from the public Internet, and having a client attempt to connect to all of
them in parallel and then use whichever connection succeeds. This feels
like kind of a loss -- that feature is cool because it allows two nodes
behind NAT to connect directly to one another over the LAN, for example.
The minimal unix way to do that is that they cannot talk to each other
until their human manually configures the NAT, in which case their packets
get routed to the NAT box and then back to their LAN, or the human
manually configures their IP address to be the LAN-scoped IP address, in
which case they can connect to one another directly.
David-Sarah: the reason to go the rest of the way to one style now and
then switch to the opposite extreme style later is that we plan to switch
from foolscap to HTTP. Foolscap provides a lot of very cool features in
the p2p style, and in fact it is hard to use Foolscap *without* the p2p
style. HTTP would be hard to use in the p2p style. I think we should work
with the tools rather than against them here.
Whatever we do, I hope we don't let this ticket just lie here because
there are differing opinions about which direction to head. Heading in
either direction would be an improvement, in my opinion, where the
measurement of value I'm using is "How hard is it for users to understand
and predict the behavior".
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1086#comment:13>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list