Sir*_*b33 5 blockchain ethereum solidity ipfs
我刚刚将一个包含 5 张图像的文件夹上传到 IPFS(使用 Mac 桌面 IPFS 客户端应用程序,因此这是一个非常简单的拖放操作。)
\n因此,由于 I\xe2\x80\x99m 是创建并发布此文件夹的人,这是否意味着 I\xe2\x80\x99m 是唯一允许对其进行进一步修改的文件夹 - 例如添加或者从中删除更多图像?或者 IPFS 上的任何人也可以这样做吗?
\n如果可以的话,有没有办法防止这种情况发生?
\n=========================================
\n更新的问题:
\n我的具体用例与更新 ERC721 代币的元数据有关 -在 它们\xe2\x80\x99 已经被铸造之后。
\n想象一下,例如,在游戏中,某些物体(例如一把神奇的剑)在使用一定量后或在其所有者完成某些任务后获得特殊能力。因此,我们\xe2\x80\x99d想要通过编辑\xe2\x80\x99s元数据并将此更新后的元数据文件重新提交到区块链来更新此剑\xe2\x80\x99s属性。
\n例如,如果我们的游戏有 100 把剑,并且我们最初上传到 IPFS 的文件夹包含所有 100 个 json 文件(每把剑一个),那么我\xe2\x80\x99m 非常确定 IPFS 仍然让 \xe2\x80\x99s 你访问哈希文件夹中的特定文件通过其特定的人类可读名称(而不仅仅是通过其哈希值。)\n因此,如果我们的剑恰好是剑 #76,并且我们的 JSON 文件的命名约定采用以下格式\xe2\x80\x9csword000.json\xe2\x80\x9d
:那么 Sword#76\xe2\x80\x99s JSON 元数据文件的路径如下:\n http://ipfs.infura.io/QmY2xxxxxxxxxxxxxxxxxxxxx/sword076.json
如果我们随后编辑 \xe2\x80\x9csword076.json\xe2\x80\x9c 文件并将其拖放到我们的主 JSON 文件夹中,则显然会导致该文件夹\xe2\x80\x99s 哈希/CID 值改变。但是,只要我们\xe2\x80\x99能够更新我们的 Solidity Contract\xe2\x80\x99s \xe2\x80\x9ctokenURI\xe2\x80\x9d 方法来查找并服务我们的 \xe2\x80\x9c.json \xe2\x80\x9d 文件来自这个新更新的 HASH/CID 文件夹名称,我们仍然可以通过常规英文名称来引用其中的各个文件。这意味着我们\xe2\x80\x99d 可以开始了。
\n这是否是一个好的方案,我们绝对可以讨论,但我首先想回到我最初的问题/担忧,那就是我想确保我们是唯一可以更新内容的人我们的文件夹 - 并且没有其他人有权这样做。
\n那有意义吗?
\nIPFS 是不可变的,这意味着当您将目录与文件一起添加时,该目录会根据目录的内容获得唯一的 CID。所以从某种意义上说,没有人可以修改它,甚至你也不能,因为它是不可变的。我相信通过更多了解 IPFS 工作原理的背景知识可以解决这种困惑。
当您将内容添加到 IPFS 时,每个文件都会进行哈希处理,并给出一个 CID。目录也是如此,但是它们的CID可以更容易地理解为目录内容的总和。因此,如果目录中的任何文件被更新、添加或删除,该目录就会获得一个新的 CID。
了解这一点后,如果其他人以完全相同的方式添加完全相同的内容,他们最终会得到完全相同的 CID!这样,如果两个人添加相同的 CID,并且第三个人请求该文件(或目录),则两个节点都将能够提供数据,因为我们知道它是完全相同的。如果您只是共享您的 CID 并且另一个节点固定它,情况也是如此,两个节点都将具有相同的数据,因此如果有人请求它,两个节点都将能够提供服务。
因此,任何人都无法编辑您的本地副本。从某种意义上说,如果您依赖 IPFS CID 作为数据地址,甚至不是您自己!这就是 IPFS 通常被称为“不可变”的原因,因为您通过 IPFS CID 请求的任何数据将始终相同。如果您更改任何数据,您将获得新的 CID。
如果您阅读了所有这些内容并想“如果我想要可变数据怎么办?”,如果您正在寻找自动更新 IPNS 的工具,我建议您研究IPNS,并可能考虑ipfs-sync 。
归档时间: |
|
查看次数: |
2634 次 |
最近记录: |