logo dotConferences

Hyperdrive, a P2P filesharing network

Mathias Buus at dotJS 2015

Mathias introduces Hyperdrive, a BitTorrent-style file-sharing network written in JavaScript. It is based on techniques such as rabin file chunking and merkle trees to ensure only the diff of a file is shared when it is updated.


To see the slides, you can click here

More details

Hyperdrive, is a JavaScript library that allows you to distribute feeds of binary data to multiple peers on the internet. It was developed to be the main data and file distribution layer for the dat project. It works both in the browser using browserify or in node.js.

On a technical level it works in a similar way to BitTorrent. You can use Hyperdrive to distribute any kind of dataset or just to do classic file sharing with multiple peers where every peer is helping share the data.

This talk starts out with a short technical overview about how Hyperdrive works, including:

  • Diffing - Given two version of a file how do you figure out which parts has changed?
  • Deduplication - How do you make sure a single file is only downloaded once even though it is shared multiple times in different feeds?

At the end of the talk you'll see live demos, using a Hyperdrive build in the browser, to share CSV files, pictures and videos.

If you're interested in learning more about the low level details a full technical explaination on how it works can be found here: https://github.com/mafintosh/hyperdrive/blob/master/SPECIFICATION.md