node.js - 使用 IPFS 的去中心化聊天应用程序

标签 node.js p2p blockchain dht ipfs

我正在使用 nodejsexpressjsangularjssocket.io 编写分散式聊天应用程序code>ipfs。我正在使用 libp2p形成将通过开放连接相互通信的 Node 。 Libp2p 是从 IPFS 中模块化的网络堆栈项目。

Libp2p 允许我构建能够承载swarmlistening/dialingnodes。我已经发展到几个 Node 可以通过 angularjs(由 socket.io 补充)网页中的输入相互通信,但它们的 IP 地址和 tcp 端口需要硬编码。

我面临的问题是,如果未知数量的用户加入这个系统并设置他们的 Node ,我该如何处理这种情况。我对 DHT 进行了大量研究,特别是它在 torrents 中的应用,但离实际应用还差得很远。

我不想运行一个中央系统来跟踪用户,因为跟踪器跟踪种子中的播种者和浸出者(由于 DHT 现在有些多余)

在集中式聊天应用程序中,每次用户进入或离开时,我都可以使用 socket.io 向所有使用相同信号的对等方发送一个 emit 事件。但是,分散式聊天应用程序中的等价物是我非常苦恼的事情。

请给我一些指导。

最佳答案

您不必特别担心这个问题,因为 libp2p 会处理 Node 的发现和连接。最后,您将获得一个用于进程寻址的原语,如果它在网络中可访问,它将始终拨号到该进程。

我最近一直在为 libp2p 编写更好的文档和教程,请转到 https://github.com/libp2p/js-libp2p/tree/master/exampleshttps://github.com/libp2p/js-libp2p .下周将提供更多示例,包括对等路由 + 内容路由(又名 DHT)。

干杯!

关于node.js - 使用 IPFS 的去中心化聊天应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38880475/

相关文章:

iphone - iOS Gamekit 最大点对点大小

blockchain - 测试网上的 Chainlink 预言机

blockchain - 比特币现金交易历史API

javascript - 如何在 solidity 0.5.2 或更高版本中分配或重置 address[] payable 变量?

unit-testing - Node.js:我应该使用 Vows 还是 Expresso 还是 NodeUnit 还是 Zombie.js 还是 All?

linux - Nodejs 服务器套接字运行到 256 个最大连接

php - Redis nodejs 获取过滤器

android - Android Wifi Direct 中的对等通信

node.js - Mongoose 文本搜索不返回结果

iphone - 在 iOS 上实现 "user to user"VoIP 的最佳方式