2015-07-12 1 views
2

Я прочитал статью «Кадемалия: одноуровневая информационная система на основе XOR Metric. , но у меня все еще есть 2 вопроса.Как Kademlia/DHT получает идентификатор узла и обновляет сверстников, покидающих рой?

Q1: Как узел получает свой идентификатор узла?

BEP5 говорит: Каждый узел имеет глобально уникальный идентификатор, известный как «идентификатор узла». Идентификаторы узлов выбираются случайным образом из того же 160-битного пространства, что и данные BitTorrent.

Тогда, если вы выберете наугад, как вы выбираете и как убедиться, что выбранный вами идентификатор уникален по всему миру? Я имею в виду, что кто-то может выбрать тот же идентификатор, что и ваш.

Q2: Как узел, сохраняющий значение ключа, знает, может ли какой-нибудь сверстник покинуть рой?

В первой статье, упомянутой в первой строке, сказано: «Чтобы компенсировать узлы, покидающие сеть, Kademlia переиздает каждую пару значений ключа один раз в час.

Но если бы я был узлом, я хочу обновить, кто все еще загружает один определенный файл, я до сих пор не знаю, кто покинул рой.

ответ

2

Затем, если вы выбираете случайным образом, как вы выбираете

С помощью генератора случайных чисел.

Как убедиться, что выбранный вами идентификатор уникален во всем мире?

Очень маловероятно, что кто-то будет выбирать один и тот же идентификатор узла в случайном порядке. Размер ключа - 160 бит. Это 2^160 возможностей. Это немного меньше, чем у Земли есть атомы.

Q2: Как узел, хранящий значение ключа, знает, может ли кто-то покинуть рой?

Это не так. Это просто лишние значения, которые не обновляются.

Но если бы я был узел, я хочу, чтобы обновить, который до сих пор загрузив один определенный файл

Цель этого DHT не иметь точное отражение кто скачивание торрента, это только чтобы обеспечить первоначальные контакты, чтобы присоединиться к рою. Незначительные неточности не имеют значения.

Смежные вопросы