Всем привет, не могу разобраться в сути работы клиентов с DHT, а именно о том, как хэшируются чанки в зависимости друг от друга для одного файла и как пользователь их ищет внутри таблицы? У меня также возникло 2 доп вопроса:
1) Алгоритм связывает чанки одного торрент файла "географически" в DHT? Ну допустим я поделил файл на несколько кусков, их хэши будут схожими или совершенно независимыми? Если они будут схожими, то как так выходит, байты то у них разные. Каким алгоритмом это делается?
2) Если они будут независимыми, то как будет осуществляться их поиск, то есть клиент начнет искать ближайшие узлы по их хэшам по отдельности? То есть конкретно, получилось 3 хэша: 870b, aaa2, efed Клиент ноды которому нужны эти файлы будет искать их у совершенно разных поставщиков, независимо друг от друга? Такая операция должна замедлять скачивание в сравнении с трекерной системой, потому что сложность поиска log(n) (напр так в Kademlia DHT), получается что для 3 этих "несоседских" хэшей надо 3 раза пройтись по нодам, в то время как трекер почти сразу даст Рой с данными. На практике это ведь медленнее трекера или я не прав?
torrent dht это протокол для раздачи не кусочков торента, а фактически самого торент файла, с идентификацией по его хешу и само собой для получения списка пиров для его загрузки.
По мойму из моего вопроса очевидно, что я имею в виду не торрент как bencode файлик, а как набор файлов которые нужно скачать, но в любом случае я поправил. В статье, которую Вы прикрепили говорится что узлы хранят информацию конкретно infohash'а, я же встречал информацию о хранение хэшей отдельных чанков или файла из набора (если он маленький). Вот про 2-й вариант представления данных в DHT я и спросил
Невозможно качая один торент, забирать куски у пиров с другим торрент, даже если там файлы совпадают (например первый файл такой же, а второй отличается, чанки первого файла будут иметь совпадающий хеш)
по крайней мере я о таком не слышал, это значит идентификация торента происходит по его главному хешу а не по его чанкам
плюс разум подсказывает что если бы dht рулила хешами чанков, нагрузку она бы генерировала кратно больше, а пользы - ноль