Blockchain delState如何在织物中工作?

Blockchain delState如何在织物中工作?,blockchain,hyperledger-fabric,Blockchain,Hyperledger Fabric,我对IBM Hyperledger Fabric还不熟悉 在翻阅文件时,我发现有两个州 getState、putState、delState等 我想知道,如果账本是“不可变和链接的”,我们如何“删除”状态 假设它是一个由一个或多个事务链接的分类账,那么不可能删除状态或至少破坏哈希链吗 谢谢大家! 有一个存储键及其值的状态数据库。这与构成区块链的区块序列不同。可以使用DelState函数从状态数据库中删除键及其关联值。然而,这并不意味着区块链上的区块会发生变化。密钥和值的删除将作为交易存储在区块

我对IBM Hyperledger Fabric还不熟悉

在翻阅文件时,我发现有两个州 getState、putState、delState等

我想知道,如果账本是“不可变和链接的”,我们如何“删除”状态

假设它是一个由一个或多个事务链接的分类账,那么不可能删除状态或至少破坏哈希链吗


谢谢大家!

有一个存储键及其值的状态数据库。这与构成区块链的区块序列不同。可以使用DelState函数从状态数据库中删除键及其关联值。然而,这并不意味着区块链上的区块会发生变化。密钥和值的删除将作为交易存储在区块链上,就像先前的添加和任何修改作为交易存储在区块链上一样

对于不同的散列,如果存在不确定的链码,则块散列可能会发散。应避免创建不确定的链码。下面是一个讨论非确定性链码的示例

删除密钥后,可以检索密钥的历史记录。有一个GetHistoryForKey()API用于检索历史记录,它的部分响应是一个IsDeleted标志,指示是否删除了密钥。可以创建密钥,删除密钥,然后再次创建密钥;GetHistoryForKey()API将跟踪这种情况

状态数据库存储当前状态,因此键及其值将从状态数据库中删除。GetHistoryForKey()API检查链历史记录而不是状态数据库以查找以前的键值


有一个示例演示了GetHistoryForKey()API的使用。请参阅GetHistoryFormalBle函数。

请阅读此内容以改进您的问题。抱歉。。。固定的!非常感谢。我还查了代码。如果我读对了,这是否意味着即使我使用delState删除键,以前的值仍然保留?我对原始回答进行了编辑,回答了这个问题。