This is my first time exploring IPFS. My biggest confusions at the moment are around how the garbage collector works and how IPFS pinning works.
For instance, if I build a decentralized Spotify, and post music on IPFS - what would the conditions be for the garbage collector to delete the files? Is it possible, that if a user tries to access it, the file is gone?
On top of that, regarding ipfs pinning
, the docs mentioned that "pinning" an item is essentially marking it for the garbage collector not to delete it, so it will not deleted. Am I correct in this assumption?
More specifically, how exactly does IPFS pinning work as a whole? Whatever the file is, if pinned - does that mean it's pinned on most nodes or just the node that pushes it? If it's the former, then wouldn't there be scaling issues with too many files marked as un-deletable? If it is the latter, wouldn't this mean that the initial node has to be up and running to be able to access the file? Would this then be a centralized solution?
In some threads here, I also read that by adding a file through ipfs
, you are automatically pinning it to your node. Can I get some clarification on this? If ipfs add <file>
keeps the file always accessible, then what's the difference between this and pinning it?