是否有链码填充功能,我可以使用Hyperledger Fabric链码检索世界状态的所有键(可能包括值)?
答案 0 :(得分:1)
可以使用stub.GetStateByRange()
函数迭代特定链码的链码状态中的所有键。
例如:
keysIter, err := stub.GetStateByRange(startKey, endKey)
if err != nil {
return shim.Error(fmt.Sprintf("keys operation failed. Error accessing state: %s", err))
}
defer keysIter.Close()
var keys []string
for keysIter.HasNext() {
key, _, iterErr := keysIter.Next()
if iterErr != nil {
return shim.Error(fmt.Sprintf("keys operation failed. Error accessing state: %s", err))
}
keys = append(keys, key)
}
查看Hyperledger结构库中的完整chaincode
答案 1 :(得分:1)
在chaincode API GetStateByRange(startKey,endKey string)中,startKey和endKey可以是空字符串,这意味着在开始或结束时无限范围查询。将它们保留为空字符串以获取返回的完整键/值集。