SlideShare a Scribd company logo
1 of 15
Hyperledger Fabric
How to retrieve data more than totalQueryLimit
블록체인에 저장하는 원장(Ledger) 제약조건
imgage : https://hyperledger-fabric.readthedocs.io/en/latest/ledger/ledger.html#example-ledger-basic-asset-transfer
• 블록 생성 트랜잭션은 최대 4MB이하
• 블록 조회 한계 : 100,000 건 (totalQueryLimit)
Pagination
• 블록 조회 한계 및 적절한 Request/Response 성능을 고려하여
적정한 Pagination 처리가 필요
• 이를 위해 Hyperledger Fabric API에서 페이징 처리하여
리턴하는 기능을 제공하고 있음
Pagination 소스코드
https://github.com/hyperledger/fabric-samples/blob/main/asset-transfer-ledger-queries/chaincode-
go/asset_transfer_ledger_chaincode.go#L345-L356
startKey : 페이지 시작 키
end : 페이지 종료 키
pageSize : 한 페이지에 호출할 자료 건수
bookmark : (값을 부여할 경우) 이 키 부터 자료 조회
startKey가 있을 경우, bookmark가 우선
체인 코드 구현 (1/3)
source code : https://github.com/hyperledger/fabric-samples/blob/main/asset-transfer-ledger-queries/chaincode-go/asset_transfer_ledger_chaincode.go
체인 코드 구현 (2/3)
source code : https://github.com/hyperledger/fabric-samples/blob/main/asset-transfer-ledger-queries/chaincode-go/asset_transfer_ledger_chaincode.go
체인 코드 구현 (3/3)
source code : https://github.com/hyperledger/fabric-samples/blob/main/asset-transfer-ledger-queries/chaincode-go/asset_transfer_ledger_chaincode.go
체인코드 반영
[root@slave1 chaincode]# pwd
/root/fabric-samples/asset-transfer-basic/chaincode-go/chaincode
[root@slave1 chaincode]# ll
total 20
drwxr-xr-x. 2 root root 81 May 17 07:02 mocks
-rw-r--r--. 1 root root 10578 Oct 18 22:26 smartcontract.go
-rw-r--r--. 1 root root 6852 May 17 07:02 smartcontract_test.go
[root@slave1 chaincode]#
체인코드 버전업 및 설치 (1/3)
Org1 서버에서
실행 위치 예시 : /fabric-samples/kopo-network
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.fmd.com/users/Admin@org1.fmd.com/msp
peer lifecycle chaincode package basic_2.tar.gz --path ../asset-transfer-basic/chaincode-go/ --label basic_2.0
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.fmd.com/peers/peer0.org1.fmd.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.fmd.com/users/Admin@org1.fmd.com/msp
export CORE_PEER_ADDRESS=localhost:7051
peer lifecycle chaincode install basic_2.tar.gz
peer lifecycle chaincode queryinstalled
export NEW_CC_PACKAGE_ID=basic_2.0:6284dc812d6ddfa97c424c4ffd6f06e438618ccdcb5c987129ef69270688cd5e
peer lifecycle chaincode approveformyorg -o localhost:8050 --ordererTLSHostnameOverride orderer2.fmd.com --channelID channel1 --name
basic --version 2.0 --package-id $NEW_CC_PACKAGE_ID --sequence 2 --tls --cafile
"${PWD}/organizations/ordererOrganizations/fmd.com/orderers/orderer2.fmd.com/msp/tlscacerts/tlsca.fmd.com-cert.pem"
체인코드 버전업 및 설치 (2/3)
Org2 서버에서
실행 위치 예시 : /fabric-samples/kopo-network
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.fmd.com/users/Admin@org2.fmd.com/msp
peer lifecycle chaincode package basic_2.tar.gz --path ../asset-transfer-basic/chaincode-go/ --label basic_2.0
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.fmd.com/peers/peer0.org2.fmd.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.fmd.com/users/Admin@org2.fmd.com/msp
export CORE_PEER_ADDRESS=localhost:9051
peer lifecycle chaincode install basic_2.tar.gz
export NEW_CC_PACKAGE_ID=basic_2.0:6284dc812d6ddfa97c424c4ffd6f06e438618ccdcb5c987129ef69270688cd5e
peer lifecycle chaincode approveformyorg -o localhost:9050 --ordererTLSHostnameOverride orderer3.fmd.com --channelID channel1 --name
basic --version 2.0 --package-id $NEW_CC_PACKAGE_ID --sequence 2 --tls --cafile
"${PWD}/organizations/ordererOrganizations/fmd.com/orderers/orderer3.fmd.com/msp/tlscacerts/tlsca.fmd.com-cert.pem"
peer lifecycle chaincode checkcommitreadiness --channelID channel1 --name basic --version 2.0 --sequence 2 --tls --cafile
"${PWD}/organizations/ordererOrganizations/fmd.com/orderers/orderer3.fmd.com/msp/tlscacerts/tlsca.fmd.com-cert.pem" --output json
peer lifecycle chaincode commit -o localhost:9050 --ordererTLSHostnameOverride orderer3.fmd.com --channelID channel1 --name basic --
version 2.0 --sequence 2 --tls --cafile
"${PWD}/organizations/ordererOrganizations/fmd.com/orderers/orderer2.fmd.com/msp/tlscacerts/tlsca.fmd.com-cert.pem" --peerAddresses
localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.fmd.com/peers/peer0.org2.fmd.com/tls/ca.crt"
체인코드 버전업 및 설치 (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
테스트 (1/4)
startKey : 페이지 시작 키
end : 페이지 종료 키
pageSize : 한 페이지에 호출할 자료 건수
bookmark : (값을 부여할 경우) 이 키 부터 자료 조회
startKey가 있을 경우, bookmark가 우선
조회 조건 없을 경우
totalQueryLimit 까지 조회
테스트 (2/4)
시작키 ~ 종료키까지 300건 단위 조회
- 300건 미만일 경우 bookmark 정보 리턴 없음
테스트 (3/4)
시작키 ~ 종료키까지 3건 단위 조회
- bookmark 정보 리턴 되며,
해당 정보로 다음 페이지 조회 가능
테스트 (4/4)
bookmark 값으로 조회
- bookmark 키 값 부터 3건 조회

More Related Content

Similar to 하이퍼레저 페이지 단위 블록 조회

파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 SeongHyun Ahn
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1Ji-Woong Choi
 
20201121 코드 삼분지계
20201121 코드 삼분지계20201121 코드 삼분지계
20201121 코드 삼분지계Chiwon Song
 
파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄 파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄 SeongHyun Ahn
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQLI Goo Lee
 
Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)창언 정
 
