At the beginning of the year, we took a look at the Web3 landscape and were concerned that most minters of NFTs had no clue that their NFTs could disappear.
The most common misconception I’ve heard is that minters think NFTs are stored on the blockchain. In reality, however, only links to NFTs are stored on the blockchain—the actual NFT is just sitting on the interwebs. They’re either using traditional Web 2.0 ways to host content or they are adopting a more decentralized model with Web3.
As NFT creation races on, IPFS pinning providers are taking shortcuts with storage by using centralized providers like Amazon’s S3. We think we can do better with our pinning service.
What Is an IPFS Pinning Service?
A pinning service runs IPFS nodes and keeps content available and persistent by allowing user to "pin" for a fee. Let's backup a little. IPFS stands for the InterPlanetary File System. It’s a way to say, “my content or file should look like this.”
The way IPFS specifies what content should look like is by using content identifiers (CIDs). CIDs are a hash of the content itself or a representation of the data as it exists at one point in time versus the location of that content like the traditional URL. I can use the hash to verify the content I requested is the content I received.
How Do I Get the Content?
IPFS nodes serve content to those requesting it. Nodes are a fancy term for a computer running some software program. They join a network of peers (via a DHT, read about it on Wikipedia if you’re curious) and talk to each other about what content they’re serving.
Once I’ve determined what content I want, I ask for it. I can verify the downloaded content matches my CID. If it does I’m happy, otherwise I may ask again.
Who Keeps the Content Alive?
Strictly speaking, no one is responsible for keeping my content alive. If I minted an NFT stored on IPFS and I assumed it would persist on IPFS there’s a good chance my NFT has already disappeared.
IPFS has offloaded the responsibility of persisting my content to … you guessed it, me!
IPFS does not ensure my content is available or accessible. In fact, IPFS nodes cache content for 24 hours by default and then delete it via a process called garbage collection. The only way for content to persist is to “pin” it.
How Pinning Services Work
Pinning is how IPFS has established the way for content to be persistent. A pinning service runs the IPFS node and stores the content. Behind the scenes, it’s up to the pinning service to figure out where the content resides.
At Storj, our pinning service sends content to our decentralized storage network of over 13,500 nodes.
Comparing Pinning Services to a Pizza
To understand a pinning service further, let’s pretend for a moment I want to eat some pizza and I want to order it on UberEats.
In this version of UberEats, I can’t decide WHERE the pizza comes from. I just send a request out and someone comes back with my pizza …
So this is how I’d use UberEats:
- Log in to the app
- Say I want a pepperoni pizza
- I get a pizza
It could come from any one of five pizza places. I don’t actually get a pizza from four of those five pizza places because they say, “We lost that kind of pizza, sorry.” Someone needs an incentive to keep serving pizzas. But you might be thinking, who would give out pizzas to anyone that asks for one?
Well a pizza shop would—or in our analogy, a pinning service!
A pizza creator signs a contract with a pizza shop to make sure that pepperoni pizza will always show up for someone requesting it using UberEats. Without this ‘contract,’ no one is obligated to send you the pizza, just like no one in IPFS is obligated to store your file.
When I ask for content with a CID (a pepperoni pizza), anyone who happens to have that content can respond and give it back to me. Using the hash in the CID, I make sure the content is valid (it has pepperonis). Creators of content pay pinning services for a guarantee that the content is persistent, available, and unchanged.
But what if there are no stores that have the exact blend of pizza you want? What if your salami meatball spaghetti request goes to UberEats and no one says “I have this!” You wouldn’t get your pizza. IPFS operates the same way. If you request a CID, someone in the world has to have the data corresponding to that CID and return it back to you. If no one has it, your content is lost forever.
Problems When Content Is Not Pinned
When all the mania settles around NFTs, we’ll most likely be left with the frustration of NFT broken links and the dreaded 404 file not found pages. I keep asking myself, how can I guarantee my NFTs will be around in one year, 10 years, or even 1,000 years from now?
The blockchain isn’t the answer, it is extremely complex and expensive. Only a small percentage of NFTs have their media assets stored on the blockchain—9% of them according to yournfts.org.
It's also estimated that over 60% of digital data—scientific research, human knowledge, and art—is lost just a year after creation. (Source: Stand the Test of Time, Hackernoon).
How can I use IPFS in a way where data will stay around?
Permanently Pin with Storj
Our new beta of an IPFS pinning service allows beta users to leverage a smart contract to fund the permanent storage of any CID.
Basically it means IPFS pinning will eventually be as easy as minting NFTs. And instead of signing a contract with your pizza shop, you can use the visibility and permanence of a smart contract to ensure your content is pinned.
Storj IPFS pinning is a flat fee per MB and length of time and you can pay using your wallet address. Storj is striving to deliver a permanence-first platform that will be easy, exceed your expectations, and stand the test of time.
Help us in this journey by participating in our beta program. You’ll get exclusive pricing and help us build the best customer experience available today.