标签: js-ipfs

使用 React 时导入 IPFS 时出错

我无法导入 IPFS,因为一些 Webpack 错误。我真的不知道如何修复它们,但在搜索了一些信息后,我认为这与 Webpack 5 有关。我执行了以下步骤:

npx create-react-app test-app
cd test-app
npm install ipfs
Run Code Online (Sandbox Code Playgroud)

然后我在 App.js 中导入 IPFS:

import Ipfs from 'ipfs';
Run Code Online (Sandbox Code Playgroud)

当我执行时,npm start我收到以下错误:

Module build failed: UnhandledSchemeError: Reading from "node:fs" is not handled by plugins (Unhandled scheme).
Webpack supports "data:" and "file:" URIs by default.
You may need an additional plugin to handle "node:" URIs.

Module build failed: UnhandledSchemeError: Reading from "node:https" is not handled by plugins (Unhandled scheme).
Webpack supports "data:" and "file:" URIs by …
Run Code Online (Sandbox Code Playgroud)

reactjs webpack js-ipfs

6
推荐指数
1
解决办法
4071
查看次数

如何仅使用纯 javascript 使用 js-ipfs 创建目录并将文件添加到 ipfs

我在研究中能找到的唯一答案是从 PC 上的目录上传多个文件。这不是我想要做的。我正在尝试在 ipfs 中创建一个目录,然后仅使用纯 JavaScript 的 js-ipfs 将新文件添加到该目录中,通常一次一个文件。

我从概念上理解 ipfs 中的目录只是另一个文件。但我不明白如何创建该目录(文件)并将其他文件添加到其中以供以后检索,尤其是使用 js-ipfs 和纯 javascript 代码。

我隐式地不使用 node.js,因此也不使用 react、angular 或 vue。

这适用于 ipfs 上没有目录的单个文件:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.jsdelivr.net/npm/ipfs/dist/index.min.js"></script>
</head>
<script>
    document.addEventListener('DOMContentLoaded', async () => {
        const nodeId = 'ipfs-' + Math.random()
        const node = await Ipfs.create({ repo: nodeId })
        console.log("Your node: " + nodeId)
        window.node = node
        const status = node.isOnline() ? 'online' : 'offline'
        console.log(`Node status: ${status}`)
        async function addFile () {
            for await (const { cid …
Run Code Online (Sandbox Code Playgroud)

javascript ipfs js-ipfs

5
推荐指数
1
解决办法
1351
查看次数

ipfs.add 和 ipfs.dag.put 之间有什么区别?

使用该js-ipfs库,我正在努力寻找有关以下命令之间差异的良好信息:

> await ipfs.add('hello world',{cidVersion:1})
{
  path: 'bafkreifzjut3te2nhyekklss27nh3k72ysco7y32koao5eei66wof36n5e',
  cid: CID(bafkreifzjut3te2nhyekklss27nh3k72ysco7y32koao5eei66wof36n5e),
  size: 11,
  mode: undefined,
  mtime: undefined
}
> await ipfs.dag.put('hello world')
CID(bafyreifg3qptriirganaf6ggmbdhclgzz7gncundvtsyrovyzqigm25jfe)
Run Code Online (Sandbox Code Playgroud)

我的期望:CID 是一样的。

将不胜感激任何指点。

ipfs js-ipfs

4
推荐指数
1
解决办法
738
查看次数

使用 js-ipfs 在浏览器中发布的 IPNS 名称不会在网关或本地节点上解析

我正在开发一个使用 js-ipfs 的浏览器应用程序。在我发布 ipfs 地址(例如 /ipfs/Qm...)后,我成功获取返回的名称(即 /ipns/Qm..)。但问题是我无法在其他任何地方(本地节点的网关、公共网关等)解决它,但在同一个浏览器应用程序中,这是非常有问题的......

如何解决这个问题?我相信这与浏览器不支持 DHT 有关,但不知道如何解决它......

javascript browser dht ipfs js-ipfs

2
推荐指数
1
解决办法
1285
查看次数

如何在 IPFS/libp2p 中获取 WebRTC peer 的 IP 地址?

我正在使用此代码在浏览器中使用 IPFS。我想知道如何访问 webRTC 对等方的 IP 地址?甚至知道对等点实际上是 webRTC 还是 http 对等点?

<script src="https://cdn.jsdelivr.net/npm/ipfs/dist/index.min.js"></script>

<script>
    (async () => {
        window.node = await Ipfs.create({
          config: {
            Addresses: {
              Swarm: []
            },
            Bootstrap: []
          }
        })
        window.node.libp2p.on('peer:discovery', (peer) => console.log('peer:discovery', peer))
        window.node.libp2p.on('peer:connect', peerInfo => console.log('peer:connect', peerInfo))
        window.node.libp2p.on('peer:disconnect', peerInfo => console.log('peer:disconnect', peerInfo))
        window.node.libp2p.peerStore.on('peer', (peerId) => console.log('peer', peerId))
        window.node.libp2p.peerStore.on('change:multiaddrs', ({ peerId, multiaddrs}) => console.log('change:multiaddrs', {peerId, multiaddrs}))
        window.node.libp2p.peerStore.on('change:protocols', ({ peerId, protocols}) => console.log('change:protocols', {peerId, protocols}))
        window.node.libp2p.on('error', (err) => console.log('error', err))
        window.node.libp2p.connectionManager.on('peer:connect', (connection) => console.log('peer:connect', connection))
        window.node.libp2p.connectionManager.on('peer:disconnect', (connection) …
Run Code Online (Sandbox Code Playgroud)

ipfs libp2p js-ipfs

1
推荐指数
1
解决办法
809
查看次数

标签 统计

js-ipfs ×5

ipfs ×4

javascript ×2

browser ×1

dht ×1

libp2p ×1

reactjs ×1

webpack ×1