Holochain Forum

When NOT to Use Holochain

You probably SHOULD NOT use a Holochain for:

  • Yourself: You generally don’t need distributed tools to run something for yourself. The exception would be if you wanted to run a Holochain to synchronize certain data across a bunch of your devices (phone, laptop, desktop, cloud server, etc.).
  • Anonymous/Secret/Private Data: Not only do we need to do a security audit of our encryption and permissions, but when you publish to a shared DHT space, unless you really know what you’re doing, you should not assume data is private. Some time in the future, some applications may add an anonymization layer (like Tor), but it is not native.
  • Large Files: Think of Holochain as more like a database than a file system. Nobody wants to be forced to load and host your big files on their devices just because they are in the neighborhood of its hash. Use something like IPFS if you want a decentralized file system.
  • Data Positivist-Oriented Apps: If you have built all of your application logic around the idea that data exists as an absolute truth, not as an assertion by an agent at a given time, then you need to rethink your whole approach before putting it in a Holochain app. This is why most existing cryptocurrencies would need significant refactoring to move from blockchain to Holochain, since they are organized around managing the existence of cryptographic tokens.

Would there be any idea in making like a dropbox happ then?

In terms of the file storage you would need some other technology to combine with Holochain. I think adding to the Large Files point that no one wants to store large files on there system unless maybe you can figure out a way to reward them for it.


NB: Holochain can still be used to store large files, but with some caveats:

  • Files should probably be ‘chunked’ into small pieces, as with IPFS, to spread out the hosting burden among all users.
  • If your app is, say, a social media app that allows people to post both text and videos, I’d recommend breaking features into separate DHTs. Then all users can participate in the ‘core’ DHTs used for friend discovery and text posting, but can choose whether or not to join the ‘big huge files’ DHT. Or, better yet, keep each file in its own separate DHT so users can choose whether or not to replicate them.