Chaincode API 操作
Hyperledger Fabric Go 言語バージョンのチェーンコードには、ユーザーチェーンコードが分散台帳と直接対話するための豊富な API インターフェースが用意されています。コード実装の詳細については、「API コード実装」を参照してください。詳細については、公式ドキュメントをご参照ください。
機能の面では、ChaincodeStubInterface API は次のタイプに分類できます。
補助関数クラス
実行する操作。 | 移行の説明 |
GetArgs() [][]byte | チェーンコード呼び出しリクエストの呼び出しパラメーターを取得します。 |
GetStringArgs() []string | チェーンコード呼び出しリクエストの呼び出しパラメーターを取得します。 |
GetFunctionAndParameters() (string, []string) | チェーンコード呼び出しの関数名と呼び出しパラメーターを取得します。デフォルトでは、最初のパラメーターは関数名です。 |
GetArgsSlice() ([]byte, error) | チェーンコード呼び出しリクエストの呼び出しパラメーターを取得します。 |
InvokeChaincode(chaincodeName string, args [][]byte, channel string) pb.Response | 他のチェーンコードの Invoke メソッドを呼び出します。 |
CreateCompositeKey(objectType string, attributes []string) (string, error) | 属性を組み合わせて複合キーを形成します。 |
SplitCompositeKey(compositeKey string) (string, []string, error) | 複合キーを一連の属性に分割します。 |
SetEvent(name string, payload []byte) error | 送信されるイベントを設定します。 |
トランザクション情報の取得
実行する操作。 | 移行の説明 |
GetTxID() string | トランザクションのトランザクション ID を取得します。 |
GetChannelID() string | 現在のチャネル名を取得します。 |
GetCreator() ([]byte, error) | トランザクション作成者の情報を取得します。 |
GetTransient() (map[string][]byte, error) | トランザクションに関する一時情報を取得します。これは主にプログラムレベルでアプリケーションによって使用され、台帳データには書き込まれません。 |
GetBinding() ([]byte, error) | トランザクションのバインディング情報を返します。これは主にアプリケーションデータと一時情報間のリンクを強制するために使用されます。 |
GetDecorations() map[string][]byte | トランザクションに関する追加情報を取得します。 |
GetSignedProposal() (*pb.SignedProposal, error) | トランザクション提案のすべての関連データを取得します。 |
GetTxTimestamp() (*timestamp.Timestamp, error) | トランザクションのタイムスタンプを取得します。 |
台帳データ操作
実行する操作。 | 移行の説明 |
GetState(key string) ([]byte, error) | 指定されたキーの値を取得します。 |
PutState(key string, value []byte) error | 台帳にキーと値のペアを追加または更新します。 |
DelState(key string) error | 台帳からキーと値のペアを削除します。 |
SetStateValidationParameter(key string, ep []byte) error | 特定のキー値のエンドースメントポリシーを設定します。 |
GetStateValidationParameter(key string) ([]byte, error) | 特定のキー値のエンドースメントポリシーを取得します。 |
GetStateByRange(startKey, endKey string) (StateQueryIteratorInterface, error) | 指定された範囲内のキー値をクエリします。 |
GetStateByRangeWithPagination(startKey, endKey string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error) | ページごとに指定された範囲内のキー値をクエリします。 |
GetStateByPartialCompositeKey(objectType string, keys []string) (StateQueryIteratorInterface, error) | ローカル複合キーに一致するすべてのキー値をクエリします。 |
GetStateByPartialCompositeKeyWithPagination(objectType string, keys []string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error) | ページごとにローカル複合キーのすべての一致するキー値をクエリします。 |
GetQueryResult(query string) (StateQueryIteratorInterface, error) | リッチクエリを使用して状態データベースをクエリします。状態データベースはリッチクエリをサポートする必要があります。 |
GetQueryResultWithPagination(query string, pageSize int32, bookmark string) (StateQueryIteratorInterface, *pb.QueryResponseMetadata, error) | リッチクエリモードを使用して、ページごとに状態データベースをクエリします。状態データベースはリッチクエリ機能をサポートできる必要があります。 |
GetHistoryForKey(key string) (HistoryQueryIteratorInterface, error) | 対応するキーのすべての履歴値を返します。 |
GetPrivateData(collection, key string) ([]byte, error) | 指定されたプライベートデータセット内のキーの値を取得します。 |
GetPrivateDataHash(collection, key string) ([]byte, error) | 指定されたプライベートデータセット内のキーの値のハッシュを取得します。 |
PutPrivateData(collection string, key string, value []byte) error | 指定されたプライベートデータセット内のキーの値を設定します。 |
DelPrivateData(collection, key string) error | 指定されたプライベートデータセットから指定されたキーを削除します。 |
SetPrivateDataValidationParameter(collection, key string, ep []byte) error | プライベートデータセット内の指定されたキーのエンドースメントポリシーを設定します。 |
GetPrivateDataValidationParameter(collection, key string) ([]byte, error) | プライベートデータセット内の指定されたキーのエンドースメントポリシーを取得します。 |
GetPrivateDataByRange(collection, startKey, endKey string) (StateQueryIteratorInterface, error) | 指定されたプライベートデータセット内の特定のキー範囲のキー値を取得します。 |
GetPrivateDataByPartialCompositeKey(collection, objectType string, keys []string) (StateQueryIteratorInterface, error) | 指定されたプライベートデータセット内のローカル複合キーに一致するキー値を取得します。 |
GetPrivateDataQueryResult(collection, query string) (StateQueryIteratorInterface, error) | リッチクエリを使用してプライベートデータセットをクエリします。状態データベースはリッチクエリをサポートできる必要があります。 |