Нуль-блоками я называю блоки(части файла) заполненные нулевыми байтами. Можно заранее посчитать их хеши и не запрашивать эти блоки у источников а сразу помечать их уже загруженными.
Нуль-блоки не надо хранить на диске. Благодаря sparse флагу операционная система просто помечает этот участок файла как заполненный нулями и не хранит эти нули на диске.
Свойства файла заполненного нулями
Также показывая что участки скачиваемого файла заполнены нулями можно мотивировать пользователя отказаться от скачивания и распространения битого файла. В моей версии Shareaza эти участки помечаются красной полосой сверху на полосе прогресса загрузки файла.
Откуда берутся нуль-блоки в файле
- Раздающий не дождался полного скачивания и проверки файла и выложил неполный(partial) файл.
- Результат повреждения сектора диска раздающего.
Это те варианты которые пришли в голову.
Почему эти файлы продолжают распространяться
- Видео/аудио файл может иметь нуль-блок в середине и спокойно воспроизводится просто перескакивая то место где попался нуль-блок. Тем самым он может казаться целым.
- Образ диска также может иметь нуль-блоки в разных местах и это проявит себя только при попытке чтения файлов из этих блоков.Читать полностью »