2/ Arweave, made by @ArweaveTeam, provides "permanent, resilient storage."
IPFS, made by @protocollabs, is a "distributed system for storing and accessing files, websites, applications, and data."
3/ The main difference is that Arweave guarantees permanence. If you store a file on Arweave, it will never be deleted.
This is not true for IPFS.
4/ The most common way to store data on IPFS, and to retrieve that data, is using pinning services (e.g. @infura_io, @pinatacloud, nft.storage).
These services run a bunch of IPFS nodes, and charge a fee to upload and pin your data (https://t.co/glWNAdrBIZ is free).
5/ However, using one of these pinning services does not guarantee permanence.
Infura will delete your data from IPFS if it hasn't been accessed for 6 months.
Pinata will delete your data if you stop paying the monthly fee.
6/ When you use a pinning service, it's similar to using a centralized service like Dropbox. You are relying on the service to persist your data, and they can refuse to do so if they wish.
7/ So why is IPFS popular for storing NFT metadata (e.g. NFT images)?
Mainly because IPFS uses content addressing. This ensures that an NFT's metadata will never change.
8/ What's content addressing?
First, let's talk about location addressing.
Location addressing is when you fetch a file based on a location, like foo.com/myfile. If I control foo.com, I can change the contents of that file.
9/ Content addressing uses the hash of a file (i.e. a content identifier) to fetch it.
With content addressing, you fetch files based on "what," not "where." This guarantees the data you fetch has not been changed (if it has been, you can tell by hashing the retrieved data).
10/ However, content addressing does not guarantee your data will persist!
11/ Arweave guarantees persistence and decentralization. You are charged an upfront fee to store data (currently ~3 cents for 1MB).
The data is stored on Arweave's "blockweave" (a slightly modified blockchain data structure). Once it is stored, it will never be deleted.
12/ What about Filecoin?
Filecoin is an incentive layer on top of IPFS that incentivizes people to store other people's data.
Users pay storage providers a monthly fee to store their data.
13/ Using IPFS + Filecoin is similar to using Arweave. The main difference is that you pay monthly instead of upfront. If you stop paying, your data may be deleted.
Note that when you use a pinning service like Infura IPFS, your data is not being persisted with Filecoin!
14/ Let's recap:
- Arweave offers permanent, resilient storage
- IPFS uses content addressing, which ensures data is not changed. It doesn't guarantee permanence
- Filecoin is an incentive layer on top of IPFS that can be used to persist files
15/ If you want to store NFT metadata, I recommend Arweave. Not only does it guarantee permanent storage, it's also really easy to use (as a developer).
If you want to learn more about using Arweave for NFTs, check out this article.
My 7 favorite resources for getting started with web3...
1/ @3blue1brown's video "But how does bitcoin actually work?" explains Bitcoin's blockchain, and is the most understandable introduction to blockchain I've come across.
2/ The @ethereum whitepaper explains what Ethereum is and how it works. I recommend skimming it to get the general idea and revisiting it later.