IPFS js无法连接到ws://127.0.0.1:8081 / p2p /

问题描述

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

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

在已部署站点的Firefox中,没有错误,但在野生动物园中

不允许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}`
  }
},}

解决方法

这确实与您的代码无关。

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

因此,您使用webrtc-star来发现其他要交谈的同伴。一旦了解了这些对等节点,您的节点就会知道该对等节点向网络发布的所有多地址。会有节点宣布几个地址,其中一些是本地IP地址。 js-libp2p的功能是在其配置中指定announcenoAnnounce地址,这使人们能够在这种情况下指定您是否应宣布自己的本地地址而不是公开地址。 。但是,此功能目前尚不广泛。

但是,从libp2p / IPFS的角度来看,我们需要找到一种更好的方法来捕获和记录这些错误,因为这些错误似乎与您的节点/代码有关,但是它们是由于其他对等点的多地址传播不佳而导致的在网络中宣布。

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