Back to blog
What is IPFS?
Imagine you woke up in a big city where somehow, everything just…works.
A place where information flows freely, and every neighborhood is interconnected, happily working together for the good of the city and its people. Jobs are good, public transportation actually works, the streets are safe to walk at night, and there’s a healthy distribution of wealth and influence.
In many ways, IPFS, the InterPlanetary File System, can be thought of as a city in the digital world. And for any developer, platform or creator building in web3, it is absolutely the city you want to be in.
What exactly is IPFS?
IPFS is a peer-to-peer protocol designed to create a distributed and decentralized web. Functionally, IPFS allows users to store and share files without having to rely on a single source of truth for those files. This is basically the opposite of the widely known (and widely abused) HTTP protocol. More on that later. First let’s talk about why IPFS exists.
What problems does IPFS solve?
IPFS was created to address several challenges with the traditional client-server model of the Internet. In the traditional model (HTTP), content is served from a centralized server to individual clients (people, businesses, your grandma) who request it. This model has several drawbacks:
Centralized control: The traditional model gives a lot of power and control to centralized servers which can be owned and operated by a single entity—basically the main idea that web3 is fighting against. This centralized network creates a single point of failure that, if something should happen, could make the network vulnerable to censorship or manipulation.
Slow and expensive data transfer: HTTP wasn’t designed for what the Internet is today. It was made for serving individual web pages. When a client requests that web page (aka types in the URL or clicks a link that leads to the page), the server has to send over the whole dang thing, every time. This becomes a time and resource nightmare, especially for large files. Here’s how co-founder and CTO Matt Ober explains it:
Imagine that you share a viral video with everybody in the office. The way the video would be retrieved today (with HTTP) starts with everyone clicking on the link to the video. This then takes them to the website that the video is hosted on and every single one of your coworkers’ computers has to individually reach out to the website’s server to download the video. This situation puts enormous strain on our internet infrastructure and is why phrases like the “Reddit hug of death” exist today.
No hugs of death, please.
Data permanence: If an HTTP server goes down or data is deleted, the content can be lost forever. When everything relies on one server, well, that’s just not great. Important data could be lost without any way to recover it.
Those are some of the specific problems, but here’s the big problem put another way: In order for the progress of content, data and global sharing to keep moving forward, the Internet needed a better way to store and distribute data.
IPFS was created to address these challenges by introducing a new model of content distribution based on peer-to-peer networks.
How IPFS works
By using IPFS, files can be stored and shared across a network of nodes rather than being centralized in one location. This doesn’t only make it easier and faster to access files, it makes those files more resilient to censorship, manipulation, and data loss.
Going back to our city analogy, if IPFS is the city, you can think of each node as a different neighborhood in the city. Big cities have neighborhoods that generally work independently of each other.
Take New York City as an example. Brooklyn, Queens and Manhattan are all part of NYC, but they each have their own unique attributes, characteristics, and local infrastructures. Some nodes are bigger than others, some faster, some more accessible to people in certain areas.
Unlike the traditional HTTP protocol which relies on a centralized server, IPFS uses a network of nodes. Each node is like an individual computer that works with other individual computers together to store and distribute files.
When someone wants to add a file to IPFS (a process known as “pinning”), their node breaks that file into small pieces, called "blocks," and assigns a unique identifier, called a "hash," to each block based on its content. These blocks are then stored on different IPFS nodes across the network.
When someone wants to access a file on IPFS, their node requests the blocks that make up the file from other nodes in the network. Because the file is stored in multiple locations, it can be accessed more quickly and efficiently than if it were stored in just one place. Plus, if one node malfunctions or goes haywire, the city and all its people (aka the network and all its data) are safe.
The efficiency comes into play with direct connections between nodes. When a node requests a block from another node, those two nodes establish a direct connection with each other via IPFS gateways. This allows them to share blocks and information with each other more efficiently, without having to rely on a centralized server who might have the power to censor, manipulate or otherwise mess with the data.
No city would be very efficient if every neighborhood had to go through city hall to get anything done. And you can imagine what would happen if, for some reason, everyone needed something important (like a notary service or marriage license) at the same time. City hall wouldn’t be able to hold everyone, and if you know anything about New Yorkers, the result would not be pretty.
If you’re a business or a developer, this IPFS infrastructure means a big potential cost reduction since it reduces the need for expensive data centers and servers. It also means that if one node goes offline, the network can still function because there are other nodes available to take its place. Just like NYC: if a bus breaks down in Brooklyn, a bus from Manhattan can come grab those riders and make sure they get to the Knicks game before tipoff.
The result is a network that is FAST, efficient, resilient, and made for the people. And just as a city is constantly growing and evolving, so too is IPFS, adapting to changing needs and requirements.
Use cases for IPFS
So now you understand why IPFS is the superior protocol. Even if you’re not super tech savvy, you can see how it makes the storage and distribution of data faster, safer, and more efficient. Now, how can this technology be used in real situations? We thought you’d never ask.
Decentralized file storage: When you can’t afford to risk losing files, having them fall into the wrong hands, or become otherwise corrupted IPFS is where you want to store them. This use case goes beyond web3, as some museums have started using IPFS to ensure certain resources will be available for future generations, even if the original websites are no longer online.
Distributed web hosting: IPFS can be used as a distributed web hosting platform, where websites are hosted across a network of IPFS nodes rather than being hosted on a centralized server. This approach can offer advantages such as improved performance, reliability, and security. Especially if you have a website that you need total control over, without the risk of it getting shut down for any reason.
Blockchain data storage: IPFS can be used to store data on a blockchain, allowing for a decentralized and immutable (unchangeable) record of data transactions. This can be useful for applications such as decentralized finance (DeFi), supply chain management, and digital identity.
Content addressing: IPFS uses content-addressed storage, which means that files are addressed based on their content rather than their location. This is ideal for applications that require fast and reliable access to content, such as NFT collections, marketplaces or developer platforms.
Limitations and challenges of IPFS
Despite its potential benefits—for everyone, not just developers—IPFS still faces several limitations and challenges that hinder its widespread adoption.
Scalability: Most people who use IPFS use public IPFS networks, meaning they’re all using the same streets to get around. As the number of files and nodes on the network increases, the network can become slower and less reliable due to bandwidth and node capacity. Aka, traffic.
Adoption and network effect: HTTP has a lot of people (like 5 billion) who know it, use it, and for the most part, like it. IPFS, although big in web3 circles, doesn’t have near the level of adoption. That presents a problem, since for IPFS to be effective, it requires a large and active network of nodes. A smaller supply of nodes limits the speed and availability of the network.
File pinning and incentivization: IPFS nodes must "pin" files in order to ensure that they are available on the network. But pinning your own files to IPFS isn’t exactly a walk through Central Park. It’s complicated, costly and time-consuming, which can discourage users from participating in the network.
These challenges create room for innovative solutions and promote the further development of IPFS throughout the community. And that’s where a pinning service like Pinata comes in.
How Pinata helps solve these IPFS challenges
Pinata was built back in 2018 to solve the challenges that IPFS users and supporters have to deal with to build on its network. One of the ways Pinata solves for scalability and network effect is through our Dedicated IPFS Gateways. If you can imagine the public networks as crowded streets (except at 2am when you probably wouldn’t be walking around), Dedicated Gateways are private streets that only you can access.
Pinata has a built in CDN (content delivery network) and 200 server locations around the world, so no matter where you are, you can retrieve your content extremely fast, all the time. Plus, they’re customizable, so you can name your street to match your brand.
And when it comes to pinning, well, that’s why we’re called Pinata. Our platform offers an intuitive, easy to use interface that anyone can use to easily pin their files to IPFS, and distribute them as they see fit.
Our co-founders Kyle and Matt worked closely with developers to create a solution that was reliable, easy to use, and ultimately a solution to help build faster. To this day, community feedback drives everything we do. And much of that is the same with IPFS.
Growing the IPFS ecosystem
Since its inception, the IPFS ecosystem has grown to be a thriving community of developers, enthusiasts, and companies working together to build the decentralized web. In their words, their ultimate aim is to “empower individuals and organizations to create and share information freely, securely, and without limitations.”
The IPFS ecosystem is constantly expanding, with new tools and projects being developed all the time to support the growth of the decentralized web. Plus, it’s open source, so anyone can contribute to the future of IPFS, regardless of interest or specialty.
The distributed nature of IPFS aligns with the increasing demand for a more secure, decentralized, and efficient web, making IPFS a promising technology for the future. And we’re here for it.
When you're ready to start building with IPFS, Pinata is here to help. Create an account and let's build the future of the internet together.