ipfs - IPFS CID 重现性
问题描述
这可能是非常基本的问题,但我在搜索中找不到。假设文件内容甚至不会改变一个位,即使 IPFS CID 被不同的用户添加/固定,它是否永远不会改变?
在可预见的未来,这个假设会成立吗?我知道这取决于哈希算法,所以只要知道使用了什么哈希算法(SHA-256),IPFS CID 就可以重现可预见的功能,对吧?或者是否还需要存储其他信息?
解决方案
在可预见的未来,这个假设会成立吗?我知道这取决于哈希算法,所以只要知道使用了什么哈希算法(SHA-256),IPFS CID 就可以重现可预见的功能,对吧?或者是否还需要存储其他信息?
ipfs add <file>
不,假设它总是给出相同的 CID是不安全的,因为除了散列函数本身之外还有许多参数,二进制文件可以随时间自由更改。在较高级别上ipfs add
,将文件/目录转换为表示该数据的称为UnixFSipfs add
的树结构,并且由于允许随时间更改的默认方式,这意味着 CID 输出ipfs add example.txt
可以更改
许多 UnixFS 参数是可配置的(并在 中描述ipfs add --help
)并且包括诸如原始叶子和块大小之类的选项。这意味着,如果您真的想确保ipfs add example.txt
结果是相同的 CID,则可以传递一组标志来确保是这种情况。
请注意,一般来说,我会尽量避免将相同的数据多次导入 IPFS(无论如何这都是一种资源浪费),尽管在某些情况下,这可能是让您的项目退出的最简单或最好的事情地面。
推荐阅读
- python - GridSearch 拟合方法错误:TypeError [调整 RNN 模型的参数]
- function - 查询可变数量的模式
- r - 回归模型、置信区间和数据是如何绘制的?
- c# - 无法将 System.Data.DataRowView 类型的对象转换为 System.Windows.Controls.ListViewItem 类型
- python-3.x - 在 Windows 10 上安装 pycrypto 时出现问题
- javascript - React-table 中的表单
- laravel - 我们可以在 Laravel 5.6 中使用 Laravel 5.7 电子邮件验证吗?
- javascript - vue 数据在异步函数中改变
- python - 使用 os.walk 在目录中移动并执行脚本
- c - 如何识别字符串中第一个单词后的空格?