WebRTC for P2P [was Re: Replacing corporate search engines with anonymous/decentralized search]
On Sun, Jan 12, 2014 at 6:53 PM, Jesse Taylor <jessetaylor84@riseup.net> wrote:
... What would make more sense, and would lead to much more rapid/widespread adoption, is to use protocols like WebSockets / WebRTC to facilitate P2P connectivity in the web browser, so that everything can be done via a simple browser plugin that can be installed by anyone with few clicks, and would then just allow people to use the browser search bar as usual....
To help bootstrap the WebRTC nodes into the P2P network, and to deal with some of the instability inherent in P2P networks (i.e. by creating stable "super-peer" indexing nodes), I like cathalgarvey's suggestion of utilizing something like a Wordpress plugin that would use the same index/search standard as the WebRTC clients, but could additionally bootstrap the web-based clients. ... I've been looking around for some kind of WebRTC P2P search engine and haven't found anything yet ... maybe I've found a programming project for this summer :)
WebRTC sockets in browsers for P2P would be an interesting project; this has been brought up here and there for various purposes, yet I can't find many resources on this either. interop is much better than when i last checked! http://www.webrtc.org/interop and WebRTC is actually working in the browser i'm using: https://apprtc.webrtc.org widespread use given a compelling use case is feasible, and a much lower bar than third party application installs or Java apps require. i would be interested in following your progress if you do start coding on this... best regards,
On Sun, Jan 12, 2014 at 6:53 PM, Jesse Taylor <jessetaylor84@riseup.net> wrote: WebRTC sockets in browsers for P2P would be an interesting project; this has been brought up here and there for various purposes, yet I can't find many resources on this either.
interop is much better than when i last checked! http://www.webrtc.org/interop and WebRTC is actually working in the browser i'm using: https://apprtc.webrtc.org
widespread use given a compelling use case is feasible, and a much lower bar than third party application installs or Java apps require.
I am a huuuge fan and optimist for WebRTC. It has only just barely begun to be available in the latest stable versions of modern browsers, so we are still in the calm before the storm of experimentation. (A bit like WebSockets a few years ago, but the ramifications of P2P connections are, I think, more profound than adding real-time capabilities.) One website I use to get across the power of WebRTC is Sharefest: https://www.sharefest.me/ It's file-sharing without a cloud. The central service just assigns UUIDs and does the initial signaling, but the file transfer happens P2P. Extra neat feature: the file and associated permalink stays "alive" as long as any one person has their tab open. (It warns you if you're the last person and you try to close the tab.) As WebRTC gets mind-share and browser-share, I think you'll see a lot of effort devoted to lowering the usability and accessibility barrier to decentralized technology on the web. -- Eric -- konklone.com | @konklone <https://twitter.com/konklone>
On Sun, Jan 12, 2014 at 6:53 PM, Jesse Taylor <jessetaylor84@riseup.net> wrote: ... What would make more sense, and would lead to much more rapid/widespread adoption, is to use protocols like WebSockets / WebRTC to facilitate P2P connectivity in the web browser, so that everything can be done via a simple browser plugin that can be installed by anyone with few clicks, and would then just allow people to use the browser search bar as usual....
Thank you Jesse for your post and all the useful inline links. I've been thinking about doing a project with WebRTC as well, albeit about a simplified dining cryptographers anonymity network instead of a P2P search engine. You can read some of my rationale for wanting this in a post on Tor Talk [1]. Specifically, I'm interested in the Herbivore (proof of work) entry protocol and network topology [2], and the way in which the Dissent/Verdict system handles communication through 'servers' [3][4] to minimize bandwidth usage while maintaining a full key graph as long as at least one server is trusted (they call this the anytrust assumption). I don't intent to make a separate server and client, but to add the ability to make certain clients super nodes. The paper you linked looks interesting. I'm not currently interested in thwarting denial of service attacks (which are a plague in DC-nets), although the Verdict system presents a very elegant (but computationally expensive) solution. In any case, this could be a plug-in solution. Regarding WebRTC itself, I've been looking at the PeerJS [5] library and two different implementations of the NaCl Javascript library [6][7]. I really like the opaque Cryptobox idea of salt [8]. Do you know any other recommendable tools? I'm finishing up some remaining (dreaded) work of the last semester, but I'll start with this mid-February. Regards, Gerard [1] https://lists.torproject.org/pipermail/tor-talk/2013-December/031426.html [2] http://freehaven.net/anonbib/cache/herbivore:tr.pdf [3] http://freehaven.net/anonbib/cache/ccs10-dissent.pdf [4] http://dedis.cs.yale.edu/dissent/papers/verdict.pdf [5] http://peerjs.com [6] https://github.com/tonyg/js-nacl [7] ??? There is some native implementation of NaCL in Javascript, as opposed to the Emscripten compiled version of tonyg, but I can't find it anymore. [8] http://cr.yp.to/highspeed/coolnacl-20120725.pdf
participants (3)
-
coderman
-
Eric Mill
-
Gerardus Hendricks