2018년 11월 7일 수요일


시작하기

이번에는 Hyperledger Fabric과 Hyperledger Composer를 비교 합니다. 어느 쪽을 사용해도 블록 체인의 개발은 할 수 있지만 각각의 특징이 있습니다.
Hyperledger Composer는 Hyperledger Fabric 블록 체인 인프라에서 애플리케이션 개발을 단순화합니다. Fabric 튜토리얼에는 저레벨의 체인 코드 개발 샘플 (golang)도 포함되어 있습니다. Composer는 높은 수준의 애플리케이션 개발 프레임 워크입니다.
나는 두 기능을 전체적으로 살펴 보는 것을 권장합니다.

Hyperledger프로젝트에 대하여

현재 Hyperledger 프로젝트는 다음과 같이되어 있습니다.
프레임 워크 :
- Hyperledger Sawtooth
- Hyperledger Iroha
- Hyperledger Fabric
- Hyperledger Burrow
- Hyperledger Indy
도구 :
- Hyperledger Caliper
- Hyperledger Cello
- Hyperledger Composer
- Hyperledger Explorer
- Hyperladger Quilt

Hyperledger Fabric의 개념

먼저 Hyperledger Fabric의 개념입니다.
Hyperledger Fabric 블록 체인 프레임 워크이며, The Linux Foundation에 의해 호스팅되는 Hyperledger 프로젝트의 하나입니다. Hyperledger Fabric 모듈 아키텍처 응용 프로그램과 솔루션을 개발하기 위한 기반으로서 합의(consensus)와 맴버쉽 서비스 등의 구성요소(Component)를 플러그 앤 플레이(Plug and Play) 할 수있게되어 있습니다. Hyperledger Fabric은 컨테이너 기술을 활용하여 시스템의 응용 프로그램 로직을 구성하는 '체인 코드'라는 스마트 계약(Smart Contract)을 호스트합니다. Hyperledger Fabric 처음에는 해커톤(Hackathon)의 결과로 Digital Asset와 IBM에 의해 기증 된 것입니다.
주요 기능1. 기밀 정보를 공유하는 채널2. 주문 서비스는 네트워크의 피어(Peer)에 일관되게 트랜잭션을 전달3. 거래의 승인 정책4. 카우치DB(Apache CouchDB)의 월드 스테이트는 다양한 쿼리를 지원5. 회원 서비스 공급자 (MSP)

특징

아이덴티티의 규제
안전한 네트워크 블록을 제공하기 위해 Hyperledger Fabric의 회원 ID 서비스는 사용자 ID를 사용하여 모든 네트워크 회원을 규제합니다. ACL을 사용하여 특정 인증을 통해 정보에 대한 사용자 액세스의 추가 레벨을 만들 수도 있습니다
보호와 기밀성
Hyperledger Fabric은 비즈니스 요구에 따라 기밀 트랜잭션 구현을 위한 블록체인 네트워크의 비즈니스 그룹에 보안을 제공하기 위한 다양한 기술이 포함되어 있습니다. 거래 기록, 거래 참가자 및 채널 정보를 포함한 모든 데이터는 채널 밖에서 사용할 수 없습니다.

Chaincode의 기능
비즈니스 로직은 Chaincode에 적혀 있으며, 채널 내의 트랜잭션 유형(Type)을 규제하는 기능입니다. 소유자의 파라미터, 검증 등을 변경합니다.
모듈설계
모듈 아키텍처를 사용하면 암호화 알고리즘과 합의 메소드(Consensus method)의 일부 알고리즘을 활성화하거나 비활성화 할 수 있습니다. 그 결과 다양한 산업에 적용 가능한 범용 아키텍처 Hyperledger 플랫폼을 가질수 있습니다.

Fabric 아키텍처

3 가지 주요 구성 요소 :
  1. 사용자측 응용 프로그램
  2. Custom server
  3. Docker 컨테이너를 사용한 Fabric 네트워크
  • 사용자는 서버에 요청를 송신합니다.
  • 서버는 Fabric 네트워크에 트랜잭션을 보냅니다. 실행 노드가 트랜잭션에 입력된 함수, 키 및 인증서가 실행됩니다.
  • 트랜젝션의 실행을 제어하는 Orderer(통신측)은 인증서의 인증과 실행노드의 주소를 읽고 있는 인증센터에 매타 데이터를 보냅니다.
  • Orderer는 거래 데이터를 실행노드에 전달, 노드는 그 함수를 시작합니다.
  • Orderer의 지도하에 다른 노드는 트랜잭션의 검증을 시작하고 트렌잭션 로그를 받습니다. 결과는 SDK를 사용하여 동일한 경로 위에서 사용자에게 반환 됩니다.
  • Chaincode: Go, Java, JavaScript

Hyperledger Composer의 개념

