我正在尝试Hyperledger Composer,我只是想知道当我们移除一个资产时会发生什么。从区块链中移除/删除/任何东西是可能的吗?
或者我们只是简单地将资产标记为已移除,但实际上该资产的所有交易记录仍然存在于区块链中?
当我删除一个资源时,我仍然看到块的数量在增加。所以我有一种感觉,也许资产并没有被移除(就像从存在中删除一样),而只是标记了当前状态被移除。
我曾尝试创建一个具有相同ID的资源,但它仍然有效。我可以删除和重新创建我想要的次数,但块数量总是增加。
接下来,重启整个Hyperledger网络(例如,从网络中的所有计算机重新加载Docker镜像)是删除区块链的唯一真正方法吗?
提前谢谢你。
发布于 2018-06-07 04:50:25
听起来你是对的。不,区块链上的数据永远不会被删除。删除只是另一个事务,说明删除了某些数据,以便世界状态数据库(包含未删除信息的数据库)可以删除该数据。
由于区块链是后台的Merkle Tree (或者可能是Hashgraph…),因此它遵循这些规则并且是不可变的。除非从机器中删除账本和事务,否则数据将始终存在,例如重新启动网络和从对等节点删除所有信息。这基本上就是擦除每一台用于保存账本的网络结构的机器。对于比特币来说,这就是每个人,对于许可的区块链来说,这可能只是几台机器,可能会合理地发生。
然而,这只是理论上的,而且随着区块链的不同实现,它变得有点复杂。听起来您使用的是Hyperledger Fabric,因此让我们以此为例。如果您正在为您的网络动态升级Business Network定义,并且您的资产定义发生了更改,并且不支持注册表中的现有资产,那么它们实际上是删除的吗?我不确定,但我知道它们不会出现在查询中,这实际上可能是相同的。同样,如果您设置ACL规则或使用加密,则标记为的资产也可能被删除,因为随机参与者查看该数据会有许多障碍(请参阅docs on Security and Access control)。因此,根据您的数据的敏感程度,这可能并不重要。
https://stackoverflow.com/questions/49231474
复制相似问题