alw*_*ous 2 blockchain hyperledger-fabric
我是IBM Hyperledger Fabric的新手。
在尝试查看文档时,我看到有几个状态getState,putState,delState等。
https://github.com/hyperledger/fabric/blob/master/core/chaincode/shim/chaincode.go
我想知道分类帐是否“固定不变”,我们如何“删除”状态?
假设这是一个由每个事务或每个事务链接的分类帐,不是不可能删除状态或至少破坏哈希链吗?
谢谢!
有一个状态数据库,用于存储键及其值。这与构成区块链的区块顺序不同。可以使用DelState函数从状态数据库中删除键及其关联的值。但是,这并不意味着区块链上的区块发生了变化。密钥和值的删除将作为交易存储在区块链上,就像之前添加的内容和任何修改一样作为交易存储在区块链上。
关于不同的哈希,如果存在不确定的链码,则块哈希可能会发散。应避免创建不确定的链码。这是一个讨论非确定性链码的文档主题。
删除密钥后,可以检索密钥的历史记录。有一个GetHistoryForKey()API可以检索历史记录,其响应的一部分是IsDeleted标志,该标志指示密钥是否已删除。可以创建一个密钥,删除该密钥,然后再次创建该密钥。GetHistoryForKey()API会跟踪这种情况。
状态数据库存储当前状态,因此将从状态数据库中删除键及其值。GetHistoryForKey()API会查看链历史记录,而不是状态数据库,以查找先前的键值。
有一个示例说明了GetHistoryForKey()API的用法。请参见getHistoryForMarble函数。
归档时间: |
|
查看次数: |
1177 次 |
最近记录: |