17

A year ago I attended Munich meetup where I first saw hyperdrive project live, and found it impressive. I also recently stumpled upon IPFS –the InterPlanetary file system– and I wonder about the differences. It's easy to have a lot of repercusion when starting a project like this in California, so I guess they might be similar projects but still don't understand the scope of hyperdrive fully.

I very much like the API and implementation hyperdrive, so if I had to build an app over a distributed file system I believe it would be easier for me at this point to chose that project.

Is there anywhere or some bold bullet points I could use for comparison?

Thanks

Arnold Schrijver
  • 3,588
  • 3
  • 36
  • 65
jsdario
  • 6,477
  • 7
  • 41
  • 75

2 Answers2

15

Some specific differences between IPFS and hyperdrive, considering both as mechanisms for sharing files and directories of files between peers in a distributed fashion are that:

  • IPFS has a global namespace (a given chunk or file with a specific hash can be used or accessed in any context), while hyperdrive files and chunks are scoped to individual drives. This is a bit of a generalization, but by default a file appearing in multiple hyperdrives will be downloaded over the network for each drive.
  • A connection to the IPFS network is usually persistent (eg, with a local daemon running that applications talk to, instead of talking directly to the network). There is no single dat or hyperdrive network, only peer swarms interested in specific drives; hyperdrive applications typically discover and connect to peers on their own.
  • Discovery and reference to hyperdrives is based on public key encryption (the keypair generated by the creator), while IPFS uses content hashing (meaning, in theory, it doesn't matter who added a given file or chunk to the network)
  • IPFS's merkel tree implementation does a better job de-duplicating between slightly modified copies of the same file. Hyperdrive files are stored as single contiguous chunks; even a small append to an existing file requires re-writing the same file to the feed. It's possible for hyperdrive to evolve to handle this de-duplication in the future.

Subjective observations:

  • hyperdrive's current tooling for efficiently synchronizing entire directories of files between many peers is more polished (this is a core use-case for hyperdrive, and one of many use-cases for IPFS).
  • As of March 2018, there exists a usable web browser with native support for hyperdrive (Beaker Browser), and not for IPFS. Browser support for IPFS is likely to emerge in the next year, but will probably not be as ingrained to start (eg, will start with read-only).
  • IPFS's core libraries and tools have been ported to more languages, and have seen more review and development than hyperdrive.
bnewbold
  • 334
  • 2
  • 8
  • Some comments: IPFS can be embeded within an application just like Dat, it has implementations in Go, JS and .NET, two of which can run as daemons or be embeded within an application. IPFS can run in a browser either using js-ipfs which has some performance issues still or using the IPFS-Companion Chrome/Firefox extention which requires an IPFS daemon to be installed. – RangerMauve Mar 05 '18 at 19:07
  • 1
    @bnewbold Nice answer. Re:"Hyperdrive files are stored as single contiguous chunks; even a small append to an existing file requires re-writing the same file to the feed." - Is this still true? At https://github.com/datproject/docs/blob/master/docs/how-dat-works.md#phase-3-data-exchange it says it uses Rabin chunking, so if there was an append to an existing file it would only change the last chunk on the end of the file, and chunks are around 16kb. All the other chunks would have the same hash and thus not need to be redownloaded. – localhost Jul 30 '18 at 00:30
  • 1
    I think I address your questions in https://stackoverflow.com/questions/51587833/can-dat-protocol-efficiently-support-live-streaming-of-video Rabin fingerprinting is not currently used (that page should be updated), but simply appending to a file is sort of a special case and the chunking shouldn't matter. – bnewbold Jul 31 '18 at 01:03
  • How would you compare the UI of say, making changes in a file in a sub-folder from root? I understand I'd need to update my links to root folder on ipfs but dat allows a stable unchanging root URL to link into my app? – Tomachi Aug 12 '22 at 12:14
8

I think these are more or less comparable technologies. They can both be used for creating decentralized software solutions.

Hyperdrive is part of a larger ecosystem of inter-operating modules. It's the file processing part and relies on hypercore. But the overarching initiative is the not-for-profit Dat Project. See also the dat-awesome list to get an overview of the technology and its various components.

In the FAQ there is a section:

Dat vs ?

Dat has a lot of overlap with other distributed web tools, data management tools, and distributed version control. Below are some of the most common questions. See more in depth technical comparisons in the Dat whitepaper.

In general you could say that Dat with its ecosystem is more positioned towards application design, while IPFS is a generic protocol + implementations for file sharing.

There are no standards in the field of Decentralized Computing yet. It's really an unmined niche in IT. I would say of the two technologies IPFS currently has highest changes of becoming a de-facto standard. But Dat is gaining traction and has a very active community (but a little hard to perceive because of some fragmentation of all the github repo's involved, like hyperdrive). For an interesting discussion about this you should read this discussion thread.

On blockchain I can only say: Be vary careful and do your homework well, otherwise stay away!

Hope this proves helpful to you!

BTW I removed your 'blockchain' tag because it is unrelated, though any blockchain app could decide to incorporate IPFS (or Dat for that matter). There is a discussion repo for IPFS + Blockchain but it is not very active

Arnold Schrijver
  • 3,588
  • 3
  • 36
  • 65
  • 1
    moved: [dat-paper.md](https://github.com/dat-ecosystem-archive/whitepaper/blob/master/source/dat-paper.md#4-existing-work) – milahu Jan 11 '23 at 11:29