我刚刚上传了一个包含5个图片的文件夹到IPFS (使用客户端应用程序,所以这是一个非常简单的拖放操作)。
因此,我是创建和发布这个文件夹的人,这是否意味着我是唯一一个允许对其进行进一步修改的人--比如从其中添加或删除更多的图像?或者有谁能在IPFS上也这么做呢?
如果可以的话,是否有办法防止这种情况发生?
=======================================
最新问题:
我的具体用例与更新ERC721令牌-的元数据有关,已经被创建好了。
例如,想象一种游戏,其中某些物体--比如魔法剑--在一定的使用量或其拥有者完成特定任务后获得了特殊的力量。因此,我们希望通过编辑它的元数据并将更新后的元数据文件重新提交到Blockchain,来更新它的属性。
例如,如果我们的游戏有100把剑,并且我们最初将一个包含所有100个json文件(每个剑一个)的文件夹上传到IPFS,那么我确信If仍然允许您通过它们特定的人类可读的名称(而不仅仅是通过散列)访问散列文件夹中的特定文件。因此,如果我们的剑恰好是刀剑#76,而且我们对JSON文件的命名约定是这样的:“sword000.json”
,那么刀剑#76的JSON元数据文件将有一个路径,如:http://ipfs.infura.io/QmY2xxxxxxxxxxxxxxxxxxxxxx/sword076.json。
如果我们编辑“sword076.json”文件并将其拖回主JSON文件夹中,显然会导致该文件夹的Hash/CID值发生变化。但是,只要我们能够更新我们的Solidity契约的“tokenURI”方法,从这个新更新的散列/CID文件夹名中查找和服务我们的“.json”文件,我们仍然可以使用它们的常规英文名称来引用其中的各个文件。这意味着我们可以走了。
这是否是一个很好的方案是我们绝对可以讨论的,但我首先想回到我最初的问题/关注,那就是我想确保我们是唯一能够更新我们文件夹内容的人,而且没有其他人有权这样做。
这有意义吗?
发布于 2021-04-08 18:26:44
IPFS是不可变的,这意味着当您将目录与文件一起添加时,目录将根据目录的内容获得唯一的CID。所以在某种意义上,没有人能修改它,甚至你也不能,因为它是不变的。我相信,只要有更多关于IPFS工作的背景,就可以解决这一困惑。
当您向IPFS添加内容时,每个文件都会被散列,并给出一个CID。目录也是如此,但是它们的CID更容易被理解为目录内容的总和。因此,如果目录中的任何文件被更新、添加或删除,该目录将获得一个新的CID。
理解这一点,如果其他人以完全相同的方式添加了完全相同的内容,他们最终将得到完全相同的CID!这样,如果两个人添加了相同的CID,而第三个人请求该文件(或目录),那么两个节点将能够提供数据,因为我们知道它完全相同。如果您只是共享您的CID,而另一个节点将其固定在一起,则同样的情况也是如此,这两个节点都将拥有相同的数据,因此,如果有人请求,这两个节点都可以为其提供服务。
所以你的本地拷贝,任何人都不能编辑。从某种意义上说,如果您依赖于IPFS作为您的数据地址,甚至不是由您!这就是为什么IPFS通常被称为“不可变”的原因,因为您通过IPFS请求的任何数据都是相同的。如果您更改了任何数据,您将得到一个新的CID。
如果您阅读了所有这些,并想“如果我想要可变的数据呢?”,我建议您查看IPNS,可能是ipfs同步,如果您正在寻找一个工具为您自动更新IPNS。
https://stackoverflow.com/questions/67006583
复制相似问题