微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IPFS 和编辑权限

如何解决IPFS 和编辑权限

我刚刚上传一个包含 5 张图片文件夹到 IPFS(使用 Mac 桌面 IPFS 客户端应用程序,所以这是一个非常简单的拖放操作。)

因此,我是创建和发布此文件夹的人,这是否意味着我是唯一可以对其进行进一步修改的人 - 例如添加删除更多图像?或者 IPFS 上的任何人都可以这样做吗?

如果可以,有没有办法防止这种情况发生?

========================================

更新的问题:

我的具体用例与更新 ERC721 令牌的元数据有关 - 之后它们已经被铸造。

想象一个游戏,其中某些物品(比如一把魔法剑)在使用一定数量后或在其所有者完成某些任务后获得特殊能力。所以我们想通过编辑它的元数据并将这个更新的元数据文件重新提交到区块链来更新这把剑的属性

例如,如果我们的游戏有 100 把剑,并且我们最初将一个包含所有 100 个 json 文件(每把剑一个)的文件上传到 IPFS,那么我很确定 IPFS 仍然允许您访问散列中的特定文件-文件夹按其特定的人类可读名称(而不仅仅是按其哈希值)。 因此,如果我们的剑恰好是剑 #76,并且我们的 JSON 文件的命名约定是这种格式:“sword000.json”,那么剑#76 的 JSON 元数据文件将具有如下路径: http://ipfs.infura.io/QmY2xxxxxxxxxxxxxxxxxxxxxx/sword076.json

如果我们随后编辑“sword076.json”文件并将其拖放到我们的主 JSON 文件夹中,显然会导致该文件夹的 Hash/CID 值发生变化。但是,只要我们能够更新 solidity Contract 的“tokenURI”方法以从这个新更新的 HASH/CID 文件名称中查找和提供我们的“.json”文件,我们仍然可以通过它们来引用其中的单个文件常规英文名。这意味着我们很乐意去。

这是否是一个好的采用方案是我们绝对可以讨论的问题,但我首先想回到我最初的问题/担忧,即我想确保我们是唯一可以更新我们文件夹的内容 - 并且没有其他人有权这样做。

有意义吗?

解决方法

IPFS 是不可变的,这意味着当您将目录与文件一起添加时,该目录会根据目录的内容获得唯一的 CID。所以从某种意义上说,没有人可以修改它,甚至你也不能,因为它是不可变的。我相信可以通过更多有关 IPFS 工作原理的背景知识来解决这种混淆。

当你向 IPFS 添加东西时,每个文件都会被散列,并被赋予一个 CID。目录也是如此,但它们的 CID 可以更容易地理解为目录内容的总和。因此,如果目录中的任何文件被更新、添加或删除,该目录将获得一个新的 CID。

明白这一点,如果其他人以完全相同的方式添加完全相同的内容,他们最终会得到完全相同的 CID!有了这个,如果两个人添加了相同的 CID,并且第三个人请求了该文件(或目录),那么两个节点都能够提供数据,因为我们知道它完全相同。如果您只是简单地共享您的 CID 并且另一个节点将其固定,则同样如此,两个节点将拥有相同的数据,因此如果有人请求它,两个节点都能够为其提供服务。

因此您的本地副本无法被任何人编辑。从某种意义上说,如果您依赖 IPFS CID 作为您的数据地址,那么您甚至不是!这就是 IPFS 通常被称为“不可变”的原因,因为您通过 IPFS CID 请求的任何数据将始终相同。如果您更改任何数据,您将获得一个新的 CID。

更多信息可以在这里找到:Content Addressing & Immutability

如果您阅读了所有内容并认为“如果我想要可变数据怎么办?”,如果您正在寻找自动更新的工具,我建议您查看 IPNS 和可能的 ipfs-sync为您提供 IPNS。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。