トランザクションの送信
post
/restproxy/api/v2/channels/{channelName}/transactions
このエンドポイントは、トランザクションの送信に使用されます。非同期トランザクションの場合は、新しい「非同期トランザクションの送信」エンドポイントを使用することをお薦めします。
リクエスト
サポートされるメディア・タイプ
- application/json
パス・パラメータ
- channelName(必須): string
チャネルの名前
トランザクションを呼び出すリクエスト
ルート・スキーマ: schema
型:
ソースの表示
object
- args(必須): array args
チェーンコードに対する引数
- chaincode(必須): string
呼び出すチェーンコードのID
- endorsers: array endorsers
チェーンコードのエンドーサ
- isInit: boolean
デフォルト値:
false
初期化リクエストかどうかを指定します - nonce: string
トランザクションのnonce
- role: string
使用するHyperledger Fabric登録の名前
- sameOrgEndorser: boolean
デフォルト値:
false
この組織のエンドーサのみを選択するかどうかを指定します。trueに設定すると、endorsersフィールドを指定できません。 - sync: boolean
デフォルト値:
false
チェーンコードを同期的に呼び出すかどうか - timeout: integer(int64)
デフォルト値:
18000
チェーンコードの呼出しのタイムアウト(ミリ秒) - transientMap: object transientMap
使用可能なその他のプロパティ: additionalPropertiesチェーンコードのtransientMap
- txid: string
トランザクションのID
レスポンス
サポートされるメディア・タイプ
- application/json
201レスポンス
同期トランザクションの操作の成功
ルート・スキーマ: schema
型:
ソースの表示
object
- error: string
デフォルト値:
- result: object result
- returnCode(必須): string
許容値:
[ "Success", "Failure" ]
ネストしたスキーマ: result
型:
ソースの表示
object
- encode(必須): string
許容値:
[ "UTF-8", "JSON", "base64" ]
- message: string
- payload(必須):
- sourceURL: string
トランザクション・ステータスをRESTプロキシに報告したピアのURLを返します
- txid(必須): string
202レスポンス
非同期トランザクションの操作の成功
ルート・スキーマ: schema
型:
ソースの表示
object
- error: string
デフォルト値:
- result: object result
- returnCode(必須): string
許容値:
[ "Success", "Failure" ]
400レスポンス
不正なリクエスト
401レスポンス
未認可
403レスポンス
禁止されています
404レスポンス
無効なパラメータ
500レスポンス
サービス使用不可
例
このエンドポイントは、新しいトランザクションIDおよびnonceを提供する非同期トランザクションを呼び出すために使用されます。
ノート:
このエンドポイントを起動する前に、新規トランザクションIDおよびnonceの取得エンドポイントを使用して、新しい非同期トランザクションIDおよびnonceを生成する必要があります。次の例は、cURLを使用してRESTリソースに対するPOSTリクエストを発行し、非同期トランザクションを呼び出す方法を示しています。
curl -v -u <username>:<password> -X POST \ "https://<rest proxy of your blockchain instance>/api/v2/channels/<channel_name>/transactions" \ -H "accept: application/json" \ -H "Content-Type: application/json" \ --data @<JSON file with the request parameters>
たとえば、
curl -v -u <username>:<password> -X POST \ "https://myvm.oracle.com:10001/restproxy/api/v2/channels/default/transactions" \ -H "accept: application/json" \ -H "Content-Type: application/json" --data @file.json
残高転送サンプル・チェーンコードを初期化する場合、
file.json
の内容は次のようになります:{ "chaincode": "obcs-example02", "args": [ "init","a","100","b","200" ], "isInit": true, "timeout": 18000, "sync": true }
残高転送サンプル・チェーンコードを呼び出す場合、
file.json
の内容は次のようになります:{ "txid": "bb248ef3f948cb107417c3f66ea144910644dee8086a370d44687fd9fe262233", "nonce": "b508e30891a738162a35ebd1b7f768f8e8520111e4201dd9", "chaincode": "obcs-example02", "args": [ "invoke","a","b","200" ], "timeout": 18000, "sync": false }
説明:
txid
とnonce
は、新規トランザクションIDおよびnonceの取得エンドポイントを使用して生成される値です。chaincode
は、残高転送サンプル・チェーンコードのチェーンコードIDです。args
は、呼び出すチェーンコード関数とそのパラメータを指定します。残高転送サンプル・チェーンコードでは、次の引数を使用できます:- このチェーンコードには明示的な初期化が必要なため、
init
。isInit
パラメータをtrueに設定する必要もあります。 - チェーンコードを呼び出す場合は
invoke
。
- このチェーンコードには明示的な初期化が必要なため、
isInit
は、チェーンコードを初期化することを指定します。チェーンコードで初期化が必要な場合は、他のトランザクションを起動する前にこれを行う必要があります。timeout
は、トランザクションがタイムアウトするまでの最大ミリ秒を指定します。sync
がfalse値の場合は、これが同期トランザクションでないことを示します。
ノート:
ブロックチェーン・インスタンスのRESTプロキシ値は、インスタンス・コンソールの「ノード」タブから確認できます。レスポンス本文の例
JSON形式のレスポンス本文のコンテンツの例を次に示します。
{ "returnCode": "Success", "error": "", "result": { "txid": "bb248ef3f948cb107417c3f66ea144910644dee8086a370d44687fd9fe262233", "payload": null, "encode": "" } }
この場合、呼び出されたチェーンコード関数はチェーンコード問合せではなく、値を返さなかったため、payload
に返される値はnull
です。