본문 바로가기

IT/Block Chain(Hyperledger)

Hyperledger Composer

Hyperledger Composer

Hyperledger Composer는 블록 체인 응용 프로그램을보다 쉽게 ​​개발할 수 있는 광범위하고 개방적인 개발 도구 세트 및 프레임 워크입니다. 당사의 주요 목표는 가치 창출 시간을 단축하고 블록 체인 애플리케이션을 기존 비즈니스 시스템과보다 쉽게 ​​통합하는 것입니다. Composer를 사용하여 use case를 신속하게 개발하고 몇 개월이 아닌 몇 주 내에 블록 체인 솔루션을 배포할 수 있습니다. Composer를 사용하면 비즈니스 네트워크를 모델링하고 기존 시스템 및 데이터를 블록 체인 응용 프로그램과 통합할 수 있습니다.

Hyperledger Composer는 기존 Hyperleger Fabric 블록 체인 인프라 및 런타임을 지원하며, 지정된 비즈니스 네트워크 참가자의 정책에 따라 트랜잭션의 유효성을 확인하기 위해 플러그 가능한 블록 체인 합의 프로토콜을 지원합니다.

일상적인 응용 프로그램은 비즈니스 네트워크에서 데이터를 소비하여 최종 사용자에게 간단하고 제어된 액세스 포인트를 제공합니다.

Hyperledger Composer를 사용하면 기존 자산 및 관련 트랜잭션이 포함된 현재 비즈니스 네트워크를 신속하게 모델링할 수 있습니다. 자산(Assets)은 유형 또는 무형의 재화, 서비스 또는재화입니다. 비즈니스 네트워크 모델의 일부로 자산과 상호 작용할 수 있는 트랜잭션을 정의합니다. 비즈니스 네트워크에는 여러 비즈니스 네트워크에서 고유 ID와 연관 될 수 있는 상호 작용하는 참가자도 포함됩니다.

스크린샷, 2017-09-27 11-35-39.png

Hyperledger Composer는 실제로 어떻게 작동합니까?

실행중인 비즈니스 네트워크의 예를 보려면, 부동산 중개인(realtor)은 그들의 비즈니스 네트워크를 다음과 같이 신속하게 모델링할 수 있습니다.

  • 자산 : 주택 및 리스팅
  • 참가자 : 구매자 및 주택 소유자
  • 거래 : 집 구매 또는 판매, 목록 작성 및 종료

참가자는 구매자, 판매자 또는 부동산 중개인으로서의 역할에 따라 제한된 거래에 대한 액세스 권한을 가질 수 있습니다. 부동산 중개인은 공개 목록을보고 제안을하기위한 간단한 사용자 인터페이스로 구매자와 판매자를 소개하는 응용 프로그램을 작성할 수 있습니다. 이 비즈니스 네트워크는 기존 재고 시스템과 통합되어 새로운 주택을 자산(Assets)으로 추가하고 판매된 부동산을 제거할 수 있습니다. 토지 등록 기관이 구매자와 상호 작용하여 토지의 소유권을 이전하는 경우와 같이 관련 당사자를 참가자로 등록할 수 있습니다.

 

Hyperledger Composer의 주요 개념

Hyperledger Composer는 모델링 언어와 API 집합을 포함하는 프로그래밍 모델로, 참가자가 자산을 교환하는 트랜잭션을 보낼 수있게 해주는 비즈니스 네트워크와 응용 프로그램을 빠르게 정의하고 배포합니다.

Hyperledger Composer의 구성 요소(Hyperledger Composer Components)

Hyperledger Composer Playground라는 브라우저 기반 UI를 사용하여 Hyperledger Composer를 경험할 수 있습니다. 놀이터는 호스팅 버전 (설치 필요 없음) 또는 로컬 설치 (오프라인 샘플 비즈니스 네트워크 편집 및 테스트에 적합)로 사용할 수 있습니다.

