On Wed, Sep 28, 2016 at 11:30 AM, dawuud dawuud@riseup.net wrote:
Are you aware of Tahoe-LAFS?
Don't know if they are, or if they are here, all we have is their short post.
If they just need an insert and retrieve filestore for small user bases, there are lots of choices. If they need the more global and random on demand distribution properties, and even mutually co-interested long term storage nature of bittorrent, that's harder.
Today people can use onioncat to escape IPv4 address space limitations, provide UDP transport, provide configuration free on demand any node to any node IP network semantics for use by existing applications. Mass bittorrent / bitcoin / p2p apps over a private network such as HS / eep happen to typically need and match that.
Yes but then you are suggesting TCP on top of TCP via TCP/IPv6/onion/TCP.
Onioncat is only one extra encapsulation layer. Of course if you run tcp app over onioncat instead of udp app, you have to think about that too. But being the top layer, onioncat itself does not have losses, ie any losses come up from below.... clearnet --> tor --> ocat --> user.
Do you know what happens when you get packet loss with that protocol layer cake? Cascading retransmissions. Non-optimal, meaning shitty.
For certain applications, expecially bulk background transport, it's actually quite useable in practice. And people do use voice / video / irc / ssh over hidden / eep services... of course there are non-optimal systemic issues there. People will use what they can [tolerate].
You might be able to partially solve this by using a lossy queueing Tun device/application but that just makes me cringe.
That's pretty far beyond anywhere tor network design is going anytime soon.
Buffering for reordering datagrams into a queue, maybe partially if the user doesn't mind possible additional latency. Lossy... not in tcp layers.
Maybe in ideal world user would supply requirements as ifconfig request to network, each interface providing different set, user binds apps to interfaces as needed. Sliders latency / bandwidth / loss - maybe represented as single app type config param: voice, irc, bulk, torrent, network tolerant - or by list of app names. Or network would monitor and adapt to users traffic.