Thanks for all the information, it’s really nice, and very close to what I want to achieve!
So, for the questions, in order:
Basically, when you have at least 3 ways to retrieve a value from IPNS:
So, maybe I’m missing something here, but for me:
ENS: well it’s decentralised (except things where money is involved usually ends up in the hands of the few) but there are all the other problems I listed (that I personally doesn’t like, it would definitely function).
DNS: ok it’s centralised
DHT: either I have missed something but if this is a Distributed Hash Table, then the data is not centralised, but the access to the data is, just like IPFS!
So for me, something is still missing (again, for me).
What do you mean? Ethereum is bound to become centralized eventually, but Bitcoin-like seems pretty decentralized to me…
So for the centralised part of bitcoin, I don’t know what’s the status today, but at a certain moment, the biggest pool had over 50% of the hash rate, so it effectively controlled bitcoin (they’ll probably won’t do anything as they earn money with it, but it’s IMO far from fully decentralised!).
If it’s random nodes, how do you know 1) it’s reliable?, 2) it won’t store more on your node than you on it?
For the reliability, it doesn’t matter that much (as you’ll use several) but a service checks the quality of the nodes and if a node is deemed too bad, it’s dropped (with their data) and another random node will be searched for.
A node only stores data when it needs other nodes to share its data. So when you share a file, and set the redundancy to 10, you’ll store 9 (as you store one yourself) data from other nodes (and the 9 nodes will store your data of course).
The sharing is also negotiated (WIP but the idea is to configure some percentage range with a maximum size), so you won’t store 1GB when the other node only stores your 5kb text file.
Also, you’ll only store data when you need your data shared, that’s the “incentive”! For what I have understood, Kademlia, IPFS always stores data (but I am aware I do not know very much about this).
snip (interesting information but no questions per see)
Do you mean encrypted files?
Yes, the files are encrypted, the communication too (throwaway AES256 over a RSA4096 ‘handshake’). The addresses are encrypted and signed. The data uses AES256.
In IPFS, you can bootstrap with a link to another node, and it will send you addresses of peers it knows. Is that what you mean?
Yeah I do that too (and yes your assumption is correct), but if you have an old version where the bootstrap nodes doesn’t exist any more, then a recent link file might get you started (as it contains addresses to, hopefully, valid nodes).
This is just icing on the cake though.
Baked in in IPFS.
There are some WIP here, like the dropping of stale nodes. I don’t have a big enough test net just yet, but again, it’s not rocket science IMO.