我正在开发一个使用 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/