IT/블록체인

[블록체인] 체인코드

KimCookieYa 2022. 4. 23. 18:33

체인코드

 - 비즈니스 객체의 상태를 정의

 - 서로 다른 상태를 프로세스화하여 관리

 - World State와 Blockchain 두 가지 값을 가지고 있음

 - World State: 현재값

 - Blockchain: World State의 이력을 저장함

 

 

하이퍼래저 스마트 컨트랙트 실행 구조

 - 하이퍼래저의 스마트컨트랙트는 각 peer에 배포되어 있음

 - 어플리케이션이 스마트컨트랙트를 실행하는 query를 peer에 보내고 peer는 해당 스마트 컨트랙트를 수행하여 응답함

 - 스마트컨트랙트는 어플리케이션의 기능을 수행할 수 있는 함수로 구성함

 - 해당 스마트 컨트랙트는 peer에 배포되어 동작함

 - 블록체인의 ledger의 상태 조회 및 생성 등의 기능을 수행하기 위해서 Chaincode API를 사용함

 

 

하이퍼래저 스마트 컨트랙트 개발 순서

1. 체인코드 개발: Chaincode API를 이용하여 체인코드를 개발한다.
2. 네트워크 실행: 체인코드가 동작할 블록체인 네트워크를 구동한다.
3. 체인코드 배포: 구동한 네트워크에 개발된 체인코드를 배포한다.
4. 체인코드 테스트: 배포된 체인코드 테스트를 통하여 수정/보완한다.

 

* Chaincode API는 GO, Node.js, JAVA 언어기반으로 제공됨

* 블록체인 네트워크에 접근하기 위한 Chaincode API는 "Shim" 패키지로 제공됨

* Shim API인 ChaincodeStubInterface를 활용하여 스마트 컨트랙트를 작성할 수 있음