The Fundamental Problem with IPFS

Ok so I adore decentralization, and IPFS is great. The files once published will never go offline and because it is a peer-to-peer network, the load time for any file should be less in comparison to pulling a file from a server. However, it is not so. Even though the concept is great, the implementation is not meeting the expectations.

There are a few Core problems with IPFS. The first being that no user would want to setup a full node. People on the IPFS network now are tech enthusiasts, however, no user will want to deal with hashes. If a public node is available at ipfs.io/ipfs, why in the world should I setup my own node?? This would cause a shortage of nodes. I myself am guilty of joining the network, uploading my files, pinning them on public gateways, and leaving.

After that another problem is that what if I upload illegal content, and make a few nodes pin it?? IPFS, may be the replacement to torrents, which is not a good thing.

Next Filecoin. As great as it might be to get an incentive to store files, Filecoin will just drag IPFS down. If I have to pay to get back up my files, why should I not use Google Drive?? Over there At least my files are private and there is no risk of losing them.

Finally, hosting a website on IPFS. IPNS is simply terrible, and not user friendly at all, though that may change in the future. My main concern about hosting a site on IPFS is why should I do it?? There would be at max a few thousand nodes running on the network. Even if all of them pin my site, A CDN service such as cloud flare would be way more effective and efficient. Though it only works for static websites, IPFS can also only deal with static sites, as it is only a file system, not a compute sharing service.

IPFS also consumes a lot of bandwidth and users with metered connection don’t appreciate that.

Give me your thoughts on the matter.

2 Likes

@GovetaXV, I completely get where you are coming from, and I think there are similar sentiments out there. However, I optimistically think about IPFS’s future!

If you look to the past, much could be said about the Internet in the early 90s (What is Internet Anyway!?). The core problems you stated around adoption for IPFS today existed then. To setup your own website back in the 90s required a ton of technical knowledge, network connectivity, and server management skills. Today, I can go to AWS or even a SaaS provider and have a dedicated website just for my content in minutes without an ounce of technical know-how.

I think the biggest barrier here isn’t even the technical skillsets but the way we consume the technology and make it available for the masses. The Internet has experienced exponential growth due to mobile phones and easy to learn applications. There is no reason that some device or modality can’t trigger similar growth for IPFS. Mentalities need to change to. Everyone has to get comfortable with not just being a client on the network but a contributor to the network (this is hard!).

Your statement about IPFS being a linked with the negative connotations of torrents and old school p2p networks certainly remains. However, any communication medium has suffered this. I think it is our job to promote the good things IPFS can do!

Filecoin, in theory, is the economization of storage, granted it could get bunched up with all the other ICOs. I think though this is a more natural first step for people moving to decentralized storage. The concept is perhaps any easier thing for people to digest right now then being a node contributor for the greater good of the community.

Anyway, those are my ramblings. What is interesting is that IPFS is tangible tech that works. The fact that we get to have such awesome discussions like this means that there are implications for making it work in society at large.

Let me know what you think!

PS - I work in the CDN space and we do believe that p2p technologies will be the future to some extent.

4 Likes

Copy/pasting my response to the same thread on reddit: Reddit - Dive into anything

The title promises a fundamental problem, but I’d argue that the content of the post contains some issues that do not rise to fundamental problems along with some misunderstandings.

The first being that no user would want to setup a full node.

This is obviously false to start with. There are already at least a thousand nodes – so many that they had to accelerate the implementation of connection closing to prevent your node from connecting to too many of them.

For those that don’t want to run a full node there’s js-ipfs. All you need is to load a website or install a browser plugin (or maybe someday there will be built-in browser support) in order to use IPFS.

If a public node is available at ipfs.io/ipfs, why in the world should I setup my own node??

There are a variety of reasons.

  • guaranteed availability
  • no blocklists
  • control
  • performance
  • security (the gateway can serve whatever it wants, but your IPFS node can verify the integrity of what was requested)

I myself am guilty of joining the network, uploading my files, pinning them on public gateways, and leaving.
After that another problem is that what if I upload illegal content, and make a few nodes pin it??

That’s not how pinning works. By default, you can’t make someone else’s node pin something. They need to pin it themselves. Either that or they need to give the internet access to the API (not recommended and not the default).

Finally, hosting a website on IPFS. IPNS is simply terrible, and not user friendly at all, though that may change in the future.

IPNS is currently very slow, but I believe this is a technical deficiency rather than a fundamental problem.

My main concern about hosting a site on IPFS is why should I do it?? There would be at max a few thousand nodes running on the network. Even if all of them pin my site, A CDN service such as cloud flare would be way more effective and efficient.

I don’t know where your max of a “few thousand nodes comes from”, but here are some reasons.

  • easy to version and snapshot
  • someone who has already downloaded my site doesn’t need to reach out to me or a CDN to view it again
  • I’d argue that p2p networks are better than CDNs for distributing data, but I don’t have time to look for supporting sources at the moment
  • potentially improved performance in edges of the network

Though it only works for static websites, IPFS can also only deal with static sites, as it is only a file system, not a compute sharing service.

IPFS isn’t limited to static content, though implementing dynamic functionality is more difficult if you want to do it purely over IPFS. I guess this gap in difficulty is also present with current websites when hosting static websites vs a dynamic website with client-server communication. Here is some discussion about this.

IPFS also consumes a lot of bandwidth and users with metered connection don’t appreciate that.

I think this is largely a technical implementation issue. There are already some options that can be enabled to limit bandwidth, for example by running your daemon with --routing=dhtclient.

3 Likes