top | item 5119876

Show HN: Pure JavaScript P2P file sharing in the browser

59 points| ShirsenduK | 13 years ago |whatareyoudownloading.com | reply

69 comments

order
[+] synctext|13 years ago|reply
False and misleading title.

_serverless_ file sharing says title, yet the technology "requires a HTTP server". "Its completely anonymous as no data is ever stored on the server". Incorrect, only mild protection against sniffing and spoofing is provided.

The underlying code documentations speaks of "This makes it perfect for anonymity": https://github.com/ShirsenduK/WhatAreYouDownloading/tree/mas... No PKI is linked or included. Proxy service or Sender/receiver unlinkability is not provided. The used WebRTC technology limits UDP/TCP listen sockets. Browser constraints mean WebRTC offers a severely limited experience. For instance, the state of the art in UDP NAT traversal using the neighbor-invite method (beyond STUN/TURN) is not possible.

Rant Disclaimer: As an academic working on a real deployed zero-server P2P technology for 7 years, this sort of claims are a bit upsetting. Zero-server file sharing systems, with a proven effective spam/pollution prevention mechanism have been proven to be extremely difficult to build. (e.g. no-spam version of Kazaa,Gnutella) See, https://torrentfreak.com/tribler-makes-bittorrent-impossible... Tribler research group created an upcoming IETF Internet Standard on sharing/streaming which features integrated NAT/firewall puncturing (IETF PPSP work). Compliant IETF PPSP implementations are capable of doing HD-quality streaming, both on-demand and live streaming: https://datatracker.ietf.org/doc/draft-ietf-ppsp-peer-protoc...

[+] ShirsenduK|13 years ago|reply
Sorry for the misleading title. By serverless I meant direct browser to browser file transfer with no server in between. Files are transferred directly. We need the HTTP Server to host the static webpage which facilitates the bridge. After all, its a browser based solution you need a page to visit. :). Services file dropbox can be used to host the static files and everyone can setup their own file transfer service. With services like WebDHT coming up each of these shares can communicate.

Just read about Tribler, it sounds really interesting. All the best with it.

This, Tribler and countless other solutions will make the internet what it was meant to be, a decentralized, fault-tolorent network for information exchange. Thanks!

[+] gritzko|13 years ago|reply
Strictly speaking, PPSP is a swarm transport protocol ("give me that data over IP, UDP or what have you, use any source available"). I mean, "sharing" is a concept unrelated to the TCP/IP stack thus PPSP is not a sharing standard.

For example, it is easy to imagine HTTP over PPSP (instead of TCP) -- which is essentially a serverless Web.

[+] dgit|13 years ago|reply
What's "neighbor invite" NAT traversal? This term doesn't resolve to anything on Google.
[+] janerik|13 years ago|reply
<p>This does not work optimally on this site because the following issues:</p><ul><li><b>It uses HTML tags in javascript alert boxes</b></li></ul>

http://tmp.fnordig.de/scr/aacc737f52.png

[+] ShirsenduK|13 years ago|reply
This currently works only on the latest browsers; like Chrome 24 on the desktop. Its still not 100% stable. Stability and support for other platforms will soon arrive through browsers updates and polyfills.
[+] piranna|13 years ago|reply
It's based on code from my ShareIt! project (http://github.com/piranna/ShareIt) and both are interoperable thanks to my WebP2P protocol :-)
[+] nextparadigms|13 years ago|reply
Can the WebP2P protocol be used for Bittorent, too, like instead of that Torque thing they have?
[+] pre|13 years ago|reply
Isn't the browser supposed to stop pages from making connections to machines other than the server they were downloaded from?

Has that requirement been dropped? Or does this do something strange to get around it?

[+] iSnow|13 years ago|reply
I strongly suspect they are using something built on WebRTC.
[+] StavrosK|13 years ago|reply
Why is everyone thinking about torrenting in browsers? I want a service where I can select a sensitive file, give my associate a link, and have that file transferred between our two computers without ever reaching an intermediate server.

Does anyone know of a service like that, easy enough for my father to use?

[+] ShirsenduK|13 years ago|reply
This does exactly this as of now.
[+] jaip|13 years ago|reply
Looks like the future of file sharing. Just waiting for the day when all the browsers would start supporting it.
[+] pranny|13 years ago|reply
this is exciting. Only Chrome24 supports it, but sooner all browsers will.
[+] joelthelion|13 years ago|reply
I'd like to see this technology used to build a decentralized, uncensorable alternative to twitter or reddit.

That would have a far greater impact than yet another file-sharing system.

The architecture would basically be a flooding P2P network with measures against spamming (machine learning?).

[+] ShirsenduK|13 years ago|reply
Now thats an idea! The web as it should be - Uncensored!
[+] loceng|13 years ago|reply
Wouldn't this require each computer on any receiving end to process all of the incoming data in order to determine if it's spam or not?
[+] kybernetikos|13 years ago|reply
Is the data encrypted on the wire?
[+] ShirsenduK|13 years ago|reply
Files are transferred as blob. Encryption can be dropped in if required. :)
[+] davedx|13 years ago|reply
What are the security implications of this?
[+] StavrosK|13 years ago|reply
If you're attributing, please make sure you spell people's names correctly:

> by @prianna

yet the link goes (correctly) to @piranna. It irks me to see people's names misspelled in attributions.

[+] roothacker|13 years ago|reply
Great Hack Shirsendu. Once again, JavaScript Rocks!!!
[+] aoprisan|13 years ago|reply
not working in latest chrome?