하이퍼레저 페이지 단위 블록 조회(How to retrieve data more than totalQueryLimit)
- 블록 데이터 조회가 한 번의 요청에 10만건으로 제한이 되는 제약이 있는 상황에서 이를 페이징처리하여 조회할 수 있는 방법을 다룹니다.(It deals with how block data queries can be paged and queried in situations where there is a limit of 100,000 requests per time request.)
2. 블록체인에 저장하는 원장(Ledger) 제약조건
imgage : https://hyperledger-fabric.readthedocs.io/en/latest/ledger/ledger.html#example-ledger-basic-asset-transfer
• 블록 생성 트랜잭션은 최대 4MB이하
• 블록 조회 한계 : 100,000 건 (totalQueryLimit)
3. Pagination
• 블록 조회 한계 및 적절한 Request/Response 성능을 고려하여
적정한 Pagination 처리가 필요
• 이를 위해 Hyperledger Fabric API에서 페이징 처리하여
리턴하는 기능을 제공하고 있음
11. 체인코드 버전업 및 설치 (3/3)
[Org1의 non anchor peer에서 체인코드 설치]
export CORE_PEER_ADDRESS=localhost:8051
peer lifecycle chaincode install basic_2.tar.gz
[Org2의 non anchor peer에서 체인코드 설치]
export CORE_PEER_ADDRESS=localhost:10051
peer lifecycle chaincode install basic_2.tar.gz
12. 테스트 (1/4)
startKey : 페이지 시작 키
end : 페이지 종료 키
pageSize : 한 페이지에 호출할 자료 건수
bookmark : (값을 부여할 경우) 이 키 부터 자료 조회
startKey가 있을 경우, bookmark가 우선
조회 조건 없을 경우
totalQueryLimit 까지 조회
13. 테스트 (2/4)
시작키 ~ 종료키까지 300건 단위 조회
- 300건 미만일 경우 bookmark 정보 리턴 없음
14. 테스트 (3/4)
시작키 ~ 종료키까지 3건 단위 조회
- bookmark 정보 리턴 되며,
해당 정보로 다음 페이지 조회 가능