Hyperledger Composer의 전체 응용 프로그램 개발 기능을 사용하려는 개발자는 개발자 도구를 설치해야합니다.

스크린샷, 2017-09-26 13-12-55.png

 

Hyperledger Composer의 주요 개념(Key Concepts in Hyperledger Composer)

블록 체인 상태 저장소(Blockchain State Storage)

비즈니스 네트워크를 통해 제출된 모든 트랜잭션은 블록 체인 원장에 저장되며 현재 자산 및 참가자 상태는 블록 체인 상태 데이터베이스에 저장됩니다. 블록 체인은 원장과 상태 데이터베이스를 피어 집합에 분산시키고 원장 및 상태 데이터베이스에 대한 업데이트가 합의 알고리즘을 사용하여 모든 피어간에 일관성있게 유지되도록 합니다.

연결 프로필(Connection Profiles)

Hyperledger Composer는 Connection Profile을 사용하여 런타임에 연결합니다. Connection Profile은 사용자의 홈 디렉토리에 있거나 환경 변수에서 올 수 있는 JSON 문서이며 Composer API 또는 명령 행 도구를 사용할 때 이름으로 참조됩니다. 연결 프로파일을 사용하면 코드와 스크립트를 하나의 런타임 인스턴스에서 다른 런타임 인스턴스로 쉽게 이식 할 수 있습니다. 참조 섹션에서 연결 프로파일에 대한 자세한 내용을 볼 수 있습니다.

자산(Assets)

자산은 유형 또는 무형의 재화, 서비스 또는 자산이며 레지스트리에 저장됩니다. 자산은 비즈니스 네트워크의 거의 모든 것을 나타낼 수 있습니다. 예를 들어 판매 집, 판매 목록, 해당 주택에 대한 토지 레지스트리 인증서 및 그 집에 대한 보험 서류는 모두 하나 이상의 비즈니스 네트워크에있는 자산 일 수 있습니다.

자산에는 고유한 식별자가 있어야하지만 그 이외에 정의한 속성을 포함 할 수 있습니다. 자산은 다른 자산이나 참가자와 관련될 수 있습니다 .

참가자(Participants)

참가자는 비즈니스 네트워크의 구성원입니다. 그들은 자산을 소유하고 거래를 제출할 수 있습니다. 참여자 유형은 모델화되며 자산과 마찬가지로 식별자가 있어야하며 필요에 따라 다른 속성을 가질 수 있습니다.

신분증 및 신분증(Identities and ID cards)

비즈니스 네트워크 내에서 참가자는 신원과 연관 될 수 있습니다. ID 카드는 ID, 연결 프로필 및 메타 데이터의 조합입니다. ID 카드는 비즈니스 네트워크에 연결하는 프로세스를 단순화하고 비즈니스 네트워크 외부의 ID 개념을 특정 비즈니스 네트워크 및 연결 프로필과 연관된 ID의 '지갑'으로 확장합니다.

거래(Transactions)

거래는 참가자가 자산과 상호 작용하는 메커니즘입니다. 이는 참가자가 경매에 있는 자산에 입찰을하거나 경매인이 경매를 종결로 표시하여 자산의 소유권을 최고 입찰자에게 자동으로 이전하는 것처럼 간단 할 수 있습니다.

검색어(Queries)

쿼리는 세계 상태의 블록 체인에 대한 데이터를 반환하는 데 사용됩니다. 쿼리는 비즈니스 네트워크 내에서 정의되며 간단한 사용자 정의를위한 변수 매개 변수를 포함 할 수 있습니다. 쿼리를 사용하여 블록 체인 네트워크에서 데이터를 쉽게 추출 할 수 있습니다. 쿼리는 Hyperledger Composer API를 사용하여 전송됩니다.

이벤트(Events)

이벤트는 자산 또는 참여자와 동일한 방식으로 비즈니스 네트워크 정의에 정의됩니다. 이벤트가 정의되면 거래 프로세서 기능에 의해 이벤트를 발생시켜 외부 시스템에 중요한 일이 장부에 발생했음을 알릴 수 있습니다. 애플리케이션은 composer-clientAPI를 통해 방출된 이벤트에 가입 할 수 있습니다 .

