Kontensaldenkonsolidierung planen

Wenn Sie das Feature "Vertrauliche Zahlungen" verwenden, müssen Sie die Kontensaldenkonsolidierung regelmäßig planen.

Um die Kontostände im gesamten Netzwerk korrekt zu halten, verwendet eine Token Admin oder Org Admin den REST-API-Endpunkt scheduleTransactions in Oracle Blockchain Platform, um die Methoden consolidateRunningBalanceInTransactions und processSendersAndReceivers regelmäßig auszuführen. Weitere Informationen finden Sie unter Auszuführende Transaktion planen.

consolidateRunningBalanceInTransactions

Im vertraulichen Modus wird der laufende Saldo von Absender- und Empfängerkonten nicht in einem Transaktionsdatensatz gespeichert. Stattdessen wird der laufende Saldo regelmäßig berechnet, und die Transaktionsdatensätze werden aktualisiert. Wenn die API consolidateRunningBalanceInTransactions ausgeführt wird, werden alle Transaktionen (öffentlich und privat) identifiziert, bei denen kein laufender Saldo verarbeitet wurde, und die laufenden Salden der Absender- und Empfängerkonten werden berechnet und gespeichert. Verwenden Sie den API-Endpunkt scheduleTransactions in Oracle Blockchain Platform wie unten gezeigt, um die regelmäßige Ausführung der API consolidateRunningBalanceInTransactions zu planen.

Endpunkt
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
Anforderungsbody
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

Im vertraulichen Modus umfassen Übertragungen zwischen Organisationen zwei private Datensammlungen. Anstatt das Kontotasten/Wert-Paar zu ändern, wird für Lastschriften ein Absenderobjekt erstellt und für Gutschriften ein Empfängerobjekt erstellt. Der Saldo wird im Absenderobjekt platziert. Der gutgeschriebene Betrag wird im Empfängerobjekt platziert, das dem Empfänger zugewiesen ist. Wenn der Lastschriftvorgang abgeschlossen ist, wird das Absenderobjekt nicht mehr verwendet und kann gelöscht werden. Ebenso kann das Empfängerobjekt gelöscht werden, nachdem der Saldo vom Empfängerobjekt auf das Konto des Empfängers verschoben wurde. Die processSendersAndReceivers identifiziert alle verarbeiteten Absenderobjekte und löscht sie. Er identifiziert auch alle Empfängerobjekte, die einen Saldo enthalten, verschiebt den Saldo in das Kontoschlüssel/Wert-Paar des entsprechenden Empfängers und löscht dann das Empfängerobjekt. Verwenden Sie den API-Endpunkt scheduleTransactions in Oracle Blockchain Platform wie unten gezeigt, um die regelmäßige Ausführung der API processSendersAndReceivers zu planen.

Endpunkt
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
Anforderungsbody
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
}'