javascript - 使用 js-ipfs 在浏览器中发布的 IPNS 名称不会在网关或本地节点上解析

标签 javascript browser ipfs dht js-ipfs

我正在开发一个使用 js-ipfs 的浏览器应用程序。在我发布 ipfs 地址(例如/ipfs/Qm...)后,我成功获取返回的名称(即/ipns/Qm..)。但问题是我无法在其他任何地方(本地节点的网关、公共(public)网关等)解决它,但在同一个浏览器应用程序内,这是非常有问题的......

如何解决这个问题?我相信这与浏览器不支持 DHT 有关,但不知道如何解决它......

最佳答案

您的节点需要可由其他节点拨号,以便它们能够解析您的内容或 IPNS 名称等。对于浏览器来说,这意味着使用 WebRTC 传输并连接到 WebRTC 信令服务器。连接到同一信令服务器的其他节点将能够调用您的节点。

请参阅browser-exchange-files两个浏览器节点如何通过 WebRTC 信令服务器发现彼此的示例。

公共(public)网关运行 go-IPFS,但尚无 WebRTC 传输,因此它们无法调用您的节点来解析名称。

如果您希望您的 IPNS 名称在用户关闭浏览器后可解析,您需要确保它在网络上的某个位置传播,或者通过自己建立一个长期存在的 go-IPFS 节点(您可以通过它来控制) HTTP API(请考虑此处的安全隐患)或使用 pinning service这将允许您创建 IPNS 名称。

关于javascript - 使用 js-ipfs 在浏览器中发布的 IPNS 名称不会在网关或本地节点上解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65039648/

相关文章:

javascript - 如何在 Hapi.js 中获取文件名并保存到磁盘?

javascript - 使用 TCPDF 在 Pdf 页面中显示表值

javascript - 如何让JS脚本使用某些变量

html - 如何在不使用 WebBrowser 控件的情况下打印网页

service - systemctl enable 有效,但 systemctl --user enable 无效

javascript - 我试图在单击的图像淡出后显示图像

javascript - 使用 jquery 定位父对象

javascript - 将 JavaScript 数组作为参数传递给 WebAssembly 函数

bitcoin - IPFS 和 Filecoin 的区别?

node.js - 尝试获取不存在的哈希时 IPFS Nodejs sdk 挂起