gpt4 book ai didi

blockchain - delState 在 Fabric 中是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 22:28:50 25 4
gpt4 key购买 nike

我是 IBM Hyperledger Fabric 的新手。

在尝试查看文件时,我看到有几个状态
getState、putState、delState 等

https://github.com/hyperledger/fabric/blob/master/core/chaincode/shim/chaincode.go

我想知道分类帐是否是“不可变的和链接的”,我们如何“删除”状态?

鉴于它是一个由每笔或多笔交易链接的分类账,难道不是不可能删除状态或至少破坏哈希链吗?

谢谢!

最佳答案

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

关于不同的哈希,如果存在非确定性链码,则块哈希可能会发生分歧。应避免创建非确定性的链码。这是一个 documentation topic讨论非确定性链码。

删除 key 后可以检索 key 的历史记录。有一个 GetHistoryForKey() API 可以检索历史记录,其响应的一部分是一个 IsDeleted 标志,用于指示 key 是否已被删除。可以创建 key ,删除 key ,然后重新创建 key ; GetHistoryForKey() API 将跟踪这种情况。

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

有一个example说明了 GetHistoryForKey() API 的使用。请参阅 getHistoryForMarble 函数。

关于blockchain - delState 在 Fabric 中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43623517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com