2014-01-29 1 views
7

Я думал о том, как будет работать реальная 100% -ная серверная система. В частности, меня интересует открытие сверстников. Похоже, что это единственная часть, которая удерживает существующие децентрализованные системы фактически децентрализовано.Возможные решения для 100-процентного (децентрализованного) открытия одноранговых сетей?

Насколько я знаю, нет 100% -ной системы без сервера. Например, даже торренты должны подключаться к централизованным сетям, таким как трекеры или DHT-маршрутизаторы (router.bittorrent.com), чтобы обнаружить своих сверстников.

Первое, что я придумал, это широковещательное интернет-соединение. Проще говоря,

  1. клиент передает его идентификацию (например, IP-адрес) маяк в мире
  2. Другой клиент получает этот маяк
  3. оба клиенты подключены друг к другу.
  4. Если подключено больше клиентов, они образуют плотную сеть.

Тем не менее, это, вероятно, очень inefficient (255 * 255 * 255 * 255 * 64 байт = 270GB/маяком) и not supported. На данный момент это единственное решение, о котором я мог думать. И после поиска в течение нескольких часов единственным решением является «просто использовать частично централизованный сервер».

Есть ли какие-либо решения (даже теоретические) для 100-процентного обнаружения на стороне сервера?

+2

Ipv6 делает это еще более неосуществимым. – Adria

ответ

2

В 2008 годе XMPP разработал стандарт для поддержки Discovery бессерверных сверстников службы информации

http://www.xmpp.org/extensions/xep-0174.html

К сожалению, я нашел только один случай, когда это было реализовано.

https://igniterealtime.org/issues/browse/SMACK-262

Это не было совершено на базе кода, поскольку он был заблокирован зависимости. Были попытки перекомпилировать его с более новыми версиями. https://github.com/jadahl/smack-linklocal это может быть одно, но не может проверить, работает ли оно.

Как работает открытие сверстников с использованием mDNS с DNS-SD,

Прочитайте XEP-0174 спецификации о том, как это работает для более подробной информации.

+1

Из XEP-0174 «демон (1) публикует следующие DNS-записи для DNS-адреса многоадресной рассылки 224.0.0.251 (или FF02 :: FB для IPv6) и (2) прослушивает запросы многоадресной DNS, запрашивающие эти записи». Из того, что я могу собрать, этот метод использует «централизованное» (Domain Name) Server для пересылки входящих соединений клиенту. –

+0

Из wiki: _ XMPP-сеть использует архитектуру клиент-сервер; ** клиенты не разговаривают напрямую друг с другом. ** Модель децентрализована - любой может запустить сервер. Итак, если я это правильно понимаю, XMPP - это, по сути, еще одна децентрализованная сеть. Не тот, который ищет ОП. – Storix