Hyperledger Composer는 모델링 언어와 API 집합을 포함하는 프로그래밍 모델로, 참가자가 자산을 교환하는 트랜잭션을 보낼 수 있도록 비즈니스 네트워크 및 애플리케이션을 빠르게 정의하고 배포합니다.
Hyperledger Composer Playground라는 브라우저 기반 UI를 사용하여 Hyperledger Composer를 사용해볼 수 있습니다. Playground는 hosted version (설치 불필요) 또는 local install (비즈니스 네트워크 편집 및 테스트에 적합) 버전으로 사용할 수 있습니다.
Hyperledger composer의 전체 개발 애플리케이션 기능을 사용하고자 하는 개발자는 개발자 도구를 설치해야 합니다.
[Blockchain State Storage]
비즈니스 네트워크를 통해 제출된 모든 트랜잭션은 블록체인 원장에 저장되며, 현재 자산 및 참가자의 상태는 블록체인 상태 데이터베이스에 저장됩니다. 블록체인은 원장과 상태 데이터베이스를 피어 집합에 분산시키고, 합의 알고리즘을 사용하여 모든 피어 간 원장 및 상태 데이터베이스에 대한 업데이트가 일관성있게 유지되도록 합니다.
[Connection Profiles]
Hyperledger Composer는 연결 프로파일을 사용하여 연결할 시스템을 정의합니다. 연결 프로파일은 비즈니스 네트워크 카드의 일부인 JSON 문서입니다. 이러한 프로파일은 일반적으로 해당 시스템을 만든 사람에 의해 작성되며, 해당 시스템에 연결하기위해 비즈니스 네트워크 카드를 생성하는데 사용되어야 합니다.
[Assets]
자산은 유형 또는 무형의 상품, 서비스, 보유자산이며 레지스트리에 저장됩니다. 자산은 비즈니스 네트워크의 거의 모든 것을 나타낼 수 있습니다. 예를 들어, 판매를 위한 주택, 판매 목록, 해당 주택의 토지에 대한 레지스트리 인증서, 보험 서류는 모두 하나 이상의 비즈니스 네트워크 자산일 수 있습니다.
자산에는 고유한 식별자가 있어야 하지만 그 외에는 정의한 모든 속성을 포함할 수 있습니다. 자산은 다른 자산 혹은 참가자와 연결되어 있을 수 있습니다.
[Participants]
참가자는 비즈니스 네트워크의 구성원입니다. 그들은 자산을 소유하고 거래를 제출할 수 있습니다. 참가자 유형은 모델화되며 자산과 마찬가지로 식별자가 있어야 하며, 필요에 따라 다른 속성을 가질 수 있습니다. 참가자는 하나 이상의 ID에 매핑될 수 있습니다.
[Identities]
Identity는 디지털 인증서 및 개인키입니다. Id는 비즈니스 네트워크에서 거래하는데 사용되며 비즈니스 네트워크의 참가자에게 매핑되어야 합니다. 단일 Id는 비즈니스 네트워크 카드에 저장되며 해당 Id가 참가자에게 매핑된 경우 해당 비즈니스 네트워크 카드의 사용자는 참가자로서 비즈니스 네트워크에서 거래할 수 있습니다.
[Business Network Cards]
비즈니스 네트워크 카드는 신원확인, 연결 프로파일, 메타데이터 (연결할 비즈니스 네트워크의 이름을 포함하기도 함)의 조합입니다. 비즈니스 네트워크 카드는 비즈니스 네트워크에 연결하는 프로세스를 단순화하고 비즈니스 네트워크 외부의 Id 개념을 특정 비즈니스 네트워크 및 연결 프로파일과 연관된 id의 '지갑'으로 확장합니다.
[Transactions]
트랜잭션은 참가자가 자산과 상호작용하는 매커니즘입니다. 이것은 참가자가 경매에 있는 자산에 입찰을 하거나 경매인이 경매를 종결로 표시하고 자산의 소유권을 최고 입찰자에게 자동으로 이전하는 것처럼 간단히 이뤄질 수 있습니다.
[Queries]
쿼리는 블록체인 world-state에 대한 데이터를 반환하는 데 사용됩니다. 쿼리는 비즈니스 네트워크에서 정의되며 간단히 사용자가 정의할 수 있는 파라미터 변수를 포함하 ㄹ수도 있습니다. 쿼리를 사용하면 블록체인 네트워크에서 데이터를 쉽게 추출할 수 있습니다. 쿼리는 Hyperledger Composer API를 사용하여 전송됩니다.
[Events]
이벤트는 자산 또는 참가자와 동일한 방식으로 비즈니스 네트워크 정의에 정의됩니다. 이벤트가 정의되면 트랜잭션 처리 함수에 의해 이벤트가 발생되어 외부 시스템에게 원장에 중요한 일이 발생했음을 알립니다. 애플리케이션은 발생한 이벤트를 "composer-client" API를 통해 확인할 수 있습니다.
[Access Control]
비즈니스 네트워크에는 일련의 엑세스 제어 규칙이 포함될 수 있습니다. 엑세스 제어 규칙을 사용하면 참가자가 비즈니스 네트워크의 자산 및 어떤 조건에 액세스할 수 있는지에 대한 세밀한 제어가 가능합니다. 엑세스 제어 언어는 예를 들어 "차량 소유주만 차량의 소유권을 이전할 수 있습니다."와 같이 정교한 조건을 명시적으로 파악하기에 충분할 정도로 풍부합니다. 트랜잭션 처리 함수 로직에서 엑세스 제어를 외부화하면 검사, 디버그, 개발 및 유지관리가 더 쉬워집니다.
[Historian registry]
Historian은 제출된 참가자 및 신원을 포함하여 성공적인 거래를 기록하는 특수한 레지스트리입니다. Historian은 Hyperledger Composer 시스템 네임 스페이스에 정의된 HistorianRecord자산으로 트랜잭션을 저장합니다.
Hyperledger Composer는 보다 쉽게 블록체인 애플리케이션을 개발할 수 있는 광범위한 open development toolset 및 프레임워크입니다. Hyperledger Composer의 주 목표는 가치를 창출해내는 시간을 단축하고 블록체인 애플리케이션을 기존 비즈니스 시스템과 보다 쉽게 통합하는 것입니다. Composer를 사용하여 유즈케이스를 신속하게 개발하고 수 개월이 아닌 몇 주 내에 블록체인 솔루션을 배포할 수 있습니다. Composer를 통해 비즈니스 네트워크를 모델링하고 기존 시스템 및 데이터를 블록체인 애플리케이션과 통합할 수 있습니다.
Hyperledger Composer는 기존 Hyperledger Fabric 블록체인 infrastructure와 runtime을 지원하며, pluggable 블록체인 합의 프로토콜을 지원함으로써 네트워크 참가자가 지정한 정책에 따라 트랜잭션의 유효성을 검증할 수 있습니다.
애플리케이션은 비즈니스 네트워크에서 데이터를 소비하고 end user에게 간단하고 제어된 액세스 포인트를 제공합니다.
Hyperledger Composer를 사용하여 기존 자산 및 이와 관련된 트랜잭션을 포함하는 현재 비즈니스 네트워크를 신속하게 모델링할 수 있습니다. 자산은 유무형 또는 무형의 상품, 서비스, 보유자산 등이 될 수 있습니다. 비즈니스 네트워크 모델의 일부로 자산과 상호작용할 수 있는 트랜잭션을 정의합니다. 비즈니스 네트워크에는 상호작용하는 참여자가 포함되며, 각 참여자는 여러 비즈니스 네트워크에서 고유한 ID로 표현됩니다.
실제 비즈니스 네트워크의 예를 들면, 부동산 중개업자는 다음과 같이 비즈니스 네트워크를 신속하게 모델링할 수 있습니다.
Assets: 주택 및 거래목록
Participants: 구매자 및 주택 소유자
Transactions: 주택 구매 및 판매, 거래내역 생성 및 종료
참가자들은 구매자, 판매자 혹은 부동산 중개업자로서 역할에 따라 거래에 대해 제한적인 액세스 권한을 가질 수 있습니다. 부동산 중개업자는 거래목록확인 및 중개를 위해 구매자와 판매자를 위한 간단한 사용자 인터페이스를 제공하기 위한 애플리케이션을 만들 수 있습니다. 또한, 이 비즈니스 네트워크는 기존 재고 시스템과 통합되어 새로운 주택을 자산으로 추가하고 판매된 부동산을 제거할 수도 있습니다. 토지등록기관이 구매자와 상호작용하여 토지의 소유권을 이전하는 경우에는 관련 당사자를 참가자로 등록할 수도 있습니다.