Programmer la consolidation des soldes de compte
Lorsque vous utilisez la fonction de paiements confidentiels, vous devez planifier régulièrement la consolidation des soldes de comptes.
Pour assurer l'exactitude des soldes de compte sur l'ensemble du réseau, Token Admin
ou Org Admin
utilise le point d'extrémité de l'API REST scheduleTransactions
dans Oracle Blockchain Platform pour exécuter périodiquement les méthodes consolidateRunningBalanceInTransactions
et processSendersAndReceivers
. Pour plus d'informations, voir Programmer la transaction à exécuter.
consolidateRunningBalanceInTransactions
En mode confidentiel, le solde courant des comptes d'expéditeur et de destinataire n'est pas stocké dans un enregistrement de transaction; au lieu de cela, le solde courant est calculé périodiquement, puis les enregistrements de transaction sont mis à jour. Lors de l'exécution de l'API consolidateRunningBalanceInTransactions
, toutes les transactions (publiques et privées) pour lesquelles un solde courant n'a pas été traité sont identifiées et les soldes courants des comptes d'expéditeur et de destinataire sont calculés et enregistrés. Utilisez le point d'extrémité de l'API scheduleTransactions
dans Oracle Blockchain Platform comme indiqué ci-dessous pour programmer l'exécution périodique de l'API consolidateRunningBalanceInTransactions
.
- Point d'extrémité
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
- Corps de demande
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
En mode confidentiel, les transferts entre organisations impliquent deux collectes de données privées. Au lieu de modifier la paire clé/valeur de compte, pour les débits, un objet expéditeur est créé et pour les crédits, un objet destinataire est créé. Le solde est placé dans l'objet expéditeur. Le montant crédité est placé dans l'objet destinataire, qui est affecté au destinataire. Une fois l'opération de débit terminée, l'objet expéditeur n'est plus utilisé et peut être supprimé. De même, une fois le solde déplacé de l'objet récepteur vers le compte du destinataire, l'objet récepteur peut être supprimé. processSendersAndReceivers
identifie tous les objets d'expéditeur qui ont été traités et les supprime. Il identifie également tous les objets destinataire qui contiennent un solde, déplace le solde vers la paire clé/valeur de compte du destinataire correspondant, puis supprime l'objet destinataire. Utilisez le point d'extrémité de l'API scheduleTransactions
dans Oracle Blockchain Platform comme indiqué ci-dessous pour programmer l'exécution périodique de l'API processSendersAndReceivers
.
- Point d'extrémité
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
- Corps de demande
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 }'