Consolidación de saldo de cuenta programada

Al utilizar la función de pagos confidenciales, debe programar regularmente la consolidación del saldo de la cuenta.

Para mantener los saldos de cuenta precisos en toda la red, Token Admin o Org Admin utiliza el punto final de la API de REST scheduleTransactions en Oracle Blockchain Platform para ejecutar los métodos consolidateRunningBalanceInTransactions y processSendersAndReceivers periódicamente. Para obtener más información, consulte Programación de transacciones para su ejecución.

consolidateRunningBalanceInTransactions

En el modo confidencial, el saldo corriente de las cuentas de remitente y receptor no se almacena en un registro de transacción; en su lugar, el saldo corriente se calcula periódicamente y, a continuación, se actualizan los registros de transacción. Cuando se ejecuta la API consolidateRunningBalanceInTransactions, se identifican todas las transacciones (públicas y privadas) en las que no se ha procesado un saldo en ejecución y se calculan y guardan los saldos en ejecución de las cuentas de remitente y receptor. Utilice el punto final de API scheduleTransactions en Oracle Blockchain Platform, como se muestra a continuación, para programar la ejecución periódica de la API consolidateRunningBalanceInTransactions.

Punto Final
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
Cuerpo De Solicitud
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 el modo confidencial, las transferencias entre organizaciones implican dos recopilaciones de datos privados. En lugar de modificar el par clave/valor de cuenta, para los débitos se crea un objeto de remitente y para los créditos se crea un objeto de receptor. El saldo se coloca en el objeto del remitente. El importe acreditado se coloca en el objeto del receptor, que se asigna al destinatario. Una vez finalizada la operación de débito, el objeto de remitente ya no se utiliza y se puede suprimir. Del mismo modo, después de que el saldo se mueva del objeto de receptor a la cuenta del destinatario, el objeto de receptor se puede suprimir. processSendersAndReceivers identifica todos los objetos de remitente que se han procesado y los suprime. También identifica todos los objetos del receptor que contienen un saldo, mueve el saldo al par clave/valor de cuenta del destinatario correspondiente y, a continuación, suprime el objeto del receptor. Utilice el punto final de API scheduleTransactions en Oracle Blockchain Platform, como se muestra a continuación, para programar la ejecución periódica de la API processSendersAndReceivers.

Punto Final
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
Cuerpo De Solicitud
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
}'