Я работаю над реализацией еще одного клиента bittorrent и в это время борюсь с DHT. Он реализован в соответствии с этой спецификацией http://www.bittorrent.org/beps/bep_0005.html, но, начав отладку, я заметил, что ответы других узлов в сети различаются.Каковы последние рекомендации по внедрению DHT-решений Bittorrent?
Например, find_node должен возвращать информацию о целевом узле или 8 ближайших узлах. Большинство узлов отвечают 34 ближайшими узлами и обычно только 1 - 3 узлами из этих 34 успешно отвечают на последующий запрос ping.
Есть ли другой документ с лучшей рекомендацией по внедрению? Может быть, уже доказано, что использование 15-минутного интервала для изменения состояния узлов до сомнительного неэффективно, и мне нужно использовать 10 или другой номер? Где я могу найти лучшие современные предложения?
Есть еще одна странная вещь. Узлы Bootstrap, такие как router.bittorrent.com, отвечают с еще более близкими узлами, и обычно длина буфера свойств «узлов» BDictionary не делится на 6 (информация о компактном узле: 4 для IP и 2 для порта). На данный момент я просто отсекаю буфер на ближайшей делимой до 6 длины, но все это странно. Кто-нибудь знает, почему это может случиться?