2

我正在运行一个运行良好的 ipfs js 实例,但是 Web 套接字出现一些错误,我不确定为什么它甚至调用本地 IP?

Firefox 无法与位于 ws://127.0.0.1:8081/p2p/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64 的服务器建立连接。

在已部署站点上的 Firefox 中没有错误,但在 Safari 中

https://alpha.nodenogg.in/上的页面不允许运行来自 ws://127.0.0.1:8081/p2p/Qmbut9Ywz9YEDrz8ySBSgWyJk41Uvm2QJPhwDJzJyGFsD6 的不安全内容。

这是我正在使用的一些代码,任何指针以及此错误的来源都会很棒。但是,该站点使用 IPFS 完成了我想要的操作,因此我不确定此错误与什么有关。谢谢

import VueIpfs from 'ipfs'
const ipfs = VueIpfs.create()
mounted: function () {
    // console.log(VueIpfs)
    this.getIpfsNodeInfo()
  },
  methods: {
async getIpfsNodeInfo() {
  try {
    // Await for ipfs node instance.
    node = await ipfs

  } catch (err) {
    // Set error status text.
    this.status = `Error: ${err}`
  }
},

onFileSelected(event) {
  this.selectedFile = event.target.files[0]
  this.saveIPFS()
},

async saveIPFS() {
  try {
    this.fileContents = await node.add(this.selectedFile)
    this.getIPFS()
  } catch (err) {
    // Set error status text.
    this.status = `Error: ${err}`
  }
},

}
4

1 回答 1

1

这确实不是您的代码的问题。

我相信你正在使用webrtc-star传输和发现(它是浏览器环境的默认设置js-ipfs,如果你没有自定义它,你应该拥有它)。

因此,您可以webrtc-star用来发现其他可以与之交谈的同伴。一旦你了解了这些对等点,你的节点就会知道对等点向网络宣布的所有多地址。将有节点宣布几个地址,其中一些是本地 IP 地址。js-libp2p在其配置中具有指定announcenoAnnounce地址的功能,如果您不应该公布本地地址并公布公共地址,则允许人们在这些情况下指定。然而,这一功能目前并不广为人知。

但是,从 libp2p/IPFS 的角度来看,我们需要找到一种更好的方法来捕获和记录这些错误,因为它们似乎与您的节点/代码相关,但它们是其他对等方在网络。

我希望我回答了你的问题,我们将研究一个补丁来消除这些错误

于 2020-08-27T08:30:12.120 回答