2014-11-11 5 views
4

Если вы создаете новое приложение, которое использует распределенную хеш-таблицу (DHT), вам необходимо перезагрузить сеть p2p. У меня возникла идея, что вы можете присоединиться к существующему DHT (например, Bittorrent DHT).Могут ли приложения сосуществовать в одном и том же DHT?

Возможно ли это? Конечно, мы принимаем ту же технологию. Совмещение аккорда с Кадмелией, очевидно, невозможно.

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

ответ

5

В целом: Kademlia и Chord - это всего лишь абстрактные конструкции, а реализации обеспечивают разную функциональность. Если его набор функций слишком узкий, вы не сможете отобразить на нем свою прикладную логику. Если он слишком широк для ваших нужд, может быть больно повторно реализовать, если библиотека с открытым исходным кодом недоступна.

Для bittorrent: Bittorrent DHT предоставляет ключ 20byte -> List [IP, Port] в качестве основной функции, где IP определяется IP-адресом отправителя и, следовательно, не может использоваться для хранения произвольных данных. Есть некоторые второстепенные функции, такие как статистика фильтра цветения по этим спискам, но они, вероятно, еще менее полезны для других приложений.

Он не обеспечивает общее хранение значений ключа, по крайней мере, не является частью основной спецификации. Существует extension proposal for that

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

Если да, то это считается паразитическим или симбиотическим?

Это во многом зависит от того, являетесь ли вы «хорошим гражданином» в сети.

  • Выполняет ли ваша реализация спецификацию, включая обычно используемые расширения?
  • Поддерживает ли ваш общий прецедент по порядку величины по сравнению с другими узлами, когда дело доходит до трафика, который он вызывает?
  • Является ли жизненный цикл приложения достаточно длинным, чтобы не лежать вне ожидаемых ставок оттока целевого DHT?