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