ChiFS compared to other networks
This page attempts to list alternative file sharing applications and networks and to describe the similarities and differences with ChiFS. All of the mentioned projects are awesome on their own right and each serve their use case very well - the intention of this page is not to criticise these projects but instead to clarify what ChiFS is and isn't.
This page is a work in progress.
BitTorrent is a protocol that allows users to efficiently exchange large files, but doesn't - in itself - provide file search and discovery features. If we include online search engines for Torrent files, with the entire ecosystem of public and private trackers, BitTorrent starts to look very much like ChiFS from a user's perspective. There are still a few differences:
- ChiFS has built-in anonymity.
- Sharing a file or a bundle of files over BitTorrent is an explicit user action. With ChiFS you can simply share a directory containing miscellaneous files with "the network", and whoever's interested in those files will be able to find and download them - no further action or organization is needed.
- BitTorrent has no network-wide file deduplication: when two people independently publish the same file, this will result in different Torrent files and different file hashes. Users who have downloaded a file from person A can't easily re-share it with others who are interested in the exact same file published by person B. Every file on ChiFS is identified by a unique hash and ChiFS clients automatically look for (alternative) users to download from.
- Downloading files through ChiFS is likely to be (much) slower than BitTorrent, this is due to the use of Tor to provide anonymity.
Direct Connect is an early 2000's chat and file sharing network that is still being used and maintained in some capacity today. While Direct Connect has been a major source of inspiration for ChiFS, there are several major differences:
- ChiFS does not have built-in presence notifications nor chat functionality.
- ChiFS has built-in anonymity.
- ChiFS has faster and more advanced file searching and browsing capabilities.
- Users do not necessarily have to join or register a "hub" in order to share or download files, ChiFS is intended to be used as a more global network - much like BitTorrent or Gnutella.
Architecturally, ChiFS moves the burden of file discovery out of the network and into (more resource-heavy) centralized nodes. This reduces network overhead, makes dealing with spam a little easier, simplifies Client and Share implementations and hopefully allows the network to scale to more users and files. The downside is that Hubs are more complex and expensive to operate.
OnionShare is a simple tool that lets you anonymously share files over the Tor network. Alas, that is also where the similarities end: OnionShare is more a convenient tool to set up a HTTP Tor Onion Service than it is a file sharing network. It does not index files, does not provide search and discovery features and does not try to provide alternative download sources in case the original source of a file is offline.
But if you want to privately send files to other people, OnionShare is safer and more convenient than ChiFS.
Tribler is a BitTorrent client that comes with built-in anonymity and decentralized search funtionality. These features bring it much closer to ChiFS in terms of functionality, but there are still a few differences:
- The (fully) decentralized nature of its search and discovery means that it's much harder for humans to filter and curate the search results, which could lead to spam or results that are unfairly biased (To be honest, I don't know whether this is an actual problem within the Tribler network, I've not yet had the time to give it a try. But I do generally prefer centralized and curated search facilities, they're simpler and easier to reason about and if you're not happy with the results you can always create your own Hub with your own rules).
- Tribler still suffers from the explicit user action requirement when sharing content and the lack of global file-level deduplication.