トランザクションの送信

post

/restproxy/api/v2/channels/{channelName}/transactions

このエンドポイントは、トランザクションの送信に使用されます。非同期トランザクションの場合は、新しい「非同期トランザクションの送信」エンドポイントを使用することをお薦めします。

リクエスト

サポートされるメディア・タイプ
パス・パラメータ
本文()
トランザクションを呼び出すリクエスト
ルート・スキーマ: schema
型: object
ソースの表示
ネストしたスキーマ: args
型: array
チェーンコードに対する引数
ソースの表示
ネストしたスキーマ: endorsers
型: array
チェーンコードのエンドーサ
ソースの表示
ネストしたスキーマ: transientMap
型: object
使用可能なその他のプロパティ
ソースの表示
チェーンコードのtransientMap
先頭に戻る

レスポンス

サポートされるメディア・タイプ

201レスポンス

同期トランザクションの操作の成功
本文()
ルート・スキーマ: schema
型: object
ソースの表示
ネストしたスキーマ: result
型: object
ソースの表示

202レスポンス

非同期トランザクションの操作の成功
本文()
ルート・スキーマ: schema
型: object
ソースの表示
ネストしたスキーマ: result
型: object
ソースの表示

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
}
説明:
  • txidnonceは、新規トランザクションIDおよびnonceの取得エンドポイントを使用して生成される値です。
  • chaincodeは、残高転送サンプル・チェーンコードのチェーンコードIDです。
  • argsは、呼び出すチェーンコード関数とそのパラメータを指定します。残高転送サンプル・チェーンコードでは、次の引数を使用できます:
    • このチェーンコードには明示的な初期化が必要なため、initisInitパラメータをtrueに設定する必要もあります。
    • チェーンコードを呼び出す場合はinvoke
  • isInitは、チェーンコードを初期化することを指定します。チェーンコードで初期化が必要な場合は、他のトランザクションを起動する前にこれを行う必要があります。
  • timeoutは、トランザクションがタイムアウトするまでの最大ミリ秒を指定します。
  • syncがfalse値の場合は、これが同期トランザクションでないことを示します。

ノート:

ブロックチェーン・インスタンスのRESTプロキシ値は、インスタンス・コンソールの「ノード」タブから確認できます。

レスポンス本文の例

JSON形式のレスポンス本文のコンテンツの例を次に示します。

{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "bb248ef3f948cb107417c3f66ea144910644dee8086a370d44687fd9fe262233",
        "payload": null,
        "encode": ""
    }
}

この場合、呼び出されたチェーンコード関数はチェーンコード問合せではなく、値を返さなかったため、payloadに返される値はnullです。

先頭に戻る