Как выживает P2P-приложение после смерти главного узла? - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь реализовать приложение с поддержкой P2P. Я понимаю, что мне нужно bootstrap сеть, чтобы система начала работать. Если мне нужно жестко закодировать загруженный «главный узел», откуда все узлы первоначально получают свои списки пиров.

Как новые одноранговые узлы могут получить список одноранговых узлов после появления # 1? Кроме того, если одноранговые узлы могут подключаться только к master node, поскольку равноправный узел ДОЛЖЕН иметь привилегии "admin" для bind() для указанный c порт, как worker node подключается друг к другу программно, если у них нет bind() 'ed-порта (что является идеей экосистемы P2P, не так ли)?

1 Ответ

0 голосов
/ 07 марта 2020

Я понимаю, что мне нужно bootstrap сеть, чтобы система начала работать. Если мне нужно жестко запрограммировать загруженный «мастер-узел», откуда все узлы первоначально получают свои списки пиров.

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

Чтобы обеспечить гибкость, этот список также не должен быть жестко закодирован, он должен быть настраиваемым.

Любой случайный удаленный узел должен быть достаточным для подключения к сети, например, пользователь может вручную ввести IP-адрес и номер порта другого пользователя (или скопировать их с веб-сайта или загрузить файл конфигурации ...).

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

, поскольку узел ДОЛЖЕН иметь " admin "привилегии для привязки () к указанному c порту

В большинстве систем привязка портов не требует повышенных привилегий, если вы не собираетесь связываться с привилегированным портом (обычно с номерами ниже 1024).

...