Глядя на то, как в сети ed2k происходит восстановление данных поврежденной части загружаемого файла, возникла идея по добавлению подобной функциональности в протокол или хотя бы в клиенты BitTorrent.
Суть идеи такова:
В случае обнаружения несовпадения хэша загруженной части и эталонного хэша из torrent-файла запрашиваем у пиров массив CRC-сумм всех блоков части и проверяем каждый блок отдельно. Все прошедшие проверку блоки оставляем, а все битые блоки запрашиваем заново.
Результаты:
- снижается количество трафика на перекачивание битых частей.
- уменьшается время загрузки раздачи при большом количестве битых частей.