计划账户余额合并

使用机密付款功能时,必须定期安排账户余额合并。

为了确保整个网络的账户余额准确,Token AdminOrg Admin 使用 Oracle Blockchain Platform 中的 scheduleTransactions REST API 端点定期运行 consolidateRunningBalanceInTransactionsprocessSendersAndReceivers 方法。有关详细信息,请参阅将事务处理计划为运行

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
}'