标签: ipfs

如何停止 ipfs 守护进程?(ctrl+c 仅在守护进程 cmd 提示符下有效)。需要解决方案使其也可以在其他 cmd 提示符下工作

刚刚开始使用ipfs。在我们执行 $ipfs 守护进程之后,我联系 localhost:5001/webui (显示连​​接被拒绝。检查了代理和所有东西)。守护进程逃脱了 cmd,但仍在后台运行。当我们做 $ipfs swarmpeers 时。它给出“错误:api 未运行”

点击这里查看cmd

ipfs

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

以编程方式检查IPFS上的数据传输

我们正在Electron上构建一个桌面应用程序,以便在IPFS上共享媒体.我们希望激励那些通过IPFS添加或引脚向其他用户提供数据并实际上正在"播种"数据的人.我们希望以编程方式和周期性跟踪每个用户发送和接收的数据量.

是否有标准模式或服务能够做到这一点?

TIA!

ipfs

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

`ipfs swarm connect:`connect failure:拨号尝试失败:超出了上下文截止时间

我正在使用IPFS version 0.4.4.

我的目标是连接两个对等体,以防止IPFS对等体从共享对等体读取IPFS哈希时停止.为了实现它,我ipfs swarm connect用来将peer-A连接到peer-B,其中peer-B可以访问peer-A上的ipfs-file.

我的问题与:

ipfs swarm connect /ip4/x.x.x.x/tcp/4003/ipfs/QmXXXXXXXXXXXXXXXXXXX

当我尝试将笔记本电脑连接到另一个IPFS-peer时,我面临以下错误:

connect failure: dial attempt failed: context deadline exceeded.

但是当我尝试所有端口都打开的亚马逊AWS时,它可以工作,因此群集连接成功结束.

[问]为了使ipfs swarm connect工作API和网关端口应该打开?或者我应该做别的什么?

例如:端口5001和8080无论什么都打开?

.ipfs/config 文件:

"API": "/ip4/127.0.0.1/tcp/5001",
"Gateway": "/ip4/127.0.0.1/tcp/8080",
Run Code Online (Sandbox Code Playgroud)

ipfs

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

将文件上传到 IPFS 时出错:HTTPError:需要项目 ID

目前正在制作一个用于发布聊天的基本 DApp,与 Twitter 类似,只是基于智能合约构建。我正在使用安全帽并在本地主机上运行我的应用程序。创建个人资料时,我希望用户能够上传个人资料图片,但是目前每当我尝试这样做时,都会收到以下错误:

POST https://ipfs.infura.io:5001/api/v0/add?stream-channels=true&progress=false 401 (Unauthorized)
Run Code Online (Sandbox Code Playgroud)

伴随着错误消息:

Error uploading file:  HTTPError: project id required

    at Object.errorHandler [as handleError] (core.js?edc8:103:1)
    at async Client.fetch (http.js?8f3e:149:1)
    at async addAll (add-all.js?93f2:36:1)
    at async last (index.js?7e49:13:1)
    at async Object.add (add.js?6672:22:1)
Run Code Online (Sandbox Code Playgroud)

控制台显示该函数发生错误:

    const uploadToInfura = async (file) => {
      try {
        const added = await client.add({ content: file });
  
        const url = `https://ipfs.infura.io/ipfs/${added.path}`;
  
        setFileUrl(url);
      } catch (error) {
        console.log('Error uploading file: ', error);
      }
    };
Run Code Online (Sandbox Code Playgroud)

我将在下面附上此页面的完整代码,如果您可以,请告诉我需要修复哪些内容才能停止发生此错误。关于我总体上可以改进的任何其他建议也将不胜感激:)

import { useState, useEffect, useContext, useCallback, useMemo } …
Run Code Online (Sandbox Code Playgroud)

javascript http-error ipfs next.js

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

IPFS如何搜索文件?

为了通过哈希在IPFS网络中找到文件,我们应该询问相邻节点 - “你有哈希H(F)的文件吗?” 如果没有,那么他们会进一步传播这个问题。

  1. IPFS 如何解决此类请求数量众多的问题?
  2. IPFS 搜索引擎如何工作?

ipfs

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

通过文件名在 IPFS 中搜索文件?

有没有办法通过文件名搜索 IPFS 中的文件?例如,如果我想在 IPFS 中搜索一个主题,我想这个主题的文件名类似于some-subject.pdf,那么,有一种方法可以检索包含单词“subject”的文件的哈希值?

p2p ipfs

6
推荐指数
2
解决办法
3236
查看次数

如何在IPFS中重新创建多哈希的哈希摘要

假设我要像这样向IPFS添加数据:

