[p2p-hackers] Error correcting codes to prevent failure in BitTorrent like systems?

Nick Johnson arachnid at notdot.net
Mon Dec 5 04:55:02 UTC 2005


coderman wrote:

> you are assuming there was at least one complete distribution.
>
>in the situation you describe (last seed leaves) some of the remaining
>peers do then become seeds as they obtain requisite missing chunks to
>complete the torrent, if the remaining peers have the blocks required
>to complete what is missing.  i don't see how error codes would be an
>improvement (considering coding overhead / expansion), unless the
>distribution of blocks using the current bittorrent algorithm was
>heavily weighted somehow. (is it?)
>
>if a complete copy has not been distributed within the group then it
>doesn't matter what encoding mechanism you use, and in my experience
>this has been the usual cause of partial failures.
>  
>
No, the point behind using ECC is that you don't need a complete 
distribution, only 90%. Here's some stats:

Assume a file is distributed in 1000 blocks. The last seed goes offline, 
leaving 4 peers, each with an average of 500 blocks. Between them, they 
will, on average, have 1 - (500/1000)^4 percent of the blocks - 93.75%. 
The lieklihood of them having the entire file is (1 - 0.5^4) ^ 1000 - a 
very, very small number (approximately 10^-30).

However, if we precode this file into 1100 blocks, of which only 1000 
are required, assuming the same 500 blocks per peer, they have on 
average 1 - (600/1100)^4 percent of the blocks - 91.1%. Since they only 
require 10/11 (90.9%), they will usually have enough to reconstruct the 
original file. Unfortunately, I can't recall the neccessary stats to 
calculate the exact chance of success.

-Nick Johnson



More information about the P2p-hackers mailing list