본문 바로가기
컴퓨터 지식/블록체인

Fabric - 시스템 체인코드(System Chaincode) 란

by LiveData 2019. 12. 17.
반응형

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"]}'

 

 


 

 

참고

https://miiingo.tistory.com/167

반응형