как запустить шлюз API при запуске узла js-ipfs? - PullRequest
2 голосов
/ 20 мая 2019

Когда узел js-ipfs запускается программно с использованием приведенного ниже кода в приложении node.js , он запускает рой, позволяя добавлять файлы и запрашивать их обратно.

// 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 и шлюз недоступны, что означает, что веб-интерфейс недоступен для проверки содержимого репо.Как запустить шлюз API вместе с ipfs swarm с помощью пакета ipfs npm?

Ответы [ 2 ]

2 голосов
/ 22 мая 2019

TCP-порты с HTTP API и шлюз открываются при запуске js-ipfs в качестве демона (Node.js):

$ 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

JavaScript, работающий в обычном веб-браузере, не можетоткройте порты TCP, чтобы js-ipfs, работающий на веб-странице, не отображал HTTP API и шлюз.

Вам необходимо использовать программный интерфейс для взаимодействия с ним.

1 голос
/ 22 мая 2019

Нашел ответ, разместив здесь, чтобы помочь любому, кто ищет подобную информацию.

Шлюз 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"
  }
...