Planifier la consolidation du solde du compte
Lorsque vous utilisez la fonction de paiements confidentiels, vous devez planifier régulièrement la consolidation des soldes des comptes.
Pour garantir l'exactitude des soldes des comptes sur l'ensemble du réseau, une instance Token Admin
ou Org Admin
utilise l'adresse d'API REST scheduleTransactions
dans Oracle Blockchain Platform pour exécuter périodiquement les méthodes consolidateRunningBalanceInTransactions
et processSendersAndReceivers
. Pour plus d'informations, voir Planifier l'exécution de la transaction.
consolidateRunningBalanceInTransactions
En mode confidentiel, le solde courant des comptes expéditeur et 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 aucun solde d'exécution n'a été traité sont identifiées et les soldes d'exécution des comptes émetteur et récepteur sont calculés et enregistrés. Utilisez l'adresse d'API scheduleTransactions
dans Oracle Blockchain Platform comme indiqué ci-dessous pour programmer l'exécution périodique de l'API consolidateRunningBalanceInTransactions
.
- Adresse
/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 émetteur est créé et pour les crédits, un objet bénéficiaire est créé. Le solde est placé dans l'objet expéditeur. Le montant crédité est placé dans l'objet bénéficiaire, 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 que le solde passe de l'objet récepteur au 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 récepteur qui contiennent un solde, déplace le solde vers la paire clé/valeur de compte du destinataire correspondant, puis supprime l'objet récepteur. Utilisez l'adresse d'API scheduleTransactions
dans Oracle Blockchain Platform comme indiqué ci-dessous pour programmer l'exécution périodique de l'API processSendersAndReceivers
.
- Adresse
/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 }'