도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집Daegwon Kim
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig baseINSIGHT FORENSIC
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처Sunggon Song
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee dockerDK Lee
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3Amazon Web Services Korea
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi
 
4. Application - Oozie Fork
4. Application - Oozie Fork4. Application - Oozie Fork
4. Application - Oozie Forkmerry7
 
Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기jongho jeong
 

Similar to 하이퍼레저 페이지 단위 블록 조회 (20)

파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
20201121 코드 삼분지계
20201121 코드 삼분지계20201121 코드 삼분지계
20201121 코드 삼분지계
 
파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄 파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄
 
Html5
Html5 Html5
Html5
 
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
 
OpenStack Swift Debugging
OpenStack Swift DebuggingOpenStack Swift Debugging
OpenStack Swift Debugging
 
Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)
 
도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집도커(Docker) 메트릭스 & 로그 수집
도커(Docker) 메트릭스 & 로그 수집
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig base
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
 
4. Application - Oozie Fork
4. Application - Oozie Fork4. Application - Oozie Fork
4. Application - Oozie Fork
 
One-day-codelab
One-day-codelabOne-day-codelab
One-day-codelab
 
Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기
 

More from wonyong hwang

토큰 증권 개요.pptx
토큰 증권 개요.pptx토큰 증권 개요.pptx
토큰 증권 개요.pptxwonyong hwang
 
Vue.js 기초 실습.pptx
Vue.js 기초 실습.pptxVue.js 기초 실습.pptx
Vue.js 기초 실습.pptxwonyong hwang
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxwonyong hwang
 
k8s practice 2023.pptx
k8s practice 2023.pptxk8s practice 2023.pptx
k8s practice 2023.pptxwonyong hwang
 
HyperLedger Fabric V2.5.pdf
HyperLedger Fabric V2.5.pdfHyperLedger Fabric V2.5.pdf
HyperLedger Fabric V2.5.pdfwonyong hwang
 
Ngrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptxNgrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptxwonyong hwang
 
Nginx Https 적용하기.pptx
Nginx Https 적용하기.pptxNginx Https 적용하기.pptx
Nginx Https 적용하기.pptxwonyong hwang
 
Kafka JDBC Connect Guide(Postgres Sink).pptx
Kafka JDBC Connect Guide(Postgres Sink).pptxKafka JDBC Connect Guide(Postgres Sink).pptx
Kafka JDBC Connect Guide(Postgres Sink).pptxwonyong hwang
 
Nginx Reverse Proxy with Kafka.pptx
Nginx Reverse Proxy with Kafka.pptxNginx Reverse Proxy with Kafka.pptx
Nginx Reverse Proxy with Kafka.pptxwonyong hwang
 
Kafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and GrafanaKafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and Grafanawonyong hwang
 
주가 정보 다루기.pdf
주가 정보 다루기.pdf주가 정보 다루기.pdf
주가 정보 다루기.pdfwonyong hwang
 
App development with quasar (pdf)
App development with quasar (pdf)App development with quasar (pdf)
App development with quasar (pdf)wonyong hwang
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) wonyong hwang
 
Hyperledger composer
Hyperledger composerHyperledger composer
Hyperledger composerwonyong hwang
 
BlockChain implementation by python
BlockChain implementation by pythonBlockChain implementation by python
BlockChain implementation by pythonwonyong hwang
 
Block chain introduction slideshare
Block chain introduction   slideshareBlock chain introduction   slideshare
Block chain introduction slidesharewonyong hwang
 

More from wonyong hwang (19)

토큰 증권 개요.pptx
토큰 증권 개요.pptx토큰 증권 개요.pptx
토큰 증권 개요.pptx
 
Vue.js 기초 실습.pptx
Vue.js 기초 실습.pptxVue.js 기초 실습.pptx
Vue.js 기초 실습.pptx
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
 
k8s practice 2023.pptx
k8s practice 2023.pptxk8s practice 2023.pptx
k8s practice 2023.pptx
 
HyperLedger Fabric V2.5.pdf
HyperLedger Fabric V2.5.pdfHyperLedger Fabric V2.5.pdf
HyperLedger Fabric V2.5.pdf
 
Ngrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptxNgrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptx
 
Nginx Https 적용하기.pptx
Nginx Https 적용하기.pptxNginx Https 적용하기.pptx
Nginx Https 적용하기.pptx
 
Kafka JDBC Connect Guide(Postgres Sink).pptx
Kafka JDBC Connect Guide(Postgres Sink).pptxKafka JDBC Connect Guide(Postgres Sink).pptx
Kafka JDBC Connect Guide(Postgres Sink).pptx
 
Nginx Reverse Proxy with Kafka.pptx
Nginx Reverse Proxy with Kafka.pptxNginx Reverse Proxy with Kafka.pptx
Nginx Reverse Proxy with Kafka.pptx
 
Kafka Rest.pptx
Kafka Rest.pptxKafka Rest.pptx
Kafka Rest.pptx
 
Kafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and GrafanaKafka monitoring using Prometheus and Grafana
Kafka monitoring using Prometheus and Grafana
 
주가 정보 다루기.pdf
주가 정보 다루기.pdf주가 정보 다루기.pdf
주가 정보 다루기.pdf
 
App development with quasar (pdf)
App development with quasar (pdf)App development with quasar (pdf)
App development with quasar (pdf)
 
kubernetes practice
kubernetes practicekubernetes practice
kubernetes practice
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0)
 
Docker practice
Docker practiceDocker practice
Docker practice
 
Hyperledger composer
Hyperledger composerHyperledger composer
Hyperledger composer
 
BlockChain implementation by python
BlockChain implementation by pythonBlockChain implementation by python
BlockChain implementation by python
 
Block chain introduction slideshare
Block chain introduction   slideshareBlock chain introduction   slideshare
Block chain introduction slideshare
 