액세스 제어(Access Control)

비즈니스 네트워크에는 일련의 액세스 제어 규칙이 포함될 수 있습니다. 액세스 제어 규칙을 사용하면 참가자가 비즈니스 네트워크의 자산 및 어떤 조건에 액세스 할 수 있는지를 세밀하게 제어 할 수 있습니다. 액세스 제어 언어는 "차량 소유자만 차량 소유권을 이전 할 수 있습니다"와 같이 정교한 조건을 선언적으로 파악하기에 충분할만큼 풍부합니다. 트랜잭션 프로세서 함수 논리에서 액세스 제어를 외부화하면 검사, 디버그, 개발 및 유지 관리가 더 쉬워집니다.

히스토리안 등록(Historian registry)

히스토리안은 참가자 및 제출 한 신원을 포함하여 성공적인 거래를 기록하는 전문화 된 레지스트리입니다. 히스토리안은  HistorianRecord 트랜잭션을 자산으로 저장하며 Hyperledger Composer 시스템 네임 스페이스에 정의되어 있습니다.

 

일반적인 Hyperledger Composer 솔루션 아키텍처 (Typical Hyperledger Composer Solution Architecture)

Hyperledger Composer를 사용하면 아키텍쳐와 개발자가 "전체 스택"블록 체인 솔루션을 신속하게 만들 수 있습니다. 즉, 블록 체인에서 실행되는 비즈니스 로직, 웹 또는 모바일 애플리케이션에 블록 체인 로직을 노출하는 REST API는 물론 기존의 전사 시스템과 블록 체인을 통합할 수 있습니다.

Hyperledger Composer는 다음과 같은 고급 구성 요소로 이루어져 있습니다.

  • 실행 런타임 (현재 4 개가 지원됩니다!)
  • 자바 스크립트 SDK
  • Command Line 인터페이스
  • REST 서버
  • 루프백 커넥터
  • Playground 웹 사용자 인터페이스
  • Yeoman 코드 생성기
  • VSCode 및 Atom 편집기 플러그인

실행 런타임(Execution Runtimes)

Hyperledger Composer는 다양한 플러그 가능한 런타임을 지원하도록 설계되었으며 현재 세 가지 런타임 구현이 있습니다. * Hyperledger Fabric 버전 1.0. 상태는 분산 원장에 저장됩니다. * 웹, 웹 페이지 내에서 실행되며 Playground에서 사용됩니다. 상태는 브라우저 로컬 저장소에 저장됩니다. * Embedded는 Node.js 프로세스 내에서 실행되며 주로 비즈니스 로직 테스트에 사용됩니다. 상태는 메모리 내장 키 - 값 저장소에 저장됩니다.

연결 프로필(Connection Profiles)

연결 프로필은 Hyperledger Composer에서 실행 런타임에 연결하는 방법을 지정하는 데 사용됩니다. 각 실행 런타임 유형마다 다른 구성 옵션이 있습니다. 예를 들어, Hyperledger Fabric 버전 1.0 런타임의 연결 프로필에는 Fabric 피어의 TCP/IP 주소와 포트는 물론 암호화 인증서 등이 포함됩니다.

연결 프로파일은 이름 (코드 및 명령 행 모두)으로 참조되고 연결 프로파일 문서 (JSON 형식)는 사용자의 홈 디렉토리에서 확인됩니다.

자바 스크립트 SDK(Java Scripts SDK)

Hyperledger Composer JavaScript SDK는 개발자가 배포 된 비즈니스 네트워크를 관리하고 상호 작용할 수있는 응용 프로그램을 만들 수있게 해주는 Node.js API 세트입니다.

