It's like bittorrent (for sending chunks between peers) + DHT (for discovering which peers have which chunks) + magnet links (to identify files based on a hash of their chunks).
It's unlike bittorrent in that there are no '.torrent' files (only content hashes), no trackers, and chunks are global/pooled/shared (i.e. they're not specific to the file they came from).
The crypto bullshit is "filecoin", which tries to incentivise people to host other people's stuff. It can be safely ignored (I certainly do).
Bittorrent is based around individual "torrents", which may contain many files. Separate torrents are completely unrelated to each other: for example, if I'm seeding an old Ubuntu release, and you're trying to download a newer release, then you won't connect to me; even if many of the files in that release are identical (e.g. config files from /etc, Python libraries that haven't seen an update, etc.).
Since IPFS is a global swarm (or, in principle, "interplanetary"), then your download will fetch the files I'm seeding. Indeed, you can fetch chunks from different files, if they happen to share some contents (e.g. if a Fedora release patches the end of a script, you can still fetch the initial part without the patch).
Since we're not artificially partitioning/siloing our data, two people who happen to share the same file will end up generating the same URL: fetching that URL can get chunks from either. This is nice since it avoids any need to coordinate, or even know of each others' existence: we can just share whatever we like, and the network will ensure downloaders will find seeders. This can even happen across time: if some files lose all their seeders then their URLs will stop resolving; but if someone later happens to share the same files, then those same URLs will start resolving again.
This makes it easy to host Web sites without needing a reliable machine or connection (just seed it from a few machines; as long as one's up, it should work); it also lets us refer to URLs that are host-agnostic, and which we can even seed ourselves (rather than e.g. npm.org URLs, which may be deleted like "leftpad"; or github.com URLs which may be deleted, e.g. when projects jumped ship after Microsoft bought the site).
IPFS is a network protocol, and various parts of it have multiple inter-operating implementations. Can you show which part of the protocol has anything remotely close to a blockchain?
If I am serving content via IPFS, or downloading content via IPFS, or writing my own IPFS implementation, where is the point where I end up using this blockchain that is tied together with IPFS?
I didn't say it's directly part of the protocol. But it's part of the ecosystem, made by the same people concurrently.
Go to the Filecoin Wikipedia page. See how it says made by Protocol Labs. Click Protocol Labs, see how it actually takes you to the IPFS page. That's how synonymous the protocol and the company are. So anything made by the IPFS company, designed to operate with the protocol? I think it's reasonable to say it's something IPFS "has". At the very least it's misleading to say "no" without a footnote about Filecoin.
IPFS doesn't build on top of a block chain, but it has a blockchain.
It's not just common tech, it's made by the same people. It's not independent. Full stop.
And even if the question was "Does IPFS use/depend on a blockchain?", the appropriate answer would be "no*" or "no, but" and then something that mentions filecoin.
Let me put it in another context, would you say Brave has a blockchain? I'd definitely say it does.
Comments
I never really understood IPFS... It seems to be something similar to Torrents, but with a subtle smell if crypto bullshit smell attached to it.
It's like bittorrent (for sending chunks between peers) + DHT (for discovering which peers have which chunks) + magnet links (to identify files based on a hash of their chunks).
It's unlike bittorrent in that there are no '.torrent' files (only content hashes), no trackers, and chunks are global/pooled/shared (i.e. they're not specific to the file they came from).
The crypto bullshit is "filecoin", which tries to incentivise people to host other people's stuff. It can be safely ignored (I certainly do).
What makes it desirable as opposed to bittorrent?
Bittorrent is based around individual "torrents", which may contain many files. Separate torrents are completely unrelated to each other: for example, if I'm seeding an old Ubuntu release, and you're trying to download a newer release, then you won't connect to me; even if many of the files in that release are identical (e.g. config files from /etc, Python libraries that haven't seen an update, etc.).
Since IPFS is a global swarm (or, in principle, "interplanetary"), then your download will fetch the files I'm seeding. Indeed, you can fetch chunks from different files, if they happen to share some contents (e.g. if a Fedora release patches the end of a script, you can still fetch the initial part without the patch).
Since we're not artificially partitioning/siloing our data, two people who happen to share the same file will end up generating the same URL: fetching that URL can get chunks from either. This is nice since it avoids any need to coordinate, or even know of each others' existence: we can just share whatever we like, and the network will ensure downloaders will find seeders. This can even happen across time: if some files lose all their seeders then their URLs will stop resolving; but if someone later happens to share the same files, then those same URLs will start resolving again.
This makes it easy to host Web sites without needing a reliable machine or connection (just seed it from a few machines; as long as one's up, it should work); it also lets us refer to URLs that are host-agnostic, and which we can even seed ourselves (rather than e.g. npm.org URLs, which may be deleted like "leftpad"; or github.com URLs which may be deleted, e.g. when projects jumped ship after Microsoft bought the site).
Thanks for the insights!
https://doesipfshaveablockchain.com/
That's a pretty elaborate website just to say one word that's wrong.
The IPFS blockchain is called filecoin.
You don't have to use filecoin to use IPFS, but it's all tied together.
IPFS is a network protocol, and various parts of it have multiple inter-operating implementations. Can you show which part of the protocol has anything remotely close to a blockchain?
If I am serving content via IPFS, or downloading content via IPFS, or writing my own IPFS implementation, where is the point where I end up using this blockchain that is tied together with IPFS?
I didn't say it's directly part of the protocol. But it's part of the ecosystem, made by the same people concurrently.
Go to the Filecoin Wikipedia page. See how it says made by Protocol Labs. Click Protocol Labs, see how it actually takes you to the IPFS page. That's how synonymous the protocol and the company are. So anything made by the IPFS company, designed to operate with the protocol? I think it's reasonable to say it's something IPFS "has". At the very least it's misleading to say "no" without a footnote about Filecoin.
It is not.
IPFS exists entirely independently from Filecoin. There is no blockchain. Full stop.
That Filecoin uses some common tech with ipfs like libp2p and cids doesn’t change that.
If/when filecoin disappeared, ipfs would keep working exactly the same. Because ipfs does not have (or use or depends on) a blockchain.
IPFS doesn't build on top of a block chain, but it has a blockchain.
It's not just common tech, it's made by the same people. It's not independent. Full stop.
And even if the question was "Does IPFS use/depend on a blockchain?", the appropriate answer would be "no*" or "no, but" and then something that mentions filecoin.
Let me put it in another context, would you say Brave has a blockchain? I'd definitely say it does.
Plenty of blockchains—Filecoin included—use some amalgamation of IPFS, but the reverse isn’t true.
Heck, even Bluesky uses some IPFS tech. Does that mean it has a blockchain? Of course not.
I don’t use Brave, but from a cursory glance I think probably yes, it “uses/depends on” a blockchain for some functionality.
https://brave.com/1.39-release/
Can you show an example where that is the case for IPFS?
But one of them is directly tied to it.
It's just a web page, the actual browser functionality doesn't depend on it. But maybe it wasn't the best example.
The interesting part of it, IMO, can be pitched as "decentralized S3".
S3 + IPFS = Filebase (https://filebase.com)
Oh, that's very neat!