>> однако же отвечать на поиск по DHT приватного торрента — можно.
> Тем не менее, поскольку публикаций в DHT нет — довольно странно что
> лукап в DHT зачастую это все-таки находит.отчего странно? в данном случае вполне закономерно, DHT так работает. не обязательно аннонсить хэш, чтобы ответить на вопрос, есть ли он у меня. просто с анонсом меня быстрее найдут, вот и всё.
> Я нашел более простой воркэраунд: смотрим инфохэш и скармливаем его как магнет.
учитывая, что я всё равно периодически собираю качалку из гита, а не ставлю из пакета, то наложить патч в две строки — никак не проблема.
> Чего я не понимаю — так это как оно лукапается в DHT.
> По логике, клиенты не должны себя публиковать в DHT применительно к
> такому хэшу.
см. выше. dht-аннонсы просто ускоряют поиск. но даже если я сижу бирюком и ничего не аннонсю, а только отвечаю на вопрос «эй, бро, есть чо?», то вероятность меня найти ненулевая. а поскольку таких бирюков обычно достаточно много — то и находит. аннонсы просто помогают информации обо мне расползтись пошире, поэтому и найдут меня быстрее.
> И в DHT, лукап итеративный и пытается найти
> узлы с «ID максимально близким к вот этому хэшу».
не совсем так. а точнее, совсем не так. при старте клиент генерирует «уникальный id» (да рандом, собственно), и опрашивает тех, кто по некоторой xor-метрике близок к этому id. опрашивает на предмет: «эй, бро, есть чо? а если нет, спроси у соседа, может, у него есть чо?» таким образом запрос расползается по сети. если за некоторое время ответ на запрос не пришёл, то считается, что ничего нет. от, собственно, хэша это не зависит никак.
аннонсы же всего лишь позволяют несколько укоротить цепочку, потому что некоторые соседи уже знают про других соседей и про то, что у них «есть чо», поэтому можно обойтись без дополнительных запросов и ответить сразу.
на, читай вот: http://www.pps.univ-paris-diderot.fr/~jch/software/bittorrent/
у человека полностью stand-alone реализация торрентового DHT в одном небольшом си-файле.