Anonymous wrote:
I would think that if a client is banned/kicked, he would be unable to download from you too. If he get banned/kicked by too many clients, chances are he will never be able to complete the file.
You have to consider that bittorrent, right now, can only tell if a chunk is bad after it receives a full piece. The piece size is shown when you click "details" in bittornado and that is the smallest verifiable piece size. A full piece can be broken down into several sub-pieces which allows that piece to be retrieved from several hosts at once. The bad peer could send several bad sub-pieces and just because it is sending them at a good rate it would get some good sub-pieces from the peers it is sending the bad sub-pieces to. It is only after it sends a whole verifiable piece which is when it would be noticed and then that is when bittornado reacts. In some cases, this could take a while and result in a wasteful amount of downloading before the bad peer can be determined and be banned and the bad peer would have gotten a good amount of downloading done before it is shafted by some of the peers it was sending to and then tries its tricks on some other peers. If
Merkle Hash Trees are implemented in Bittorrent some day, the granularity of piece verification would increase without greatly increasing the .torrent file's size and result in much faster bad piece detection.