API는 두 개의 npm 모듈로 나뉩니다.

  1. 비즈니스 네트워크에 트랜잭션을 제출하거나 자산 및 참가자에 대한 생성, 읽기, 업데이트, 삭제 작업을 수행하는 데 사용되는 composer - 클라이언트
  2. composer - 관리자는 비즈니스 네트워크를 관리하는 데 사용됩니다 (배포, 배포 취소).

모든 API의 세부 사항은 JSDocs로 제공됩니다 (레퍼런스 확인).

composer - 클라이언트(composer-client)

이 모듈은 대개 응용 프로그램의 로컬 종속성으로 설치됩니다. 비즈니스 응용 프로그램이 비즈니스 네트워크에 연결하여 자산, 참여자 및 트랜잭션 제출에 액세스하는 데 사용되는 API를 제공합니다. 프로덕션 환경에서는 응용 프로그램의 직접 종속성으로 추가해야하는 모듈입니다.

composer - 관리자(composer-admin)

이 모듈은 일반적으로 관리 응용 프로그램의 로컬 종속성으로 설치됩니다. 이 API를 사용하면 비즈니스 네트워크 정의를 만들고 배포할 수 있습니다.

Command Line 인터페이스(Command Line Interface)

Composer 명령 줄 도구를 사용하면 개발자와 관리자가 비즈니스 네트워크 정의를 배포하고 관리할 수 있습니다.

REST 서버(REST Server)

Hyperledger Composer REST Server는 비즈니스 네트워크 용 Open API (Swagger) REST API를 자동으로 생성합니다. LoopBack 기술에 기반한 REST 서버는 비즈니스 네트워크의 작성자 모델을 Open API 정의로 변환하고 런타임에 자산 및 참가자에 대한 작성, 읽기, 업데이트 및 삭제 지원을 구현하고 처리 또는 검색을 위해 트랜잭션을 제출할 수 있도록 합니다.

루프백 커넥터(LoopBack Connector)

Hyperledger Composer LoopBack Connector는 Composer REST Server에서 사용하지만 LoopBack을 기본적으로 지원하는 통합 도구로 독립 실행 형으로 사용할 수도 있습니다. 또는 LoopBack 도구와 함께 사용하여 REST API의보다 정교한 사용자 정의를 작성할 수 있습니다.

Playground 웹 사용자 인터페이스(Playground Web User Interface)

Hyperledger Composer Playground는 비즈니스 네트워크를 정의하고 테스트하는 웹 사용자 인터페이스입니다. 비즈니스 분석가는 샘플을 신속하게 가져오고 웹 또는 Hyperledger 패브릭 런타임에서 실행되는 비즈니스 논리를 프로토타입화할 수 있습니다.

Yeoman 코드 생성기(Yeoman Code Generators)

Hyperledger Composer는 오픈 소스 Yeoman 코드 생성기 프레임 워크를 사용하여 스켈레톤 프로젝트를 만듭니다.

  • Angular 웹 애플리케이션(Angular web application)
  • Node.js 응용 프로그램(Node.js application)
  • 스켈레톤 비즈니스 네트워크(Skeleton business network)

VSCode 및 Atom 편집기 확장(VSCode and Atom Editor Extensions)

Hyperledger Composer에는 VSCode 및 Atom에 대한 커뮤니티 기여 편집기 확장 기능이 있습니다. VSCode 확장은 매우 강력하고 Composer 모델 과 ACL 파일의 유효성을 검사하여 구문 강조, 오류 감지 및 스 니펫 지원을 제공합니다. Atom 플러그인은 훨씬 초보적이며 기본 구문 강조만 제공합니다.

 

출처: https://hyperledger.github.io/composer/introduction/introduction.html

'IT > Block Chain(Hyperledger)' 카테고리의 다른 글

Hyperledger Caliper 개요  (0) 2018.08.28
Steem 그리고, Steemit 정의  (1) 2017.12.28
BlockChain 기초 개념  (0) 2017.12.28
블록 체인 기본 사항 : 용어 및 사용 사례  (0) 2017.12.28
블록체인에 대한 소개  (0) 2017.12.28