Hyperledger 删除资产是否真的删除了任何东西?

Does Hyperledger remove asset actually remove anything?

我正在尝试 Hyperledger Composer,我只是想知道当我们删除 资产时会发生什么。 可能从区块链中删除/删除任何东西吗?

或者我们简单地标记一个资产为已移除,但实际上该资产的所有交易记录仍然存在在区块链中?

当我删除资产时,我仍然看到块数在增加。所以我有一种感觉,也许资产没有 removed (如 deleted 从存在中)但只是标记当前状态已被删除。

我曾尝试创建具有相同 ID 的资产,但它确实有效。我可以根据需要多次删除和重新创建,但块数总是增加。

按照上述,重启整个 Hyperledger 网络(例如从网络中的所有计算机重新加载 Docker 图像)唯一正确的方法 删除区块链?

提前致谢。

听起来你是对的。不,区块链上的数据永远不会被删除。删除只是表示某些数据被删除的另一个事务,以便世界状态数据库(具有未删除信息的数据库)可以删除该数据。

由于区块链是 Merkle Tree in the background (or maybe a Hashgraph...),它遵循这些规则并且是不可变的。除非分类帐和交易从机器中删除,例如重新启动网络并从对等点删除所有信息,否则数据将始终存在。这基本上是对用于持有分类帐的网络结构的每台机器的擦除。对于比特币,每个人都是如此,对于可能只有几台机器并且可能合理发生的许可区块链。

然而,这只是理论上的,并且随着区块链的不同实现而变得有点复杂。听起来您正在使用 Hyperledger Fabric,所以让我们以此为例。如果您正在动态升级网络的业务网络定义,并且您的资产定义已更改并且不支持注册表中的现有资产,那么它们 实际上 是否已删除?我不确定,但我知道它们不会出现在查询中,这可能实际上是相同的。同样,如果你设置了ACL规则或者使用加密,那么一个标记的资产也可能会被删除,因为会有很多障碍(参见安全和访问的docs控制)供随机参与者查看该数据。因此,根据您的数据的敏感程度,这可能并不重要。