ㅋㅋ 요즘 떠오르는 블록체인 공부해보자고~(캡디 주제임ㅋㅋ ㅠ) 기본 용어 먼저 정리.
peer에 분산원장과 체인코드를 저장하고 설치된다. 따라서 하이퍼레저 패브릭의 참여자는 분산원장과 체인코드에 peer를 통해서만 접근할 수 있다. peer는 여러 개의 체인코드와 분산원장을 가질 수 있다.
하이퍼레저 패브릭에서 데이터를 분산원장에 기록하거나 읽기 위해서는 체인코드가 필요하다. 주로 비즈니스 모델에 맞는 분산 애프리케이션과 함께 개발되어 사용된다. 하이퍼레저 패브릭은 시스템 레벨에서 수행되는 시스템 체인 코드라는 특수 체인코드가 있다. 여기에는 QSCC(read), CSCC(채널 설정), LSCC(체인코드의 설치부터 인스턴스화까지 모든 일련의 과정)는 사용자의 CLI 명령어로 실행되며, ESCC(보증), VSCC(검증)는 Endorsing peer와 Committing peer에 의해 실행된다.
보통 비즈니스의 모델에 알맞은 분산 애플리케이션(DApp)과 함께 개발하여 사용된다. 단어 그대로 분산 환경에서 비즈니스 거래를 편하게 제공하기 위해 사용되는 애플리케이션이다. 사용자는 DApp을 통해 peer 네트워크의 체인코드를 실행한다. 이는 크게 읽기와 쓰기로 구분할수 있다.
보증 정책은 트랜잭션을 만드는 클라이언(DApp)와 peer 간에 작용한다. 블록에 트랜잭션이 포함되기 위해 보증 정책에 지정된 peer의 허가를 받아야 한다. 보증 정책은 모든 peer의 허락, 부분 peer의 허락, 하나의 peer의 허락 등 설정할 수 있다. 또는 그룹 구서우언에 가중치를 주는 방법도 있다.
하이퍼레저 패브릭은 비즈니스 이해관계가 같은 다수의 기관이나 기업 등의 조직이 구축하는 프라이빗 블록체인이므로, 조직이 블록체인의 네트워크를 구축하는 것은 중요하다.
조직이 비즈니스 네트워크 구축하였고, 조직의 데이터센터에 peer 노드 설치되었을 때, 분산원장은 각 채널당 하나씩 존재하여 채널에 소속된 peer간 공유한다. 즉 다른 채널에 있는 peer 간에는 서로다른 분산원장이므로 정보를 공유할 수 없다. 채널 생성은 CSCC를 호출하여 생성한다.
하이퍼레저 패브릭의 분산 원장은 현재 상태를 나타내는 World state와 원장의 생성부터 현재까지 사용 기록을 저장하는 블록체인으로 구분된다.
World state :
블록체인 :
하이퍼레저 패브릭 네트워크에서 Gossip 프로토콜은 2가지 기능을 한다.
노드들이 서로의 신원을 확인할 때 PKI기반의 디지털 인증서로 확인한다. PKI란 디지털 인증서를 제공/생성/관리를 안전하게하는 기술이다. CA라고 불리는 네트워크 노드 아래에서 PKI가 관리된다.
CA는 안전하게 디지털 인증서를 관리하는 기관이다. 이는 필요한 사용자에게 디지털 인증서를 발급/저장/삭제해 주는 역할을 한다.
PKI가 가지고 있는 핵심 구성요소
하이퍼레저 패브릭에서 제공하는 cryptogen과 Febric_CA 등을 활용해 다음의 디지털 인증서를 생성
MSP는 Identity 기술을 바탕으로 한 멤버쉽 관리 기술이다. MSP를 이용하여 orderer, peer, Fabric CA, Admin 등의 역할과 권한, 소속 등을 정의한다. local MSP와 channel MSP로 구분된다.
오더링 서비스
Kafka 분산 메시징 시스템을 이용해 구현되어 있음.
Kafka : Pub-Sub 모델, Produser로 부터 Consumer가 단위가 Topic인 구분된 메시지를 받는 분산 메시징 시스템
Producer(orderer)가 topic(분산원장) 메시지를 전달하면 Kafka 클러스터는 받은 topic 메시지를 순차정렬하여 저장한다. topic 메시지는 여러 파티션에 복사되어 저장되어있다. 즉 누가 잃어버려도 찾을 수 있어 안정성이 높다. 이 후, 메모리가 가득 찼거나 일정시간이 지나면 Consumer(peer)에게 전달한다.