At my previous company actyx.com we wrote our own ipfs implementation in rust called ipfs-embed ( https://github.com/ipfs-rust/ipfs-embed ) that serves as the storage for our distributed event sourcing system. It is used in production and is reliable.
The user of an Actyx deployment will not notice in any way that they are using ipfs in the background.
There are also some other interesting developments involving ipfs and rust. See a list of implementations here:
Here is my talk about actyx from IPFS camp 2019: https://www.youtube.com/watch?v=Qzu0xtCT-R0 . It does not go into much technical details, and it does not describe the current architecture but a previous iteration though.
Bitswap has a compat mode, but when two ipfs-embed versions talk to each other they use a different protocol.
Note that ipfs-embed is made for a different use case than the global ipfs. It is typically used by private swarms where there are a smaller number of nodes. So e.g. we don't use the DHT at all.
We also found that go-ipfs compat is not that useful for our use case, so the compat layer was mainly done as a service to the community and might not work with the latest go-ipfs / kubo.
Basically the nodes of the swarm (around 100 at most) gossip events to each other. That is also how they learn about the presence of the other nodes. They try to stay connected as well as the network topology allows.
Then when you want some bulk data via bitswap they just ask their current peers. Either the emitter of the data is a current peer, then it obviously has it. Or eventually one of your peers will replicate the data, and then you will get it with some delay.
The latter happens frequently if a part of the swarm is behind a NAT. You have some delay, but eventually everybody gets all events.
https://blog.cloudflare.com/cloudflare-pages-on-ipfs/
Unfortunately, as far as I understand, they closed down the open ipfs gateway [b] [p] - it's now up to "users" to pay for bandwidth exposed via ipfs on the web:
https://blog.cloudflare.com/ea-web3-gateways/
https://winworldpc.com/download/7f8040e5-d206-11e7-a73f-fa16...
Dont get me wrong I like IPFS and would love to see increased usage but if a libgen mirror is the biggest example then we need to find more applications for it.
Unlike with torrents, most people will be using the “gateways” - most people are not “seeding” - partly because IPFS itself is resource hungry and hard to use, unlike Torrent which is easy to use.
In reality IPFS world is very centralized, you just have this resource hungry pretend-decentralisation on top.
I don’t know why is it like that when BitTorrent is much older and much more actually decentralised.
The way BitTorrent fixed this was the ratio - if you weren't seeding enough, you'd eventually get kicked out from the tracker. Does IPFS have a similar mechanism, or something else but with the same purpose?