Hyperledger fabric 에서 체인코드란 특정 데이터를 삽입, 조회하기 위해 사용되는 비즈니스 코드입니다.
흔히 install, instantiate 해서 사용하는 것을 사용자 체인코드라고 부릅니다.
이 사용자 체인코드와 달리 시스템 체인코드는 이미 설치되어 있는 특수 체인 코드이며 특정 권한 작업을 수행 합니다.
총 5개의 시스템 체인코드가 있습니다.
- Configuration System Chancode(CSCC) -- core/scc/cscc/configure.go
- Life Cycle System Chaincode (LSCC) -- core/scc/lscc/lscc.go
- Query System Chaincode (QSCC) -- core/scc/qscc/query.go
- Endorser System Chaincode (ESCC) -- core/scc/escc/endorser_onevalidsignature.go
- Validator System Chaincode (VSCC) -- core/scc/vscc/validator_onevalidsignature.go
Configuration System Chancode(CSCC)
: 피어 및 프로세스 채널 구성, 트랜잭션에 대한 채널 관련 정보를 관리
- JoinChain : 피어를 채널에 가입시킵니다.
ex) peer channel join -b mychannel.block
- GetConfigBlock : 지정된 채널에 대한 현재 구성 블록을 가져오기 위해 호출된다
ex) peer chaincode query -C "" -n cscc '{"Args":["GetConfigBlock","mychannel"]}'
ex) peer chainnel fetch -o orderer.example.com:5050 config -c mychannel
- GetconfigTree : 지정된 ChainId에 대한 현재 채널 및 자원 구성을 리턴한다.
- SimulateConfigTreeUpdate :지정된 ChainId에 대한 현재 채널 및 자원 구성을 업데이트 한다
- GetChannels : 피어가 지금까지 조인한 모든 채널에 대한 정보를 가져오기 위해 호출된다.
ex) peer chaincode query -C "" -n cscc -c '{"Args":["GetChannels"]}'
ex) peer channel list
Life Cycle System Chain (LSCC)
: 체인코드의 수명주기를 관리. 체인코드는 피어에 설치되고 채널에 배포 및 업그레이드 되고 사용자는 체인 코드 실행에 대한 정보를 얻을 수 있다.
- install : 피어 파일 시스템(/var/hyperledger/production/chaincodes)에 체인 코드 프로그램을 저장하도록 호출된다.
ex) peer chaincode install -n "체인코드이름" -v "버전" -p "체인코드 파일 경로"
- deploy : 주어진 채널에서 체인코드를 인스턴스하기 위해 호출
필수 인수 : 채널 이름, 체인코드 배포사양
부가 인수 : 보증 정책, 엔도서 시스템 체인코드 이름, 유효성 검사
ex) peer chaincode instantiate -o "orderer 주소" -C "채널 이름" -n "체인코드 이름" -v "버전" -c '{"Args":["init"]}'
- getdepspec : 피어에 설치된 체인코드의 배포사양을 가져온다
ex) peer chaincode query -C "체인코드 이름" -n lscc -c '{"Args":["getdepspec", "채널이름", "체인코드 이름"]}'
- getchaincodes : 채널에 배포된 체인코드 목록을 가져오는데 사용한다.
ex) peer chaincode query -C "채널이름" -n lscc -c '{"Args":["getchaincdoes"]}'
-getinstalledchaincodes : 피어에 설치된 체인코드 목록을 가져오는데 사용.
ex) peer chaincode query -C "" -n lscc -c '{"Args":["getinstalledchaincodes"]}'
참고
'컴퓨터 지식 > 블록체인' 카테고리의 다른 글
[Fabric] configtx.yaml 파일의 Polices 란? (0) | 2020.01.09 |
---|---|
[Hypereldger fabric] 배포된 체인코드 삭제 (0) | 2019.12.17 |
Hyperledger fabric 관련 유용한 정보 사이트 (0) | 2019.12.17 |
hyperledger fabric 기존 네트워크에 peer(node) 추가 (0) | 2019.11.29 |
Hyperledger fabric Java sdk 예제 정리 (0) | 2019.11.24 |