Как торрент-клиенты гарантируют, что изменения, внесенные в файл, не влияют на передачу файла? - PullRequest
0 голосов
/ 16 июня 2019

Скажем, есть два узла A и B. В упрощенном виде, когда A запрашивает файл у B, как торрент-клиент на B гарантирует, что изменения, внесенные в файл пользователем, не влияют на передачу файла? Копирует ли он файл во временную папку до того, как начинает отправлять порции получателю-партнеру, или он принимает какую-либо блокировку записи на уровне ОС и сохраняет ее до завершения передачи?

1 Ответ

1 голос
/ 16 июня 2019

Файлы хэшируются во время создания, и хэши хранятся в торрент-файле.Хеши проверяются во время загрузки.

Более подробную информацию можно найти в спецификации ядра bittorrent .

Что происходит при обнаружении несоответствия хеша, зависит отреализация.Обычные подходы - попытаться загрузить неисправную часть из другого узла и сообщить пользователю статистику ошибок хеша.По желанию отправляющий узел может также проверить свои собственные данные и сообщить об этом своему пользователю, но основная цель спецификации заключается в том, чтобы получатель проверил данные, поскольку он все равно не может доверять отправителю.

...