Retiring IPFS
I have begun the process of retiring my usage of IPFS in favor of a system I am prototyping. Until the new system is up and running, I will be moving all the projects I have been publishing to IPFS to the normal clearnet World Wide Web.
My reasons for retiring IPFS are many, but here are the main ones:
It is not private
While it claims to have a level censorship resistance, as of December 2021, IPFS contains no way to provide data without your public IP from being globally enumerable, along with being able to find out what content you are hosting. This makes it poison to anything that a tyrannical government would want to censor.
It is slow
It is not unusual for a request to take several seconds to resolve…if it resolves at all. IPNS, the only solution for mutable data in IPFS, is even worse, at times taking several minutes only to fail. The reasons for this are baked into the design of IPNS and replacing it entirely is the only way to fix this issue.
It is a resource hog
I have routinely had to forcefully restart the IPFS daemons that I have been running because they are causing performance issues with everything else on the system. It uses large amounts of network data to function and it has no way to correctly limit resources. External bandwidth limiters restrict all traffic in and out of the service, not just the traffic going to the wider internet.
Not reusing existing standards
Love it or hate it, HTTP has been around for decades. Throwing out all this work for a completely new, untested protocol seems like folly. It prevents using existing, security hardened and battle tested code. It makes integration into browsers more difficult and require additional resources for no good reason.