检索超级完整的世界状态

时间:2017-02-28 23:49:08

标签: blockchain hyperledger hyperledger-fabric

是否有链码填充功能,我可以使用Hyperledger Fabric链码检索世界状态的所有键(可能包括值)?

2 个答案:

答案 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可以是空字符串,这意味着在开始或结束时无限范围查询。将它们保留为空字符串以获取返回的完整键/值集。