问题标签 [ipfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2006 浏览

ipfs - 从 js-ipfs 中的哈希获取文件

我正在运行下面的脚本并使用 ipfs 节点上传并使用其哈希获取文件,但 ipfs cat 函数仅从哈希返回文件的路径,而不是内容。

有没有人有 js-ipfs 的经验并且可以帮助我?

0 投票
3 回答
817 浏览

ipfs - IPFS 共享更新文件的效率

2019 年 10 月 30 日更新:

=> 请参阅以下讨论以了解对 IPFS 的功能请求:git-diff 功能:提高 IPFS 共享更新文件的效率。减少文件/块重复

=> 请参阅以下讨论以获取更多信息。IPFS 是否提供块级文件复制功能?


例如userA添加了一个大小为 1 GB 的文件。IPFS add file.txtuserB通过 IPFS 将该文件放入他的存储中后来userA发布了一个错误,只更改了文件中的一个字符,并希望与userB共享这个更新版本。

因此,用户 A再次通过 将相同的文件添加到 IPFS 中ipfs add file,而用户B 必须获取该 1 GB 的文件,而不是更新该单个字符。有没有更好的方法来解决这个问题,只有更新的版本应该由userB提取,就像我们 git 的工作方式一样git pull

Git 有更好的方法,请参阅(https://stackoverflow.com/a/8198276/2402577)。IPFS 是否像 Git 一样使用增量压缩进行存储( https://gist.github.com/matthewmccullough/2695758 )?或类似的方法?

进一步的调查:

我做了一个小实验。首先,我在 IPFS 中添加了 1GB 文件。后来,我更新了文件上的一小行,它已经通过 IPFS 共享。我观察到userA再次推送完整的 1GB 文件,而不是只推送包含更改数据的块。在我看来,这是非常昂贵和耗时的。我已经共享了新更新文件的哈希值,并再次通过用户 B 上的 IPFS 下载完整文件,不是仅下载包含更改字符的块。

  • 步骤1:

用户A


用户B


  • 第2步:

用户A

用户B

[Q]此时,通过 IPFS 共享更新文件而不重新共享更新文件的整个版本以及 IPFS 仅共享文件的更新块的最佳解决方案是什么?


在此之上; 每当我这样做时,都在同一个节点上ipfs cat <hash>保持下载相同的哈希值。


分析:

两者(更新文件和原始文件)在 repo 大小上都有相同的增加:

首先我创建 100 MB 文件(file.txt)


这里的对象数量增加了 4. 更改了 repo 大小 (37983)

比我echo 'a' >> file.txt 那时 ipfs add file.txt

在这里,我观察到对象数量增加了 4 个,因此它添加了完整的文件,更改了 repo 大小(38823)

0 投票
1 回答
2116 浏览

javascript - 使用 ipfs-api 时出现错误“TypeError:无法读取未定义的属性 'indexOf'”

我正在使用 ipfs - api 进行开发,我遇到了以下错误,将图像文件添加到 ipfs 节点无法正常工作。查看错误的详细信息,似乎协议在 request.js 中的 if (protocol.indexOf ('https') === 0) { 中被视为未定义。

这是错误描述

这是我写的代码

0 投票
1 回答
152 浏览

hyperledger-fabric - 集成时什么最适合 Hyperledger 结构?

我目前正试图弄清楚几件事

1) 哪些区块链数据库可以与超级账本结构集成——(例如 IPDB、Bigchain db 或 couchDb)

2)哪些分布式文件系统可以与超级账本结构(如IPFS、StorJ、Swarm)集成。

有人可以添加您的观点,如果有更好的请分享。

0 投票
1 回答
183 浏览

blockchain - 对 NEM 区块链进行编程并存储 ipfs 哈希

我正在考虑将 IPFS 内容哈希集成到 NEM/Mijin 区块链中。如果我在马赛克的消息部分附加 ipfs 哈希,这是否会实际添加到区块链中,或者我是否需要将哈希添加为马赛克名称的一部分,但是如何建议这样做,因为马赛克名称没有不接受大写字母?

当我查看我的个人资料帐户交易时,会显示马赛克,但不会显示消息。是否可以恢复交易中包含的消息?

即是否有恢复块交易公司消息的命令?S nem2-cli account transasactions --profile 不恢复消息详细信息?

只是:收件人、马赛克、签名者、截止日期和哈希

我正在使用 nem2-cli 和 MIJIN_TEST 网络

如果你可以给我一些建议。,或传递消息谁可以。我将不胜感激。

0 投票
2 回答
1559 浏览

linux - 保持 IPFS 守护进程存活的最佳方法

我正在使用 IPFS 构建一个用于分散存储的应用程序,但现在我只有一个节点。

我从tmux运行ipfs 守护程序,但守护程序不会长时间保持活动状态,我不知道为什么。无论如何,如果守护进程死了,我需要做一些事情来保持它的生命。

0 投票
2 回答
516 浏览

ethereum - 数据只允许以太坊 ERC721 代币持有者通过 IPFS 访问

我已经在 IPFS 上存储了声音文件,并且 IPFS 哈希连接到 ERC721 令牌。我想让“只有令牌持有者可以访问数据”。但不幸的是,区块链和 ipfs 上的数据是公开的,所以每个人都可以访问。

有没有办法让只有令牌持有者才能访问 ipfs 数据?

我的解决方案不起作用... - 将加密数据存储在 IPFS 上并将密钥存储在 ERC721 令牌上。(如果将密钥设置为公开,每个人都可以看到它,如果将密钥设置为私有,包括令牌持有者在内的任何人都无法看到它)

如果您有任何建议或解决方案,请指导我!

这是我的产品图片。我想让这个健全的令牌数据只对令牌所有者可用。 https://medium.com/coinmonks/converting-sound-file-to-erc721-token-with-digital-art-chain-29b1890b6d4d

0 投票
0 回答
417 浏览

python - 有没有办法在 heroku 上运行 IPFS 守护进程?

我在 Heroku 上有一个需要与 IPFS 交互的 Django 应用程序。有没有人找到运行 IPFS 守护进程的方法?为了使 python IPFS API 能够从 IPFS 读取和写入文件,它是必需的。

谷歌在 Heroku 上搜索 IPFS 是没有用的。

也许有一种明显的方法可以在我的 Django 应用程序旁边启动 IPFS 守护进程,但我不知道如何设置它,也就是说,如果它完全可能的话。

0 投票
0 回答
140 浏览

ethereum - 使用 IPFS 评估 DApp(智能合约)存储概念

我希望你能帮助我改进或验证我的存储概念。我很高兴每一个建议。由于这是我的第一个 DApp,我可能不会考虑所有可能的选项来解决我的问题。

了解背景:我计划实现一个 DApp(基于以太坊),它可以比较价格并搜索某个区域的产品最便宜的价格。产品本身是同质的,只有价格很重要。为了简单起见:它是一个复杂的产品,供应商需要几天才能确认订单,需要几个月才能交付产品。产品的价格波动很大,因此供应商可能存在作弊动机,这意味着他们一开始提供低价,几天后确认订单时要求更高的价格。

我想使用区块链的原因是对客户的透明度和可追溯性。所以客户应该能够很容易地验证,DApp 建议的价格确实是他所在地区最便宜的价格。此外,客户需要证明供应商确实在某个时间提供了某个价格,并且不能在稍后的订单确认中要求更高的价格。

所以与区块链的交互需要传递两件事:证明结果确实是他所在地区最便宜的价格 b. 供应商本身此时提供了建议的价格。

到目前为止,这是我的想法和解决方案:

最简单、最透明的方式是一份巨大的智能合约,其中存储了所有数据(价格、地区、供应商)。供应商将通过交易更新智能合约中的价格。

一个。客户可以简单地检查智能合约属性来验证 DApp 的最低价格建议。

湾。客户可以通过合约的交易历史证明价格的来源。

由于区块链上的数据存储非常昂贵,因此与该合约的交互并不是一个真正的选择。由于数据量很大(我已经尝试过),价格更新非常昂贵。相反,每个供应商在区块链上的存储应该更小,但仍然具有相同的透明度。我曾考虑使用 IPFS 作为数据存储并仅存储哈希,但 IPFS 本身并不能真正证明任何事情,因为它是可变的。所以重要的数据需要在区块链上,至少就我的理解而言,也许你有更好的主意?

所以这是我请求你帮助的最后一个想法。我试图在用例类模型组合中绘制它,我希望这样变得更加清晰。不幸的是你必须下载它,因为我没有足够的声誉

https://imgur.com/oE4cQtv

每个供应商都有自己的合同(供应商)。供应商通过交易更新合同中的价格。每个合同供应商都引用相同的 IPFS 数据存储。数据存储仅包含所有供应商智能合约(地址)的列表。

智能合约 HashStore 仅包含此列表的 IPFS 哈希。

为了获得最低价格,我将在 javascript(类价格搜索)中简单地从智能合约 HashStore 中读取 Hash。然后我将访问 IPFS 上的数据存储并获取所有地址。我不使用存储在 IPFS 上的价格。相反,我遍历地址并每次调用每个智能合约供应商的 GetData 方法。在我收集了所有价格后,我只是选择了最便宜的一个。

一个。客户可以检查 IPFS 上的数据存储以获取所有价格的概览。由于我直接从智能合约中读取价格,因此供应商操纵 IPFS 表没有任何好处。

湾。客户可以通过单独的智能合约轻松检查每个供应商及其交易历史。所以他可以很容易地证明价格变化。

我认为这个解决方案可能有效,但我仍然觉得我错过了一部分。也许 Swarm 提供了一些我不知道的选项?或者我不知道 Solidity 中有一些很酷的功能可以解决这个问题?

谢谢你的帮助!!!

0 投票
0 回答
902 浏览

node.js - 使用加密处理从 React FrontEnd 上传的 IPFS ?

我也是 StackOverFlow 和 IPFS 的新手。我正在开发一个使用 React JS(web)从前端上传文件到IPFS的项目,为此我正在使用IPFS 社区提供的“ipfs-api”模块。现在我想要什么,我想用“AES”加密上传文件,意味着:-

对于上传到 IPFS:- 1. 我从用户 2 那里得到文件。转换为缓冲区并使用加密(模块)对其进行加密 3. 将加密字符串转换为缓冲区以上传 IPFS 4. 获取加密文件的哈希

现在获取原始文件:- 1. 使用 ipfs.cat 方法从 IPFS 获取文件(意味着获取文件的加密数据)

  1. 解密文件(使用相同的加密“aes-128-cbc”)

(以格式为我提供文件的原始或 IDK 数据,如果将该数据记录在

长数据

  1. 所以请让我知道如何处理这些数据,我想我需要保存它,但如何将其保存为 PNG 格式的文件或如何处理它。

我用于上传的代码:-

获取数据的代码:-

所以请帮助我完成这项工作,总的来说,我需要将加密文件保存到 IPFS 并将其哈希保存到数据库,并在解密后使用相同的哈希 (IPFS) 检索文件。