Использовать DHT для протокола сплетен? - PullRequest
0 голосов
/ 23 мая 2018

Я уже некоторое время копаюсь в DHT и особенно в кадемлии.Я пытаюсь реализовать p2p-сеть, работающую на Kademlia DHT.Я хочу иметь возможность сплетничать сообщение для всей сети.Из моих исследований для этого используются протоколы сплетен, но кажется странным добавить еще один совершенно новый протокол для распространения сообщений, когда я уже использую dht для хранения пиров.Существует ли протокол сплетен, который работает поверх топологии DHT, такой как Kademlia?

1 Ответ

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

Насколько вы обеспокоены эффективностью?В качестве нижней границы кто-то должен отправить пакет всем N узлам в сети, чтобы распространить обновление на все узлы.

Самый наивный подход - просто переслать каждое сообщение всем записям в вашей таблице маршрутизации.,Это не сработает, поскольку это, очевидно, приводит к пересылке штормов.

Второй наиболее наивный подход заключается в пересылке обновлений, то есть более новых данных.Это приведет к N * log(N) трафику.

Если все ваши узлы являются доверенными, и вас не волнует последний показатель эффективности, вы уже можете остановиться здесь.

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

Если вы также заботитесь об эффективности, вы можете добавить рандомизированный откат до пересылки и отслеживания, какая запись таблицы маршрутизации уже имеет, какая версия для удаления ненужных попыток пересылки.

Если вы не хотите сплетничать со всей сетью, а только с ее подмножеством, вы можете реализовать подсети, к которым могут присоединиться заинтересованные узлы, т.е. подписаться на них. Предложение по улучшению Bittorrent 50 описывает такой подход.

...