Kontensaldenkonsolidierung planen
Wenn Sie das Feature "Vertrauliche Transaktionen" verwenden, müssen Sie die Kontensaldenkonsolidierung regelmäßig planen.
Um die Kontensalden im gesamten Netzwerk korrekt zu halten, verwendet eine Token Admin oder Org Admin den REST-API-Endpunkt scheduleTransactions, 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 wie im folgenden Beispiel gezeigt, um die regelmäßige Ausführung der API consolidateRunningBalanceInTransactions zu planen. Im Beispiel wird die Standardintervallzeit von zwei Minuten verwendet.
- 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. Außerdem werden alle Empfängerobjekte identifiziert, die einen Saldo enthalten, der Saldo wird in das Kontoschlüssel/Wert-Paar des entsprechenden Empfängers verschoben und anschließend das Empfängerobjekt gelöscht. Verwenden Sie den API-Endpunkt scheduleTransactions wie im folgenden Beispiel gezeigt, um die regelmäßige Ausführung der API processSendersAndReceivers zu planen. Im Beispiel wird die Standardintervallzeit von zwei Minuten verwendet.
- 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 }'