スケジュール勘定科目残高連結

機密支払機能を使用する場合は、勘定科目残高連結を定期的にスケジュールする必要があります。

アカウント残高をネットワーク全体で正確に保つために、Token AdminまたはOrg Adminは、Oracle Blockchain PlatformscheduleTransactions REST APIエンドポイントを使用して、consolidateRunningBalanceInTransactionsおよびprocessSendersAndReceiversメソッドを定期的に実行します。詳細は、「実行するトランザクションのスケジュール」を参照してください。

consolidateRunningBalanceInTransactions

機密モードでは、送り側勘定と受け側勘定の残高はトランザクション・レコードに格納されず、かわりに残高が定期的に計算されてから、トランザクション・レコードが更新されます。consolidateRunningBalanceInTransactions APIが実行されると、残高が処理されていないすべてのトランザクション(公開と非公開の両方)が識別され、送信者および受け側勘定科目の残高が計算されて保存されます。次に示すように、Oracle Blockchain PlatformscheduleTransactions APIエンドポイントを使用して、consolidateRunningBalanceInTransactions APIを定期的に実行するようにスケジュールします。

エンド・ポイント
/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 PlatformscheduleTransactions APIエンドポイントを使用して、processSendersAndReceivers APIを定期的に実行するようにスケジュールします。

エンド・ポイント
/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
}'