启动js-ipfs节点时如何启动api网关?

时间:2019-05-20 00:58:37

标签: ipfs

当使用 node.js 应用程序中的以下代码以编程方式启动js-ipfs节点时,它将启动集群,允许添加文件并向其查询。

// code from the docs: https://github.com/ipfs/js-ipfs#use-in-nodejs

const IPFS = require('ipfs')
const node = new IPFS()

node.on('ready', () => {
  // Ready to use!
})

但是API和网关不可用,这意味着Web-ui无法用于检查回购内容。如何使用ipfs npm程序包与ipfs swarm一起启动API网关?

2 个答案:

答案 0 :(得分:2)

将js-ipfs作为守护程序(Node.js)运行时,将打开带有HTTP API和网关的TCP端口:

$ jsipfs daemon
(...)
Gateway (read only) listening on /ip4/127.0.0.1/tcp/9090/http
Web UI available at http://127.0.0.1:5002/webui
Daemon is ready

在常规Web浏览器中运行的JavaScript无法打开TCP端口,因此在网页上运行的js-ipfs不会公开HTTP API和网关。

您需要使用programmatic interface与之互动。

答案 1 :(得分:1)

找到了答案,并在此处发布以帮助任何需要类似信息的人。

API网关可以作为http中的ipfs模块使用,可以在ipfs节点开始时如下所示进行调用:

const IPFS = require('ipfs')
const node = new IPFS()

node.on('ready', () => {
   // start the API gateway
    const Gateway = require('ipfs/src/http');
    const gateway = new Gateway(node);
    return gateway.start();
})

API和网关将监听new IPFS()中使用的配置中指定的端口,这些端口可以从repo/config文件位置进行编辑或以编程方式提供,例如:

  "Addresses": {
    "API": "/ip4/127.0.0.1/tcp/5001",
    "Gateway": "/ip4/127.0.0.1/tcp/8080"
  }