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