Hyperledger Caliper Sample(caliper-benchmarks)
source: Installing and Running Caliper(https://hyperledger.github.io/caliper/vLatest/installing-caliper)
Notice
2020-03-04: Caliper v0.3.0 Released
Environment
Ubuntu 18.04 LTS
Hyperledger Caliper v0.3.0
Caliper 설치
git clone https://github.com/hyperledger/caliper.git
cd caliper
# Installs development-time dependencies, such as Lerna and the license checking package
npm install
# @hyperledger/caliper-cli NPM Package dependency 전역으로 설치
npm install -g --only=prod @hyperledger/caliper-cli
Caliper Sample(caliper-benchmarks) 설치 및 실행
git clone https://github.com/hyperledger/caliper-benchmarks.git
cd caliper-benchmarks
# package.json(해당 node 프로그램에 대한 기본 정보를 담고 있음) 생성
npm init -y
# @hyperledger/caliper-cli NPM Package dependency 설치
npm install --only=prod \
@hyperledger/caliper-cli@0.2.0
# npx로 설치없이 local CLI package를 1회성으로 실행: @hyperledger/1.4.0을 현재 폴더에 바인딩
npx caliper bind \
--caliper-bind-sut fabric:1.4.0
# caliper benchmark run -w -c -n
## -w : workspace 디렉토리 경로 (필수)
## -c : workspace에서 벤치마크 configuration 파일 상대경로 (필수)
## -n : workspace에서 테스트할 블록체인 네트워크 config 파일의 상대경로
npx caliper launch master \
--caliper-workspace . \
--caliper-benchconfig benchmarks/scenario/simple/config.yaml \
--caliper-networkconfig networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
v0.3.0부터는 launch command로 test를 실행한다. (v0.2.0까지는은 benchamark run command 사용)
Caliper Sample Test 절차 설명
docker network "2org1peergoleveldb_default" 생성
orderer, ca.org1, ca.org2, peer0.org1, peer0.org2 컨테이너생성
client 및 보증 정책 설정
OrgMSP1: User, Admin
OrgMSP2: User
채널 "mychannel" 생성 후 채널에 peer 참여
각 peer에 시나리오 별 체인코드 설치: @marble, @drm, @simple, @smallbank
설치한 체인코드 인스턴스화, Simple 시나리오로 테스트 시작
'open' test: 테스트 결과와 함께 docker resource 출력
'query' test: 테스트 결과와 함께 docker resource 출력
'transfer' test: 테스트 결과와 함께 docker resource 출력
3개 함수 호출 테스트 결과 출력
성공/실패 트랜잭션 개수
트랜잭션 개수는 config.yaml에서 설정 가능
Latency(Max/Min/Avg): 초 단위 지연 시간
Throughput(TPS)
html 형식의 보고서 생성(위치: /caliper-benchmarks/report.html)
실행 중이던 컨테이너 중지 및 삭제

Troubleshooting
Error: Table must define at least one row.(https://github.com/hyperledger/caliper/issues/670)
Solution: config.yaml 수정 후 다시 실행(path: caliper-benchmarks/benchmarks/scenario/simple/config.yaml)
(from) txNumber: 100
(to) txNumber:
100
Error: Invalid endorsement for marbles@v0 in mychannel from peer0.org1.example.com
Solution: pull the hyperledger/fabric-ccenv docker image (https://hub.docker.com/r/hyperledger/fabric-ccenv)
docker pull hyperledger/fabric-ccenv
Reference
Last updated