Welcome! If you’re new to IPFS, you’ve come to the right place. Before understanding what is IPFS, let's first see why do we need IPFS in the first place?
Let’s say you’re doing some research on cats. You might start by visiting the Wikipedia page on cats at:
When you put that URL in your browser’s address bar, your computer asks one of Wikipedia’s computers, which might be somewhere on the other side of the country (or even the planet), for the cat wiki page.
Seems straight forward, right? But there’s a lot of things that can go wrong.
- If someone attacks Wikipedia’s web servers or an engineer at Wikipedia makes a big mistake that causes their servers to catch fire, you won't get the wiki page. Thus our current internet is not sufficiently resilient.
- In 2017, Turkey blocked Wikipedia and Spain blocked access to sites related to the Catalonian independence movement. There are a lot of more examples of censorship imposed by countries, corporations or individuals.
- If your friend who lives a few blocks away from home is also trying to get the same cat wiki page, he will also have to ask the Wikipedia’s servers(which may be thousands of miles away) for the same page. But why can't he just ask your computer to give him the page, which will take a lot less time. This makes the internet slower than it should be.
- Suppose you download the wiki page 2 times by mistake. Now this causes an unnecessary duplication of data. This duplication problem is much more fatal when a lot of people share the same photo or video on facebook or instagram, which are all stored on the facebook or instagram servers, even if it's the same photo or video.
- And the list goes on...
These problems are due to the way our current internet is modeled. To solve this we need to make changes to the model of the internet at a fundamental level.
IPFS is a peer-to-peer protocol that provides a model which solves the above problems(and many more) in a way which is future-proof(which means that IPFS will not get outdated in future).
Now as we know why do we need IPFS, let's dive deeper into the core concepts.