计划账户余额合并
使用机密付款功能时,必须定期安排账户余额合并。
为了确保整个网络的账户余额准确,Token Admin
或 Org Admin
使用 Oracle Blockchain Platform 中的 scheduleTransactions
REST API 端点定期运行 consolidateRunningBalanceInTransactions
和 processSendersAndReceivers
方法。有关详细信息,请参阅将事务处理计划为运行。
consolidateRunningBalanceInTransactions
在保密模式下,发送方和接收方账户的运行余额不存储在事务处理记录中;相反,将定期计算运行余额,然后更新事务处理记录。运行 consolidateRunningBalanceInTransactions
API 时,将标识未处理运行余额的所有事务处理(公共和专用),并计算和保存发送方和接收方帐户的运行余额。如下所示,使用 Oracle Blockchain Platform 中的 scheduleTransactions
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
在保密模式下,组织之间的传输涉及两个私有数据收集。不修改帐户关键字/值对,而是为借项创建发送者对象并为贷方创建接收者对象。余额将置于发送者对象中。贷记金额放置在分配给接收人的接收者对象中。借记操作完成时,发送方对象不再使用,可以将其删除。同样,在余额从接收者对象移至接收者的帐户后,可以删除接收者对象。processSendersAndReceivers
标识已处理的所有发件人对象并删除它们。它还标识包含余额的所有接收者对象,将余额移至对应接收者的帐户关键字/值对,然后删除接收者对象。如下所示,使用 Oracle Blockchain Platform 中的 scheduleTransactions
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 }'