계정 잔액 통합 스케줄링

기밀 지급 기능을 사용하는 경우 계정 잔액 통합을 정기적으로 스케줄링해야 합니다.

네트워크 전체에서 계정 잔액을 정확하게 유지하기 위해 Token Admin 또는 Org AdminOracle Blockchain PlatformscheduleTransactions REST API 엔드포인트를 사용하여 주기적으로 consolidateRunningBalanceInTransactionsprocessSendersAndReceivers 메소드를 실행합니다. 자세한 내용은 실행할 트랜잭션 스케줄링을 참조하십시오.

consolidateRunningBalanceInTransactions

기밀 모드에서는 발신자 및 수령인 계정의 누계가 트랜잭션 레코드에 저장되지 않습니다. 대신 누계가 주기적으로 계산되고 트랜잭션 레코드가 업데이트됩니다. consolidateRunningBalanceInTransactions API가 실행되면 누계가 처리되지 않은 모든 트랜잭션(공용 및 비공개)이 식별되고 발신자 및 수령인 계정의 누계가 계산 및 저장됩니다. 아래와 같이 Oracle Blockchain PlatformscheduleTransactions API 엔드포인트를 사용하여 consolidateRunningBalanceInTransactions API가 주기적으로 실행되도록 스케줄링합니다.

Endpoint
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
요청 본문
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

기밀 모드에서는 조직 간 전송에는 두 개의 개인 데이터 수집이 포함됩니다. 계정 키/값 쌍을 수정하는 대신 차변에 대해 발신자 객체가 생성되고 대변에 대해 수신자 객체가 생성됩니다. 잔액이 발신자 객체에 배치됩니다. 대변 기입된 금액은 수신자에게 지정된 수신자 객체에 지정됩니다. 차변 작업이 완료되면 발신자 객체가 더 이상 사용되지 않으며 삭제할 수 있습니다. 마찬가지로 잔액이 수신자 객체에서 수신자 계정으로 이동한 후 수신자 객체를 삭제할 수 있습니다. processSendersAndReceivers는 처리된 모든 발신자 객체를 식별하고 삭제합니다. 또한 잔액이 포함된 모든 수신자 객체를 식별하고, 잔액을 해당 수신자의 계정 키/값 쌍으로 이동한 다음 수신자 객체를 삭제합니다. 아래와 같이 Oracle Blockchain PlatformscheduleTransactions API 엔드포인트를 사용하여 processSendersAndReceivers API가 주기적으로 실행되도록 스케줄링합니다.

Endpoint
/restproxy/api/v2/channels/{channelName}/scheduleTransactions
요청 본문
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
}'