Децентрализованное приложение чата с использованием IPFS

Я пишу децентрализованное приложение чата, используя nodejs, expressjs, angularjs, socket.io а также ipfsЯ использую libp2p для формирования узлов, которые будут общаться друг с другом через открытое соединение. Libp2p - это сетевой стек, модульный из проекта IPFS.

Libp2p позволяет мне строить nodes которые способны принять у себя swarm или же listening/ dialing к одному. Я разработал до такой степени, что несколько узлов могут взаимодействовать друг с другом через входы на веб-странице angularjs (дополненной socket.io), но их IP-адреса и tcp порты должны быть жестко закодированы.

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

Я не хочу запускать центральную систему, которая отслеживает пользователей, так как трекер отслеживает сеялки и рывки в потоках (теперь несколько избыточный из-за DHT)

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

Мне нужно руководство, пожалуйста.

1 ответ

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

Недавно я работал над улучшением документации и учебных пособий для libp2p, перейдите по https://github.com/libp2p/js-libp2p/tree/master/examples и https://github.com/libp2p/js-libp2p, На следующей неделе появятся другие примеры, в том числе Peer Routing + Content Routing (он же DHT).

Ура!

Другие вопросы по тегам