- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 js-ipfs 服务器端在 IPFS 上“上传”文件,但它的效率似乎不如命令行 ipfs daemon
和 ipfs add someFile
.
服务器端,我实例化了一个 Ipfs
对象,然后我尝试使用文件内容的路径和缓冲区来 storeData
。当我的服务器启动时,我连接到三个群:
Swarm listening on /ip4/127.0.0.1/tcp/4003/ws/ipfs/QmTBoDWXviw7eRKeDGbp3wU2PxAw1epPxax6mp8uY6CEEW
Swarm listening on /ip4/127.0.0.1/tcp/4002/ipfs/QmTBoDWXviw7eRKeDGbp3wU2PxAw1epPxax6mp8uY6CEEW
Swarm listening on /ip4/10.19.77.89/tcp/4002/ipfs/QmTBoDWXviw7eRKeDGbp3wU2PxAw1epPxax6mp8uY6CEEW
我是这样使用 IPFS 的:
const IPFS = require('ipfs');
const node = new IPFS();
class Ipfs {
constructor() {
node.on('error', e => console.log(e))
node.on('start', () => console.log('Node started !'))
node.on('ready', () => console.log('Node is ready !'))
}
storeData(content, path) {
return new Promise((resolve, fail) => {
let encData = {
path: path,
content: content,
};
node.files.add(encData, (err, data) => {
if (err) return fail(err);
return resolve(data);
})
})
}
}
当我从我的对象调用 storeData
时,IPFS 会返回一个哈希值让我可以获取我的文件,但是 https://ipfs.io/ipfs/[hash]
从不加载。
我想强调一个事实,即 ipfs add
命令行给出的哈希立即生效
提前致谢
最佳答案
在命令行中,当您运行 ipfs add <some file>
时它会将文件分块,并将其添加到本地 ~/.ipfs
目录。在运行时,它会打印出 block 的 CID,最后是根 CID。
如果您尝试通过运行 ipfs cat <root CID>
从 IPFS 获取文件使用您刚从运行中获得的 CID ipfs add
然后它也会很快,因为它会从您的本地存储库中提取 block 。如果你运行 ipfs cat
使用您当前没有的 CID,然后它会向您连接的对等方询问。如果当前没有连接到为该 CID 提供数据的人,这可能需要一段时间。
在js-ipfs
打电话node.files.add
工作方式类似于运行 ipfs add
从命令行。一旦完成文件分块并将它们存储在本地(默认情况下在 ~/.jsipfs
中),它将返回根 CID。
尝试通过 https://ipfs.io/ipfs/[CID]
从公共(public)网关获取根 CID如果在 ipfs.io 操作的网关机器上运行的 IPFS 节点需要一段时间才能找到该 CID 的提供者,则可能会很慢。它是一台远程机器,它必须首先找到提供该 CID 的本地对等机,并从中获取数据。
当您使用 ipfs daemon
启动 ipfs 节点时,初始输出告诉您节点正在监听哪些本地网络接口(interface)和端口,因此
Swarm listening on /ip4/127.0.0.1/tcp/4003/ws/ipfs/QmTBoDWXviw7eRKeDGbp3wU2PxAw1epPxax6mp8uY6CEEW
Swarm listening on /ip4/127.0.0.1/tcp/4002/ipfs/QmTBoDWXviw7eRKeDGbp3wU2PxAw1epPxax6mp8uY6CEEW
Swarm listening on /ip4/10.19.77.89/tcp/4002/ipfs/QmTBoDWXviw7eRKeDGbp3wU2PxAw1epPxax6mp8uY6CEEW
...意味着您的本地 ipfs 节点正在监听 ipv4 地址 127.0.0.1
和 10.19.77.89
.它不会告诉你有多少同龄人。要了解您有多少对等点,请运行 ipfs swarm peers
$ ipfs swarm peers
/ip4/1.64.206.172/tcp/42707/ipfs/QmUDGjCUDePrxWbpohHLuW8Hy1uGKXi4tJXaN6z7FuNszb
/ip4/100.24.159.221/tcp/46757/ipfs/QmQjGfZq3MvgykH5oXeQaZvU6TGMCD7xtRtUXz1sK4u8nG
/ip4/101.200.58.57/tcp/4001/ipfs/QmRXcRwhbjtgE2E3hF4rRhM3xaGRrjfieUE5iXGCAwrZ9d
...
...为了找到您所连接的对等点的数量,您可以将输出通过管道传输到 wc -l
$ ipfs swarm peers | wc -l
755
...并回答您的基本问题 由于语言的差异,js-ipfs 仅比 go-ipfs 慢。它们都是同一规范的实现,并且它们都使用相似的算法实现。如果您想从 JS 使用 go-ipfs,出于任何原因,您也可以通过运行 go-ipfs 守护进程并使用 js-ipfs-http-client
通过 HTTP API 与其通信来实现。与 js-ipfs
具有相同 API 的库
关于javascript - 与 IPFS 相比,JS-IPFS 的性能较低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51328764/
这是我的测试 tokenURI.json 文件,其中包含我传递给 token 合约的 imageURI。setTokenURI(): { "attributes": [ { "t
给定一个相当大的文件夹,该文件夹已被推送到网络,并在本地删除。如何在不重新下载整个文件夹的情况下将文件添加到该文件夹? 最佳答案 您只能在使用ipfs get重新下载后使用ipns来执行此操作,如
IPFS cli/http api 有一个 ipfs pin ls列出固定哈希的命令。但是,这只适用于查询本地节点。有没有办法对远程节点运行相同的命令,例如,类似 $ ipfs pin ls 其作用
我一直在尝试实现和理解 IPFS 的工作,但有一些不清楚的地方。 我尝试过的事情: 在我的系统上实现 IPFS 并在其上存储文件。即使我从系统中删除文件并关闭 ipfs 守护进程,我仍然可以通过 IP
我想使用 (js-ipfs-http-client) 模块将目录上传到浏览器上的 ipfs。 我发现了这个老问题。 https://github.com/ipfs/js-ipfs/issues/277
我有一个调用 _getFile 函数的输入字段 获取文件 _getFile(event) { this.loading = true; const file = event.target.f
根据https://docs.ipfs.io/guides/concepts/pinning/ , 运行命令 ipfs add hello.txt显然“固定”了文件“hello.txt”,但是为什么我
假设我像这样向 IPFS 添加数据: $ echo Hello World | ipfs add 这会给我 QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u
我们正在 Electron 上构建一个桌面应用程序,以在 IPFS 上共享媒体。我们想要激励人们,他们通过 IPFS 添加或固定,将数据提供给其他用户,实际上是在“播种”数据。我们希望以编程方式和定期
我正在尝试创建一个与 IPFS 兼容的 mutihash,但它不匹配。我在这里问是因为我还没有找到一个从散列到最终结果的例子。 echo -n multihash > multihash.txt ip
为了测试,我希望能够在一台机器上运行多个 IPFS 节点。 这是场景: 我正在 IPFS 核心库之上构建小型服务,遵循 Making your own IPFS service指导。当我尝试将客户端和
我通过 ipfs add 添加了一堆文件.如何一次取消固定和删除所有这些? 最佳答案 取消固定所有添加的内容: ipfs pin ls --type recursive | cut -d' ' -f1
我有一个关于 IPFS 内容的新手问题。我可以请求带有哈希地址的内容。是不是哈希地址返回的内容总是加密的?或者返回的内容可以是加密的,也可以是不加密的,如果加密,则需要私钥才能解码和查看内容。 最佳答
如何完全卸载 IPFS 并从头开始重新启动所有内容并获得新的对等 ID?我试图删除 go-ipfs 文件夹,但仍然出现错误:ipfs 配置文件已经存在!当我执行 ipfs init 时。 最佳答案 数
IPFS中有两个概念,其中的联系我不是很清楚:IPFS pin和IPFS MFS。 据我了解,ipfs pin允许您将内容保留在您的节点上,保护它不被垃圾收集器自动删除。在这种情况下,如果我使用 ip
我们希望允许用户根据他们维护的 IPFS key 名称从 IPNS 指针恢复他们的数据库。但是,由于 IPNS name/resolve 和 name/publish 只有两个端点,因此似乎无法在不重
当在 node.js 应用程序中使用以下代码以编程方式启动 js-ipfs 节点时,它会启动 swarm,允许添加文件并查询它们。 // code from the docs: https://git
初始化 ipfs 节点时,ipfs 似乎也会生成 RSA key 对: $ jsipfs init initializing ipfs node at /Users/pascalprecht/.j
初始化 ipfs 节点时,ipfs 似乎也会生成 RSA key 对: $ jsipfs init initializing ipfs node at /Users/pascalprecht/.j
我正在使用 js-ipfs 服务器端在 IPFS 上“上传”文件,但它的效率似乎不如命令行 ipfs daemon 和 ipfs add someFile. 服务器端,我实例化了一个 Ipfs 对象,
我是一名优秀的程序员,十分优秀!