as always, moxie’s words are causing a lot of people to re-think their assumptions
i have a lot to say about this, and may continue to expand my thoughts here over the coming days
for the back half of 2021 nft.storage has been looking at nft chain data
we had hoped to find lots of ipfs uri’s being used for metadata and assets. while we found a lot of ipfs usage, we were disappointed to see very few ipfs uris. most users seemed to be using ipfs gateway uri’s (http urls)
then, a few months later, i realized that’s actually fine
<aside> 📖 if you wanna go deep on ipfs addressing check this out
</aside>
conceptually, you should think of ipfs as having two parts:
this is a little hard to understand at first, because when you’re likely coming from http where these two things are solved together, but ipfs is a very decomposable protocol stack so these things are actually quite separate
the addresses in ipfs use CIDs (content identifiers), which is a hash based identifier that doesn’t contain any transport information. this means it’s immutable and securely links the onchain data to the offchain data in ipfs without any centralization
the sometimes very cool but also sometimes very frustrating thing about link addressing is that there’s a viral component to whatever you use. use a centralized identifier and you’re centralized, a decentralized identifier and you’re decentralized, right?
you might think that, if you don’t use an ipfs uri, if you instead use a “centralized” http uri, you’re not going to be decentralized
that was how i had been thinking about it, but i was wrong, in practice it’s a rather solvable problem because, as long as we can find a content address we can patch the protocol
CIDs are viral this way
the transport protocol of ipfs is “any means you muster to get the data for a CID”
even when ipfs reads data from its local blockstore on disc, that’s an ipfs transport
the ipfs protocol stack is very modular this way, we may have even spent too much time thinking about problems like this 😁
that’s why ipfs gateways are so powerful, to ipfs http is just another transport. it has some annoying limitations, but so do all transports