Можно ли использовать метрику XOR для реализации DHT без Kademlia? - PullRequest
0 голосов
/ 04 мая 2018

Таким образом, мы можем установить, что метрика расстояния XOR является реальной метрикой (она симметрична, удовлетворяет неравенству треугольника и т. Д.)

Прежде чем читать о Kademlia и его k-сегментах, я думал, что каждый узел просто найдет свой собственный идентификатор и сохранит свои ближайшие k соседей, и наоборот. Узлы периодически пингуют своих соседей и исключают их из списка, если они не отвечают.

Теперь, если я хочу найти какой-нибудь ключ X, я просто отправляю этот запрос ближайшему узлу среди моих соседей по X, и это продолжается рекурсивно, пока вы не получите узел, ближайший к X среди себя и все его соседи. Этот узел был бы среди тех, кто хранит значение для X, и затем они просто изменили бы шаги (то есть развернули стек), чтобы вернуть значение запрашивающей стороне.

Узел просто ищет свой идентификатор при подключении к сети, а затем добавляет каждого из соседей ots.

Кажется, намного проще, чем Kademlia. Будет ли это работать? Это намного медленнее, потому что у каждого поиска может быть намного больше прыжков?

1 Ответ

0 голосов
/ 10 мая 2018

номер

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

Это может даже произойти на 0-м прыжке, т. Е. Ваша локальная таблица маршрутизации может содержать только соседей, которые находятся дальше от целевого узла, чем вы. У вас не будет лучших контактов для запроса. На самом деле вы должны были бы вернуться назад на метрику расстояния, но xor distance не допускает отрицательных расстояний, поскольку это просто кольцо положительных целых чисел по модулю N, поэтому отрицательные расстояния охватывают самые отдаленные узлы, что эквивалентно корзине kademlia с 0 префиксных битов.

...