계정 잔액 통합 스케줄링
기밀 지급 기능을 사용하는 경우 계정 잔액 통합을 정기적으로 스케줄링해야 합니다.
네트워크 전체에서 계정 잔액을 정확하게 유지하기 위해 Token Admin
또는 Org Admin
는 Oracle Blockchain Platform의 scheduleTransactions
REST API 엔드포인트를 사용하여 주기적으로 consolidateRunningBalanceInTransactions
및 processSendersAndReceivers
메소드를 실행합니다. 자세한 내용은 실행할 트랜잭션 스케줄링을 참조하십시오.
consolidateRunningBalanceInTransactions
기밀 모드에서는 발신자 및 수령인 계정의 누계가 트랜잭션 레코드에 저장되지 않습니다. 대신 누계가 주기적으로 계산되고 트랜잭션 레코드가 업데이트됩니다. consolidateRunningBalanceInTransactions
API가 실행되면 누계가 처리되지 않은 모든 트랜잭션(공용 및 비공개)이 식별되고 발신자 및 수령인 계정의 누계가 계산 및 저장됩니다. 아래와 같이 Oracle Blockchain Platform의 scheduleTransactions
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 Platform의 scheduleTransactions
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 }'