하이퍼레저 페이지 단위 블록 조회

  • 1. Hyperledger Fabric How to retrieve data more than totalQueryLimit
  • 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에서 페이징 처리하여 리턴하는 기능을 제공하고 있음
  • 4. Pagination 소스코드 https://github.com/hyperledger/fabric-samples/blob/main/asset-transfer-ledger-queries/chaincode- go/asset_transfer_ledger_chaincode.go#L345-L356 startKey : 페이지 시작 키 end : 페이지 종료 키 pageSize : 한 페이지에 호출할 자료 건수 bookmark : (값을 부여할 경우) 이 키 부터 자료 조회 startKey가 있을 경우, bookmark가 우선
  • 5. 체인 코드 구현 (1/3) source code : https://github.com/hyperledger/fabric-samples/blob/main/asset-transfer-ledger-queries/chaincode-go/asset_transfer_ledger_chaincode.go
  • 6. 체인 코드 구현 (2/3) source code : https://github.com/hyperledger/fabric-samples/blob/main/asset-transfer-ledger-queries/chaincode-go/asset_transfer_ledger_chaincode.go
  • 7. 체인 코드 구현 (3/3) source code : https://github.com/hyperledger/fabric-samples/blob/main/asset-transfer-ledger-queries/chaincode-go/asset_transfer_ledger_chaincode.go
  • 8. 체인코드 반영 [root@slave1 chaincode]# pwd /root/fabric-samples/asset-transfer-basic/chaincode-go/chaincode [root@slave1 chaincode]# ll total 20 drwxr-xr-x. 2 root root 81 May 17 07:02 mocks -rw-r--r--. 1 root root 10578 Oct 18 22:26 smartcontract.go -rw-r--r--. 1 root root 6852 May 17 07:02 smartcontract_test.go [root@slave1 chaincode]#
  • 9. 체인코드 버전업 및 설치 (1/3) Org1 서버에서 실행 위치 예시 : /fabric-samples/kopo-network export PATH=${PWD}/../bin:$PATH export FABRIC_CFG_PATH=$PWD/../config/ export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.fmd.com/users/Admin@org1.fmd.com/msp peer lifecycle chaincode package basic_2.tar.gz --path ../asset-transfer-basic/chaincode-go/ --label basic_2.0 export CORE_PEER_TLS_ENABLED=true export CORE_PEER_LOCALMSPID="Org1MSP" export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.fmd.com/peers/peer0.org1.fmd.com/tls/ca.crt export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.fmd.com/users/Admin@org1.fmd.com/msp export CORE_PEER_ADDRESS=localhost:7051 peer lifecycle chaincode install basic_2.tar.gz peer lifecycle chaincode queryinstalled export NEW_CC_PACKAGE_ID=basic_2.0:6284dc812d6ddfa97c424c4ffd6f06e438618ccdcb5c987129ef69270688cd5e peer lifecycle chaincode approveformyorg -o localhost:8050 --ordererTLSHostnameOverride orderer2.fmd.com --channelID channel1 --name basic --version 2.0 --package-id $NEW_CC_PACKAGE_ID --sequence 2 --tls --cafile "${PWD}/organizations/ordererOrganizations/fmd.com/orderers/orderer2.fmd.com/msp/tlscacerts/tlsca.fmd.com-cert.pem"
  • 10. 체인코드 버전업 및 설치 (2/3) Org2 서버에서 실행 위치 예시 : /fabric-samples/kopo-network export PATH=${PWD}/../bin:$PATH export FABRIC_CFG_PATH=$PWD/../config/ export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.fmd.com/users/Admin@org2.fmd.com/msp peer lifecycle chaincode package basic_2.tar.gz --path ../asset-transfer-basic/chaincode-go/ --label basic_2.0 export CORE_PEER_TLS_ENABLED=true export CORE_PEER_LOCALMSPID="Org2MSP" export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.fmd.com/peers/peer0.org2.fmd.com/tls/ca.crt export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.fmd.com/users/Admin@org2.fmd.com/msp export CORE_PEER_ADDRESS=localhost:9051 peer lifecycle chaincode install basic_2.tar.gz export NEW_CC_PACKAGE_ID=basic_2.0:6284dc812d6ddfa97c424c4ffd6f06e438618ccdcb5c987129ef69270688cd5e peer lifecycle chaincode approveformyorg -o localhost:9050 --ordererTLSHostnameOverride orderer3.fmd.com --channelID channel1 --name basic --version 2.0 --package-id $NEW_CC_PACKAGE_ID --sequence 2 --tls --cafile "${PWD}/organizations/ordererOrganizations/fmd.com/orderers/orderer3.fmd.com/msp/tlscacerts/tlsca.fmd.com-cert.pem" peer lifecycle chaincode checkcommitreadiness --channelID channel1 --name basic --version 2.0 --sequence 2 --tls --cafile "${PWD}/organizations/ordererOrganizations/fmd.com/orderers/orderer3.fmd.com/msp/tlscacerts/tlsca.fmd.com-cert.pem" --output json peer lifecycle chaincode commit -o localhost:9050 --ordererTLSHostnameOverride orderer3.fmd.com --channelID channel1 --name basic -- version 2.0 --sequence 2 --tls --cafile "${PWD}/organizations/ordererOrganizations/fmd.com/orderers/orderer2.fmd.com/msp/tlscacerts/tlsca.fmd.com-cert.pem" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.fmd.com/peers/peer0.org2.fmd.com/tls/ca.crt"
  • 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 정보 리턴 되며, 해당 정보로 다음 페이지 조회 가능
  • 15. 테스트 (4/4) bookmark 값으로 조회 - bookmark 키 값 부터 3건 조회

Editor's Notes

  1. https://stackoverflow.com/questions/61357361/how-to-view-or-retrieve-data-from-hyperledger-fabric
  2. 호출 예시 : https://github.com/hyperledger/fabric-samples/blob/c646c5904ff0b45cb9052136b50b7a7a58cefe78/asset-transfer-ledger-queries/application-java/src/main/java/application/java/App.java#L131