Я прочитал статью «Кадемалия: одноуровневая информационная система на основе XOR Metric. , но у меня все еще есть 2 вопроса.Как Kademlia/DHT получает идентификатор узла и обновляет сверстников, покидающих рой?
Q1: Как узел получает свой идентификатор узла?
BEP5 говорит: Каждый узел имеет глобально уникальный идентификатор, известный как «идентификатор узла». Идентификаторы узлов выбираются случайным образом из того же 160-битного пространства, что и данные BitTorrent.
Тогда, если вы выберете наугад, как вы выбираете и как убедиться, что выбранный вами идентификатор уникален по всему миру? Я имею в виду, что кто-то может выбрать тот же идентификатор, что и ваш.
Q2: Как узел, сохраняющий значение ключа, знает, может ли какой-нибудь сверстник покинуть рой?
В первой статье, упомянутой в первой строке, сказано: «Чтобы компенсировать узлы, покидающие сеть, Kademlia переиздает каждую пару значений ключа один раз в час.
Но если бы я был узлом, я хочу обновить, кто все еще загружает один определенный файл, я до сих пор не знаю, кто покинул рой.