$ echo Hello World | ipfs add
Run Code Online (Sandbox Code Playgroud)

这将给我QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u-一个CID,它是Base58编码的Multihash。

将其转换为Base16,告诉我IPFS添加的哈希摘要是SHA2-256哈希:

12 - 20 - 74410577111096cd817a3faed78630f2245636beded412d3b212a2e09ba593ca
<hash-type> - <hash-length> - <hash-digest>
Run Code Online (Sandbox Code Playgroud)

我知道IPFS不仅会散列数据,而且实际上会先将其序列化为Unixfs protobuf,然后再将其放入dag中。

我想揭开神秘的面纱,但该如何解决这个问题,74410577111096cd817a3faed78630f2245636beded412d3b212a2e09ba593ca但我不太确定如何掌握已创建的数据,该数据将Unixfs protobuf与数据一起保存。

例如,我可以将序列化的原始数据写入磁盘并使用protobuf解码器进行检查:

$ ipfs block get QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u > /tmp/block.raw
$ protoc --decode_raw < /tmp/block.raw
Run Code Online (Sandbox Code Playgroud)

这将使我获得可读格式的序列化数据:

1 {
  1: 2
  2: "Hello World\n"
  3: 12
}
Run Code Online (Sandbox Code Playgroud)

但是,通过SHA-256进行管道传递仍然会给我带来不同的哈希值,这是有道理的,因为IPFS会将protobuf置于dag中并对其进行多次哈希处理。

$ protoc --decode_raw < /tmp/block.raw | shasum -a 256
Run Code Online (Sandbox Code Playgroud)

因此,我决定弄清楚如何掌握该dag节点,自己对其进行哈希处理,以获取所需的哈希值。

我希望使用它ipfs dag get QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u可以给我提供一个多哈希,然后可以对其进行解码,但是事实证明,它会返回一些我不知道如何检查的其他数据哈希:

$ ipfs dag get QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u
$ {"data":"CAISDEhlbGxvIFdvcmxkChgM","links":[]}
Run Code Online (Sandbox Code Playgroud)

关于如何data从此处解码的任何想法?

更新 …

ipfs

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

如何将 Base64 数据流式传输到视频中

我正在尝试从流中加载视频。即使整个视频尚未“下载”,我也希望能够“播放”视频。base64 数据以缓冲区块流的形式传入。

const videoTag = document.getElementById('videoTag');
const mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
const mediaSource = new MediaSource();

videoTag.src = URL.createObjectURL(mediaSource);

await new Promise((resolve, reject) => {
    mediaSource.addEventListener('sourceopen', function (_) {
        resolve();
    });
});

const sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);


for await (const chunk of ipfsNode.cat(CID)) {//Chunk is coming in as an array buffer
    sourceBuffer.appendBuffer(chunk);
}

sourceBuffer.addEventListener('updateend', async function (_) {
    mediaSource.endOfStream();
    $('#videoTag')[0].load();
});
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用new MediaSource()sourceBuffer.appendBuffer(chunk);推新下载的数据块的视频,但不仅在视频没有播放过,我现在用的方法要求之前,整个视频下载可以玩。

如何将我chunk的 base64 数据放入视频中?

编辑(回应评论):无论我是使用字符串还是二进制流,我都对如何将流导入视频感到有些困惑。

javascript video video-streaming html5-video ipfs

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

如何完全卸载 IPFS 并从头开始重新启动并获取新的对等 ID?

如何完全卸载 IPFS 并从头开始重新启动并获取新的对等 ID?我尝试删除 go-ipfs 文件夹,但仍然收到错误:ipfs 配置文件已存在!当我执行 ipfs init 时。

ipfs

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

文件未显示在 IPFS 上的 NFT 存储中

我将文件上传到 NFT 存储,我可以在https://nft.storage/files/中看到文件列表,但如果我单击 CID 链接,则会收到错误消息ipfs cat /ipfs/bafyreiayui2us6fpowl42vqwmjrntpewhqpfkbgcak6pt4gkpz55z2o3se/: unknown node type

我的代码如下

    const { NFTStorage, File } = require('nft.storage')
    const apiKey ='eyJ........CJ9'
    const client = new NFTStorage({ token: apiKey })

    const metadata = await client.store({
       name: artworkName,
       description: description,
       artistName: artistName,
       image: new File(data, fileName, { type: artfile.mimetype }),
    })
    console.log(metadata.url)
Run Code Online (Sandbox Code Playgroud)

我可以在NFT存储nft存储上看到metadata.json和文件

我认为,文件大小存在问题。

请帮我

metadata node.js express ipfs nft

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