我正在编写一个去中心化的聊天应用程序,使用nodejs,expressjs,angularjs,socket.io和ipfs.I am使用libp2p来形成节点,这些节点将通过开放的连接相互通信。Libp2p是从IPFS项目中模块化出来的网络堆栈。
Libp2p允许我构建nodes,它能够一对一地托管swarm或listening/ dialing。我已经开发到这样一个点,几个节点可以通过angularjs (由socket.io补充)网页中的输入相互通信,但它们的IP地址和tcp端口需要硬编码。
我面临的问题是,如果未知数量的用户加入这个系统并设置他们的节点,我该如何处理这种情况。我已经对DHT做了很多研究,特别是它在torrents中的应用,但还远没有真正应用它。
我不想运行一个跟踪用户的中央系统,就像跟踪器跟踪激流中的播种者和浸出者一样(由于分布式哈希表,现在有些冗余)。
在集中式聊天应用程序中,每次用户进入或离开时,我都可以使用相同的socket.io信号从服务器向所有对等点发送一个emit事件。但是,在去中心化的聊天应用程序中,我正在为此而苦苦挣扎。
我需要一些指导。
发布于 2017-07-08 05:47:16
您不必特别担心这个问题,因为libp2p将处理节点的发现和连接。最后,您将获得一个用于进程寻址的原语,如果该进程在网络中可访问,它将始终拨号到该进程。
我最近一直在为libp2p编写更好的文档和教程,请访问https://github.com/libp2p/js-libp2p/tree/master/examples和https://github.com/libp2p/js-libp2p。下周还会有更多的例子,包括Peer Routing + Content Routing (又名DHT)。
干杯!
https://stackoverflow.com/questions/38880475
复制相似问题