관리 메뉴

HAMA 블로그

[하이퍼레저 패브릭] 버전별 개요 및 차이점 정리 본문

블록체인

[하이퍼레저 패브릭] 버전별 개요 및 차이점 정리

[하마] 이승현 (wowlsh93@gmail.com) 2018. 8. 24. 14:07

[하이퍼레저 패브릭]  버전(0.6,1.0,1.1,1.2)별 개요 및 차이점 


VER 0.6 

패브릭은 다음과 같은 요소로 이루어져 있다:

1. Peer노드는 ledger 데이터를 유지하고, 체인과 상호작용하려는 클라이어트를 위한 기본 인터페이스를 제공하다. 

  • Validating peers: 트랜잭션을 검증하며, 체인코드를 실행하고 ledger를 업데이트 할 수 있다.  
    Non-validating peers:  기본적으로 같은 역할을 하지만, 검증로직은 없다. 즉 장부저장 및 클라와 인터페이싱 

2. 멤버쉽 서비스는 허가된 peers 와 네트워크상의 유저들을 위한 ACL(access control lists) 을 유지한다. X.509 인증구조를 사용하여 서비스하며, 트랜잭션을 네트워크에 제출하기 위한 TCerts 를 생성한다. TCerts 는 등록된 사용자의 인증서인 ECerts 에 의해 생성된다. 

3. Ledger 데이터는 키-밸류 스토어인  RocksDB 에 저장된다. 
4. 체인코드라고 불리는 스마트컨트렉트는 비지니스로직을 실행하고, 장부상태를 변경시킨다.
5. Docker는 peers 을 호스팅하는데 사용된다. 
6. gRPC는 기본 와이어 프로토콜로 사용된다.
7. 기본적인 PBFT 알고리즘이 컨센서스 메커니즘으로 사용된다. 다른 것을 사용해도 된다. 

 Membership Services

0.6버전 아키텍처에서 멤버십 서비스는 사용자 참여(ECA), 트랜잭션 권한(TCA), 통신권한(TLS-CA) 등의 인증서를 생성, 조회 등을 담당하는 컴포넌트 역할을 맡았다. 각 참여자 피어에서는 블록체인 개념에서 필요한 합의 알고리즘, 체인코드, 이벤트, 원장 관리 등 작업을 수행했다.

하이퍼레저 패브릭0.6버전

하이퍼레저 패브릭0.6버전

주요 멤버쉽 서비스 요소로는 아래와 같은 것들이 있다.

Registration Authority

Assigns registration username & registration password pairs to network participants. This username/password pair will be used to acquire enrollment certificate from ECA.

Enrollment Certificate Authority (ECA)

Issues enrollment certificates (ECert) to network participants that have already registered with a membership service. ECerts are long term certificates used to identify individual entities participating in one or more networks.

Transaction Certificate Authority (TCA)

Issues transaction certificates (TCerts) to ECert owners. An infinite number of TCerts can be derived from each ECert. TCerts are used by network participants to send transactions. Depending on the level of security requirements, network participants may choose to use a new TCert for every transaction.

TLS-Certificate Authority (TLS-CA)

Blockchain Services

블록체인 서비스는 HTTP/2 표준을 기반으로 P2P 프로토콜을 통해서 분산원장을 관리하며 데이터 구조는 해시 알고리즘을 통해 World state를 복제하는 등 관리 하는데 가장 효율적으로 관리할 수 있도록 최적화되어 있다. 디폴트 합의 알고리즘은 PBFT 이며, 필요에 따라 다른 합의 알고리즘 플러그인(Raft, PoW, PoS)을 연결하고 구성 할 수 있다.

Chaincode Services

체인코드 서비스는 Validating 노드에서 안전하고 가볍운 방법으로 체인코드가 실행되도록 보장합니다. 환경은 보안 OS 및 체인 코드 언어, Go, Java 및 Node.js의 런타임 및 SDK 계층을 포함하는 일련의 서명 된 기본 이미지와 함께 “잠긴”보안 컨테이너입니다. 필요한 경우 다른 언어를 사용할 수 있습니다.

운영환경이거나 개발 환경일 경우 다양한 validating peer와 non-validating peer를 이용하여 블록체인 네트워크를 구성해야 합니다. 이 구성에서 non-validating peer는 이벤트 처리 및 REST API 서비스 관리등의 역할을 하게 되는 노드입니다.

MultipleValidatingPeer

아래 그림을 통해 0.6 패브릭에서 일어나는 프로세싱을 한눈에 확인 할 수 있다.



VER 1.0 


2017년 7월에 1.0 버전이 출시되었다. (2016년 9월에 실험버전) 
Orderer / Endorser 
peer/ Committer peerAnchor peer /Channel / Organization (member) 개념이 생겼으며, Ledger 를 저장하는 DB 방식도 바뀜. Membership service가 없어지고, MSP 와 Fabric -CA 서버가 생김. 

이 그림은 IBM Microclass의 세 번째 강의에서 나온 것으로, 원래 단일 피어 노드가 1.0으로 분할되어 피어 (전체피어의 일부분은 endorsement 역할을 한다. 전체피어는 commit 역할을 한다.) 및 컨센서스 강화에 따른 orderer (정렬 노드)로 나뉘어져 있음을 알 수 있다.

보안/허가 관련해서 많은 변경이 이루어 졌다.  

Identity refers to identity management. Because of the importance of identity management, Fabric extracted the original Membership service as a separate module, Fabric-CA. As a non-licensed network, Fabric adopts a digital certificate mechanism to implement identity authentication and permission control. The CA node implements the PKI service, which is responsible for the generation and revocation of identity certificates, etc.

MSP / CSP / Fabric -CA 란?


아래 3개의 그림은 Ledger 저장소/트랜잭션/데이터 저장 메커니즘에 관련 된 것이다. 




VER 1.1 

1. Hyperledger Fabric 1.1 주요변경 사항 
1.1 Rolling upgrade 방식 도입
1.2 이벤트 서비스 추가/변경 
1.3 CouchDB 인덱스
1.4 Javascript chaincode
1.5 TLS communication
1.6 원장 암호화
1.7 Attribute 기반 체인코드 접근 제어 & 체인코드 API를 통한 클라이언트 아이덴티티 확인

2. Hyperledger Fabric-CA
2.1 CRLs (Certificate Revocation List)
2.2 Fabric-CA 재구성 강화

3. Hyperledger Fabric
Nodejs SDK
3.1 Connection Profiles


VER 1.2

  • Private Data Collections: A way to keep certain data/transactions confidential among a subset of channel members. We also have an architecture document on this topic which can be found here.
  • Service Discovery: Discover network services dynamically, including orderers, peers, chaincode, and endorsement policies, to simplify client applications.
  • Access control: How to configure which client identities can interact with peer functions on a per channel basis.
  • Pluggable endorsement and validation: Utilize pluggable endorsement and validation logic per chaincode.


1.1 과 1.2에 대한 차이점에 대해서 IBM에서 발표한 자료 -> http://www-903.ibm.com/kr/2018_upload/IBM_BlockDevDay0915_Session1.pdf

Comments