检索超级账本完整的世界状态

retrieving hyperledger complete world state

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

可以使用 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 fabric 存储库

中查看完整的 chaincode

在链码APIGetStateByRange(startKey, endKey string)中,startKey和endKey可以为空字符串,这意味着在开始或结束时进行无限范围查询。将它们都保留为空字符串以获得完整的 key/values 集合。