2017-02-28 2 views

答えて

2

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) 
    } 

chaincodeのAPI GetStateByRange(startKey、endKey列)でHyperledger布レポ

+2

私はdocを見ています:https://godoc.org/github.com/hyperledger/fabric/core/chaincode/shim#ChaincodeStub.GetStateByRange。レキシカルオーダーとは、 "a"から "ZZZZZZZZZZZZZZZZZZ"(キーの最大長に応じて)からすべてのキーを取得する必要があるということですか? –

+1

@FooL yup thats right – cjcroix

0

で完全chaincodeを参照、startKeyとendKeyは無制限を意味し、空の文字列とすることができます開始時または終了時の範囲問合せ。返されるキー/値の完全なセットを取得するには、両方を空の文字列のままにします。

関連する問題