我正在开发一个使用 js-ipfs 的浏览器应用程序。在我发布了一个ipfs地址(例如/ipfs/Qm...)后,我成功获得了返回的名称(例如/ipns/Qm..)。但问题是我无法在其他任何地方(本地节点的网关、公共网关等)解决它,但在同一个浏览器应用程序中,这是非常有问题的......
如何解决?我相信这与浏览器不支持 DHT 有关,但不知道如何解决它......
我正在开发一个使用 js-ipfs 的浏览器应用程序。在我发布了一个ipfs地址(例如/ipfs/Qm...)后,我成功获得了返回的名称(例如/ipns/Qm..)。但问题是我无法在其他任何地方(本地节点的网关、公共网关等)解决它,但在同一个浏览器应用程序中,这是非常有问题的......
如何解决?我相信这与浏览器不支持 DHT 有关,但不知道如何解决它......
您的节点需要可由其他节点拨号,以便他们能够从您那里解析内容或 IPNS 名称等。对于浏览器,这意味着使用 WebRTC 传输并连接到 WebRTC 信令服务器。连接到同一信令服务器的其他节点将能够拨打您的节点。
请参阅browser-exchange-files示例,了解两个浏览器节点如何通过 WebRTC 信令服务器相互发现。
公共网关运行 go-IPFS,它还没有 WebRTC 传输,因此它们无法拨打您的节点来解析名称。
如果您希望您的 IPNS 名称在用户关闭浏览器后可解析,您需要确保它在网络上的某个地方传播,您可以自己建立一个长期存在的 go-IPFS 节点,您可以通过它的 HTTP API 控制该节点(请考虑此处的安全隐患)或使用可让您创建 IPNS 名称的固定服务。