当使用 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网关?
答案 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"
}