Programar Consolidação do Saldo da Conta
Ao usar o recurso de pagamentos confidenciais, você deve programar regularmente a consolidação do saldo da conta.
Para manter os saldos das contas precisos na rede, um Token Admin
ou Org Admin
usa o ponto final da API REST scheduleTransactions
no Oracle Blockchain Platform para executar os métodos consolidateRunningBalanceInTransactions
e processSendersAndReceivers
periodicamente. Para obter mais informações, consulte Programar Transação para Execução.
consolidateRunningBalanceInTransactions
No modo confidencial, o saldo atual das contas do remetente e do recebedor não é armazenado em um registro de transação; em vez disso, o saldo atual é calculado periodicamente e, em seguida, os registros de transação são atualizados. Quando a API consolidateRunningBalanceInTransactions
é executada, todas as transações (públicas e privadas) em que um saldo em execução não foi processado são identificadas e os saldos em execução das contas do remetente e do recebedor são calculados e salvos. Use o ponto final da API scheduleTransactions
no Oracle Blockchain Platform conforme mostrado abaixo para programar a API consolidateRunningBalanceInTransactions
para ser executada periodicamente.
- Ponto Final
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
- Corpo da Solicitação
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
No modo confidencial, as transferências entre organizações envolvem duas coletas de dados privadas. Em vez de modificar o par de chave/valor da conta, para débitos, um objeto remetente é criado e, para créditos, um objeto recebedor é criado. O saldo é colocado no objeto do remetente. O valor creditado é colocado no objeto recebedor, que é atribuído ao destinatário. Quando a operação de débito é concluída, o objeto do remetente não está mais em uso e pode ser excluído. Da mesma forma, depois que o saldo passa do objeto do recebedor para a conta do destinatário, o objeto do recebedor pode ser excluído. O processSendersAndReceivers
identifica todos os objetos do remetente que foram processados e os exclui. Ele também identifica todos os objetos do destinatário que contêm um saldo, move o saldo para o par de chave/valor da conta do destinatário correspondente e, em seguida, exclui o objeto do destinatário. Use o ponto final da API scheduleTransactions
no Oracle Blockchain Platform conforme mostrado abaixo para programar a API processSendersAndReceivers
para ser executada periodicamente.
- Ponto Final
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
- Corpo da Solicitação
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 }'