다음은 Hyperledger Composer의 개념입니다.
개발자는 Hyperledger Composer를 사용하여 비즈니스 네트워크를 디지털화합니다. 비즈니스 네트워크 아카이브 (.bna 확장자의 파일)에는 자산(Asset), 참가자, 개념(Concept),  트랜잭션이 정의되어 있습니다.
Hyperledger Composer는 Hyperledger Fabric 블록 체인 인프라에서 블록 체인 비즈니스 네트워크를 구축하기위한 협업 도구의 집합입니다.
Composer의 목표는 가치 창출을 가속하여 블록 체인 응용 프로그램을 기존의 비즈니스 시스템에 쉽게 통합 할 수 있도록하는 것입니다. Composer를 사용하면, 
유스 케이스를 신속하게 개발할 수 있으며, 몇 달이 아니라 몇 주에서 블록 체인 솔루션을 구현할 수 있습니다.
JavaScript로 구축되어 Node.js의, NPM, CLI 인기 편집기 등의 현대적인 도구가 활용되고 있습니다. 비즈니스에서의 사용을 전제로하여 쉽게 테스트 할 샘플 응용 프로그램도 제공하고 있기 때문에 코드의 생성이 쉽습니다.
Hyperledger Composer는 기존의 Hyperledger Fabric 블록 체인 인프라와 런타임 플러그인 가능한 블록 체인 합의(consensus) 프로토콜을 지원하고, 지정된 비즈니스 네트워크 참여에 의한 정책에 따라 트랜잭션을 확인합니다.
[그림 내용]
비지니스 오너 또는 개발자가 스마트 계약(Smart Contract)을 작성
비지니스 네트워크를 모듈화
기존의 시스템과 데이터를 블록체인 응용 프로그램과 결합
Hyperledger Composer를 사용하면, 기존의 자산(Asset)과 연관된 트랜잭션을 포함한 현재의 비즈니스 네트워크를 신속하게 모델링 할 수 있습니다. 자산(Asset)은 유형 또는 무형의 상품, 서비스 또는 재산입니다. 비즈니스 네트워크 모델의 일부로 자산과 대화 할 수있는 트랜잭션을 정의합니다. 또한 비즈니스 네트워크에는 여러 비즈니스 네트워크에 걸쳐 각각 고유의 ID와 연관 될 수있는 참가자가 포함됩니다. 또한 Composer를 사용하는 것에 큰 장점은 학습 과정이 구조화되어있는 것입니다.
비즈니스 네트워크를 블록체인에 배치하려면 시간과 노력 및 기타 투자가 필요합니다. Composer를 사용하면 블록 체인의 비즈니스 네트워크를 쉽게 정의 및 모델링 할 수 있습니다.

주요기능

1. 거래가 가능한 비즈니스 규칙을 정의한다.
2. 트랜잭션 유형에 따라 각 역할의 참가자 신원과 액세스 제어 역할이 가능하다.
3. 비즈니스 네트워크에서 재사용 가능한 핵심 구성(코어 컴포넌트)의 모델 - 자산,  참가자 트랜잭션 로직, 비즈니스 네트워크의 액세스 제어를 제공하는 도구
4. 사용할 수있는 비즈니스 네트워크 정의에 따라 JavaScript 및 REST API를 생성
5. 아무것도 설치하지 않고 Web 기반 Composer Playground에서 개발 및 테스트 할때, 랩탑(laptop) 개발로 전환하고, 모델을 테스트하고 Hyperledger Fabric 또는 그 외의 블록체인 네트워크의 라이브・블록체인・인스턴스에 비즈니스 네트워크를 구축한다.

특징

블록 체인 애플리케이션의 개발 시간이 짧게 해결되기때문에 빌드에 필요한 엄청난 노력을 줄일 수 있습니다.충분히 테스트 된 효율적인 설계에 의해 비즈니스 전체의 이해를 일치시키고 위험을 줄일 수 있습니다.보다 높은 수준의 추상화로 인해, API를 통해 기존 응용 프로그램에 그들을 연결하는 기능을 포함하기 때문에 반복적 인 개발에 따라 응용 프로그램을 성장 시키는 것이 훨씬 쉽습니다.또한 Fabric Composer는 오픈 소스 개발자들에게 익숙한 기반 기술 스택으로 설계되어 있습니다.

Composer 프로젝트 모델


주요 컴포넌트

  1. 비즈니스 네트워크 아카이브
    비즈니스 모델, 트랜잭션 로직, 액세스 제어, 비즈니스 네트워크 아카이브등의 비즈니스 네트워크의 핵심 데이터를 패키지화하여 런타임에 배포합니다.
  2. Composer Playground
    Web에서 Hyperledger Composer를 배우고 비즈니스 네트워크를 모델링하고, 그 네트워크를 테스트하고 그 네트워크를 블록체인 네트워크의 실례에 배포하는 것이 가능합니다. Playground에는 자신의 비즈니스 네트워크를 구축하기위한 기반이되는 샘플 비즈니스 네트워크 저장소가 몇 가지 있습니다.
  3. REST API에 대한 지원과 통합 기능
    비즈니스 용 루프백 커넥터 실행중인 네트워크를 REST API로 공개하는 네트워크가 개발되고 있습니다. 클라이언트 응용 프로그램에서 사용 가능하고, 비 블록체인 애플리케이션을 통합 할 수 있습니다.

정리

이번에는 Hyperledger Fabric과 Hyperledger Composer의 비교 했습니다. 어느 것을 사용해도 비즈니스 요구에 맞는 솔루션을 개발 수 있습니다. 각각의 장점이 있기 때문에 실제로 어떤 것을 사용할지는 프로젝트에 따라 검토 할 필요가 있다고 생각됩니다.