Blockchain IPF和编辑权限

Blockchain IPF和编辑权限,blockchain,ethereum,solidity,ipfs,Blockchain,Ethereum,Solidity,Ipfs,我刚刚将一个包含5幅图像的文件夹上传到IPFS(使用Mac桌面IPFS客户端应用程序,所以这是一个非常简单的拖放操作。) 既然我是创建并发布此文件夹的人,这是否意味着我是唯一一个被允许对其进行进一步修改的人,比如从中添加或删除更多图像?或者IPFS上的任何人也可以这样做吗 如果可以,有没有办法防止这种情况发生 ======================================= 更新问题: 我的特定用例与更新ERC721令牌的元数据有关-在它们已经造币之后 例如,想象一个游戏,其中某些

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

既然我是创建并发布此文件夹的人,这是否意味着我是唯一一个被允许对其进行进一步修改的人,比如从中添加或删除更多图像?或者IPFS上的任何人也可以这样做吗

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

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

更新问题:

我的特定用例与更新ERC721令牌的元数据有关-在它们已经造币之后

例如,想象一个游戏,其中某些物体——比如说一把神奇的剑——在经过一定量的使用或主人完成某些任务后获得特殊能力。因此,我们希望通过编辑这把剑的元数据并将更新后的元数据文件重新提交到区块链来更新它的属性

例如,如果我们的游戏有100把剑,并且我们最初向IPFS上传了一个包含所有100个json文件的文件夹(每把剑一个),那么我很确定IPFS仍然允许您通过特定的人类可读名称(而不仅仅是通过其散列)访问散列文件夹中的特定文件 因此,如果我们的剑恰好是剑76,我们对JSON文件的命名约定是这样的格式:
“sword000.JSON”
,那么剑76的JSON元数据文件将具有如下路径:

如果我们随后编辑“sword076.json”文件并将其拖放回主json文件夹,显然会导致该文件夹的Hash/CID值发生更改。但是,只要我们能够更新Solidity合同的“tokenURI”方法以查找和服务我们的“.json”新更新的HASH/CID文件夹名中的文件,我们仍然可以通过它们的常规英文名称来引用其中的各个文件。这意味着我们可以开始了

我们可以肯定地讨论这是否是一个好的方案,但我首先想回到我最初的问题/关注点,即我想确保我们是唯一可以更新文件夹内容的人,并且没有其他人有权这样做


这有意义吗?

IPFS是不可变的,这意味着当您将目录与文件一起添加时,目录将根据目录的内容获得唯一的CID。因此,从某种意义上说,没有人可以修改它,即使是您也不能,因为它是不可变的。我相信,通过了解IPFS的工作原理,可以解决这种混淆

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

理解了这一点,如果其他人以完全相同的方式添加了完全相同的内容,他们最终会得到完全相同的CID!如果两个人添加了相同的CID,并且第三方请求了该文件(或目录),两个节点都可以为数据提供服务,正如我们所知,这是完全相同的。如果您只是共享您的CID,而另一个节点将其固定,则两个节点都将具有相同的数据,因此,如果有人请求,两个节点都可以为其提供服务

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

更多信息可在此处找到:&


如果你读了所有这些,然后想“如果我想要可变数据呢?”,我建议您研究一下,如果您正在寻找一个工具来为您自动更新IPN,我可能会这样做。

@Discoradian感谢您的回答-非常感谢!我应该用不同的措辞回答我的问题,因为我实际上非常熟悉IPFS,添加/删除文件如何更改文件夹哈希、CID等。我试图取消的是什么derstand是——再说一遍,如果“我是唯一一个被允许对我上传到IPFS的文件夹进行进一步修改的人”,或者“IPFS上的任何人也可以这样做吗?”严格来说,这是一个关于权限的问题,而不是实用性或易变性。我更新了我的问题,以给出我想要实现的目标的完整背景-请检查!@Sirab33我已经阅读了你更新的问题。所以你知道当文件更新时,目录CID会发生变化,你会以稳定的方式更新,很好。任务也不会这样ion更可能是“谁可以更新tokenuri方法?”因为任何人都可以下载您的IPFS文件,更改它们,并使用新的CID上载它们,因为IPFS是完全开放的。但是我假设您的tokenuri方法涉及权限,而这确实是指向的内容。因此真正需要解决的问题是“谁可以更新TokenURI?”如果只有你,听起来你已经准备好了。@迪斯科拉丹感谢你再次回答。回答你的问题:“问题不是更像‘谁可以更新TokenURI方法?’”答案是“不。我的问题一直都是这样,其要点是:有人可以更新IPFS上的任何目录吗?“我更新原始问题的原因是为了向您提供进一步的背景信息,即我为什么问原始问题,但我从未改变原始问题。实际上,我在更新后的问题结束时说:“我首先想回到原始问题/关注点。”也许你掩盖了这一点。不管怎样,你现在确实回答了我最初的问题,写下了“IPFS是完全开放的”——这一点我真的很惊讶,如果不是完全疯狂的话。因为如果有人可以上传任何东西到任何现有的IPFS目录中