Balanced distribution/load for a disseminated file?

From @ivar on Sun Oct 23 2016 13:21:43 GMT+0000 (UTC)

Say I publish a file to ipfs and three other nodes grab a copy.
I understand that the copies the others have downloaded are accessible via the file hash plus their node hash, but are future requests for said file distributed between all clients that have a copy of the file (so each node with the file has a 25% chance of receive the next request) ? Or is like bittorrent where file chunks can be fetched from various peers and reassembled when complete ?


Copied from original issue: https://github.com/ipfs/faq/issues/189

From @Geemili on Mon Oct 31 2016 03:03:10 GMT+0000 (UTC)

First paragraph of section 3.4 the IPFS whitepaper;

In IPFS, data distribution happens by exchanging blocks
with peers using a BitTorrent inspired protocol: BitSwap.
Like BitTorrent, BitSwap peers are looking to acquire a set
of blocks (
want_list
), and have another set of blocks to of-
fer in exchange (
have_list
). Unlike BitTorrent, BitSwap
is not limited to the blocks in one torrent. BitSwap oper-
ates as a persistent marketplace where node can acquire the
blocks they need, regardless of what les those blocks are
part of. The blocks could come from completely unrelated
les in the lesystem. Nodes come together to barter in the
marketplace.

So yes. From my understanding, IPFS uses a BitTorrent-like protocol to download file chunks and reassemble them.

From @Kubuxu on Mon Oct 31 2016 12:46:27 GMT+0000 (UTC)

Yes, files are chunked into 256KiB chunks, then you can fetch each chunk from different place.