There are dozens of ways to share files on the Internet but one site has made it so simple that anyone with a Firefox or Chrome browser can share content in seconds. In fact, Sharefest is so simple there’s barely anything to talk about, but behind the scenes it’s a different matter. TorrentFreak caught up with its creators for the lowdown on their super-simple, drag-and-drop, BitTorrent-like swarming system.
Sharing files is now something that many Internet users do on a daily basis, whether that’s documents, images or video.
There are plenty of ways to distribute those files, such as via email, public file-hosting sites, Dropbox-like operations, BitTorrent…the list goes on.
But what if all of those options – even email – are just too complicated?
Sharefest is without doubt the most simple way to share files available today. Fire up the Sharefest website and drag a file to the middle of the page. A link will appear – paste that to as many people as you like. Wait for the transfer to complete. Done.
Simplicity aside, what’s so neat about Sharefest is the technology going on behind the scenes.
Sharefest operates on a mesh network similar to BitTorrent and all transfers are executed peer-to-peer. Files can be shared with many people at once and the technology can swarm to speed up transfers, just like BitTorrent. It’s Open Source and apart from Chrome or Firefox, no additional software is required.
TorrentFreak caught up with Hadar Weiss from Peer5, the outfit behind the project, for the lowdown. Weiss says that the key is bringing file-sharing to the web.
“We are fascinated with the potential of P2P communication within the browser,” Weiss explains.
“We think that P2P is very powerful and there are great implementations such as BitTorrent. But P2P can reach its full potential only when it reaches the Web. Until then, it’s not really for the mainstream. For example, we like to ask ourselves, why can’t my mother use P2P filesharing? The answer, (we believe) is in a user friendly web technology.”
Sharefest uses
WebRTC, a technology that can enable browser-to-browser communications such as file-sharing and video/chat applications without need for a plug-in. The technology is present in the latest Chrome and Firefox browsers.
“People talk a lot about the WebRTC revolution, and they mostly refer to the audiovisual world. We believe the change is bigger and that we will see many web applications that use the WebRTC Data API for things other than audio or video. Many of them would need a ‘BitTorrent-like’ many-to-many system, and that’s what we build.
“Sharefest actually started just as the canonical example for many-to-many sharing that uses our technology. We wanted to Open Source some of the stuff we developed at Peer5, and file-sharing was the coolest use-case,” Weiss says.
So, using a real-world example in which I want to share a 250MB video with half a dozen friends, how does that work behind the scenes? Presumably there’s a BitTorrent-like tracker to coordinate transfers among peers who swarm to share the data and speed up downloads?
“There’s a swarming technique, and mesh networking. Meaning that any peer can be connected to number of different peers and can send and receive data. So if there are six others, you might be connected to all of them, or just one,” says Weiss.
“The tracker decides who is connected to you, depending on many parameters (we call it the matching algorithm). The most trivial is what blocks you have. Two peers with roughly the same blocks are rarely connected. Geography, ISP, available bandwidth are also important factors of course, and we will put even more in the future. The nice part, because it is server based, is that peers discover each other very quickly.”
Interestingly, Weiss says that the Sharefest tracker doesn’t need to know the IP addresses of peers.
“To match two peers, the tracker sends the relevant peers a message through a WebSocket channel. They then start a standard WebRTC handshake –
SDPs which describe the local peer capabilities are sent through the server, and they start talking with the
STUN server. The STUN server help the two peers create the real P2P connection, overcoming firewalls and NATs,” Weiss adds.
Also, Sharefest peers are able to discriminate in a way similar to BitTorrent peers, taking more data from better performing peers while taking less from others.
Sharefest is a work-in-progress and will have more features added over time. One that we’d really like to see is the ability to resume partially completed uploads. Weiss told us that this feature is not only in the works, but just about to be released. Perfect.