Slides from Strange Loop 2013
Find below slides from the Go Circuit presentation at Strange Loop 2013. This talk focuses on presenting the circuit as a way of building apps that provide clear isolation between application development (DEV) and operations (OPS), the latter being responsible for deploying said applications.
one plus one
Shared publicly•View activity
- Hi Dave. Thanks for your interest in Kademlia and Tonika. The dev plan for Tonika is pretty clearly cut now. I plan to implement Tonika as a GoCircuit application, as this would make it a breeze to implement in record time. There is one stumbling block, before this can be done: A peer-to-peer communication driver is needed, in Go.
The simplest way to describe the needed driver is: WebRTC for Go.
If this sounds like a good project to you, I welcome the help. This is a good module to help with as it is a self-contained and reasonably-sized project.
In my opinion, the way to build this driver is:
Build a browser extension that listens for WebRTC connection requests from local OS processes — on some localhost HTTP address, establishes WebRTC connections on behalf of the requesting process, and proxies that connection from the browser to the local process.
For efficiency and isolation, the browser extension should open each new connection in a new Web Worker.
It seems that the best way to accomplish this is not to use WebRTC directly, but rather to use something like PeerJS, which gives you a clean/easy and hopefully browser-portable interface to the WebRTC data channels.
The browser extension is to be installed as a background extension that runs as soon as the computer is started (regardless of whether the browser is being used).
Since Chrome does not yet support data channels, this should be a FireFox extension.
This driver project is the only stopping block to Tonika's completion.
Once a driver is available, Tonika will be ready for use within weeks.Oct 1, 2013
- Tonika nodes need to be able to connect to each other directly through user's firewalls. How would you do that? This is what WebRTC was chosen for. Alternative approaches are much harder to accomplish.Oct 2, 2013
- Not quite. The picture is like this:
TonikaProcessA <-- HTTP --> Browser <---- WebRTC
-> Browser <-- HTTP --> TonikaProcessB
WebRTC is across the Internet. The HTTPs are on localhost.Oct 5, 2013
- Hi Dave. There is some confusion here, which is due to the poorly documented idea of Tonika. Tonika does not use a DHT. That's the whole point. DHTs are not secure. Tonika forwards information along friend-to-friend links.Oct 13, 2013
- Unfortunately, peer-to-peer systems don't have clients and servers. They have peers. This is why the game is so hard.
Other than this brief page http://pdos.csail.mit.edu/~petar/5ttt.org/, there is no description. I will aim to write up a more detailed blog post about the design in the near future and will ping you when its out.Oct 13, 2013
Add a comment...