勘定残高連結のスケジュール
機密トランザクション機能を使用する場合は、勘定科目残高の連結を定期的にスケジュールする必要があります。
Token AdminまたはOrg Adminは、ネットワーク全体で勘定科目残高を正確に保つために、Oracle Blockchain PlatformのscheduleTransactions REST APIエンドポイントを使用して、consolidateRunningBalanceInTransactionsおよびprocessSendersAndReceiversメソッドを定期的に実行します。詳細は、「実行するトランザクションのスケジュール」を参照してください。
consolidateRunningBalanceInTransactions
機密モードでは、送り側勘定と受け側勘定の残高はトランザクション・レコードに格納されず、実行残高は定期的に計算されてからトランザクション・レコードが更新されます。consolidateRunningBalanceInTransactions APIを実行すると、実行中の残高が処理されていないすべてのトランザクション(パブリックとプライベートの両方)が識別され、送信者および受信者のアカウントの実行残高が計算および保存されます。次の例に示すように、Oracle Blockchain PlatformのscheduleTransactions APIエンドポイントを使用して、consolidateRunningBalanceInTransactions APIを定期的に実行するようにスケジュールします。この例では、デフォルトの間隔時間である2分を使用します。
- エンド・ポイント
/restproxy/api/v2/channels/{channelName}/scheduleTransactions- リクエスト本文
curl --location '<rest_server_url:port>/restproxy/api/v2/channels/{channelName}/scheduleTransactions' \ --header 'Content-Type: application/json' \ --header 'Confidential-Transaction: true' \ --header 'Authorization: ••••••' \ --data '{ "chaincode": "{ChaincodeName}", "args": [ "consolidateRunningBalanceInTransactions" ], "timeout": 6000, "sync": true, "intervalType": { "time": 2 }, "expiry": "120M", "sameOrgEndorser": true }'
processSendersAndReceivers
機密モードでは、組織間の転送には2つのプライベート・データ収集が含まれます。アカウント・キー/値ペアを変更するかわりに、借方について送信者オブジェクトが作成され、貸方について受信者オブジェクトが作成されます。バランスは送信者オブジェクトに配置されます。クレジット金額は受取人オブジェクトに配置され、受取人に割り当てられます。デビット操作が完了すると、送信者オブジェクトは使用されなくなり、削除できます。同様に、残高が受け側オブジェクトから受取人のアカウントに移動した後、受け側オブジェクトを削除できます。processSendersAndReceiversは、処理されたすべてのセンダー・オブジェクトを識別し、それらを削除します。また、残高を含むすべての受け側オブジェクトを識別し、残高を対応する受取人の勘定科目キー/値ペアに移動してから、受け側オブジェクトを削除します。次の例に示すように、Oracle Blockchain PlatformのscheduleTransactions APIエンドポイントを使用して、processSendersAndReceivers APIを定期的に実行するようにスケジュールします。この例では、デフォルトの間隔時間である2分を使用します。
- エンド・ポイント
/restproxy/api/v2/channels/{channelName}/scheduleTransactions- リクエスト本文
curl --location '<rest_server_url:port>/restproxy/api/v2/channels/<channel_name>/scheduleTransactions'\ --header 'Content-Type: application/json' \ --header 'Confidential-Transaction: true' \ --header 'Authorization: ••••••' \ --data '{ "chaincode": "{ChaincodeName}", "args": [ "processSendersAndReceivers" ], "timeout": 6000, "sync": true, "intervalType": { "time": 2 }, "expiry": "120M", "sameOrgEndorser": true }'