블록체인 플랫폼의 성능은 트랜잭션 크기, 블록 크기, 네트워크 크기, 하드웨어 성능 등 다양한 변수의 영향을 받습니다. Hyperledger 커뮤니티는 현재 성능 및 스케일 작업 그룹 내에서 시험용 세트를 개발중이며, Hyperledger Caliper라고하는 벤치마킹 프레임워크를 구현했습니다.
IBM Research 팀은 Hyperledger Fabric의 아키텍처와 성능을 평가한 동료 검토 논문을 발간했으며, 그 작업은 개속 개발되고 블록체인 플랫폼 성능 및 스케일 특성의 결정적인 기준으로 여겨져야 합니다. 이 논문은 Fabric 아키텍처에 대한 심층적인 토론을 제시하고 Hyperledger Fabric v1.1의 예비 릴리즈를 사용해 플랫폼의 팀 내 성능 평가에 대해 보고하고 있습니다.
연구팀이 수행한 벤치마킹 작업은 Fabric v.1.1.0 릴리즈에서 상당한 성능 향상을 가져와 v1.0.0 릴리즈 레벨에서 플랫폼의 전체 성능을 두 배 이상 향상시켰습니다.
Conclusion
블록체인 플랫폼에 대한 심도깊은 평가는 Hyperledger Fabric을 포함시켜야 합니다.
패브릭의 차별화된 기능은 유연한 신뢰가정을 지원하는 허가형 블록체인의 확장성을 증가시켰으며, 이는 플랫폼이 정부, 금융, 공급망, 불류, 의료 등 보다 더 광범위한 기업 유즈케이스를 지원할 수 있도록 해줍니다.
더 중요한 것은 하이퍼레저 패브릭이 (현재) 10개의 하이퍼레저 프로젝트 중 가장 활발하다는 것입니다. 플랫폼을 중심으로한 커뮤니티 구축이 꾸준히 진해오디고 있으며, 이후 출시될 때마다 제공되는 혁신은 다른 기업용 블록체인 플랫폼과 비교할 때 훨씬 앞서고 있습니다.
트랜잭션 주문은 합의를 위한 모듈식 구성요소로 위임되며 이는 트랜잭션을 실행하고 원장을 유지하는 피어들과 논리적으로 분리됩니다. 특히, 주문 서비스가 그러합니다. 합의가 모듈화되어있기 때문에, 구현할 때 특정 배포 또는 솔루션의 신뢰 가정에 따라 조정할 수 있습니다. 이 모듈식 아키텍처를 통해 플랫폼은 CFT(crash fault-tolerant) 또는 BFT(byzantine fault-tolerant) 주문을 위해 잘 정립된 툴킷에 의존할 수 있습니다.
패브릿은 현재 두 가지 CFT 오더링 서비스에 대한 구현을 제공합니다. 첫 번째는 Raft 프로토콜의 etcd 라이브러리를 기반으로 하고, 다른 하나는 카프카 (내부적으로 주키퍼를 사용) 입니다. 현재 사용 가능한 오더링 서비스에 대한 정보는 아래 링크를 참고하세요.
고양이 필수품 중 하나!!! 바로바로 캣타워입니다. 우리 귀탱이를 처음 데려왔을 때는 점프도 잘 못하는 상태였기 때문에 너무 높아 위험하지 않은 미니 캣타워를 만들어 주었는데요, 다이소용품으로 대략 20,000원 정도가 나왔습니다. 먼저 결과물부터 보시죠.
캣타워 1차 완성
제법 그럴듯하죠? 주 재료는 다이소 네트망과 케이블 타이입니다. 나머지 바구니, 방석, 담요, 인형 등은 아깽이의 취향에 맞게 배치해주시면 될 것 같아요. 이 때 귀탱이는 300~400g 정도 나가는 아깽이였기 때문에 이정도 준비물로도 만족스러운 캣타워가 나왔습니다. 케이블타이는 원래 집에 있었고, 네트망 및 부재료는 다이소 오프라인 매장에서 구매했습니다.
다이소 네트망 코너
준비물
- 다이소 네트망 (69*29.5 CM) x 7개 / 오프라인 구매가: 2,000 x 7 = 14,000원)
- 다이소 네트망 (29.5*29. CM) x 3개 / 오프라인 구매가: 1,000 x 3 = 3,000원)
저는 위와 같이 2만원어치를 구매했구요, 이 외에 케이블타이, 미끄럼 방지를 위해 발판을 감싸준 천, 담요, 인형 등은 집에 굴러다니던 것들을 활용했습니다.
만드는 방법은 먼저 큰 네트망으로 캣타워 뼈대를 잡아줍니다. 저는 기존에 안쓰던 좌식책상 한 쪽 면을 축으로 잡아서 왼쪽 1개 뒷판 2개 오른쪽 3개를 사용했습니다. 남은 큰 네트망 1개와 작은 네트망 3개는 계단으로 사용했구요. 케이블 타이를 끊었다 묶었다 첫 제작이라 시행착오를 엄청나게 겪어 중간 과정이 없는게 아쉽네요.
우리 귀탱이는 저기에 아장아장 오르내리기도 하고 다이소 방석있는 층을 굉장히 맘에 들어해서 저기서 인형가지고 놀기도 하고 낮잠도 잡니다.
이 캣타워를 시작으로 수제 캣타워 계속계속 업그레이드 해서 사용하고 있는데요. 그 후기도 조만간 이어 쓰도록 하겠습니다. 네트망으로 첫 시작을 했을 때 장점은 일단 저렴한 가격!!! 플러스 아깽이 성장속도에 맞춰서 위험하지 않을 정도로 천천히 올려줄 수 있구요, 질려할 때 쯤이면 케이블 타이만 끊고 새로 만들어 줄 수 있다는 점이 좋아요. 또 박스로 만든 것 보다 청소하기 쉽구요. 다만 단점은 계단으로 사용하는 네트망은 천이건 부직포건 미끄럼 + 발빠짐 방지를 위한 작업을 해줘야 한다는 것이죠.
캣폴, 캣워크, 캣타워 다양한 종류가 있는데 무엇이든 고양에게는 수직 공간이 필요하다고 해요. 의식주만 챙겨주면 된다고 생각하시는 분들이 많겠지만, 수직 공간 또한 고양이의 삶의 질에 큰 영향을 미친다고 하니, 비싼 캣타워가 부담되신다면 네트망을 이용해 직접 제작해보시는데 이 글이 조금이나마 도움이 되길 바랍니다.
마무리는 이후 캣타워 업그레이드 중 방해하는 귀탱 뽀짝이 사진으로! 캣타워 업그레이드 과정도 다음에 정리해서 올려보겠습니다.
앞서 논한 것 처럼 PoW를 합의 모델로 사용하는 무허가형 퍼블릭 블록체인 네트워크에서는 모든 노드에서 트랜잭션이 실행된다. 이는 즉, 계약 자체나 거래 데이터에 기밀성이 존재할 수 없음을 의미한다. 모든 트랜잭션과 이를 구현하는 코드는 네트워크의 모든 노드에서 볼 수 있다. 이 경우 우리는 PoW가 제공하는 byzantine fault tolerant와 데이터 및 계약에 대한 기밀성을 교환했다.
이러한 기밀성의 부족은 많은 사업/기업 유즈케이스에서 문제가 될 수 있다. 예를 들어 공급망 파트너 네트워크에서 일부 소비자는 관계를 강화하거나 추가 판매를 촉진하는 수단으로 선호하는 가격을 제공받을 수 있다. 모든 참여자가 모든 계약 및 거래를 볼 수 있다면 완전히 투명한 네트워크에서 그러한 비즈니스 관계를 유지하는 것이 불가능해진다. - 누구나 보다 더 좋은 가격을 원할 것이다.
두 번째 예로, 증권업계를 고려해보자. 중개인이이 자리를 잡거나 혹은 처분하는 경우 중개인은 경쟁사에 이를 알리고 싶지 않을 수도 있고, 상대방의 시작을 약화시키기 위한 방법을 찾으려고 할 수도 있다.
기업 유즈케이스 요구사항 의도에 대한 개인정보보호 및 기밀유지에 대한 문제를 해결하기 위해 블록체인 플랫폼은 다양한 접근법을 채택했다. 이들 모두는 절충점이 있다.
데이터 암호화는 기밀성을 제공하는 한 가지 방법이다. 그러나 PoW를 합의방식으로 사용하는 무허가형 네트워크에서 암호화된 데이터는 모든 노드에 있다. 충분한 시간 및 자원이 주어지면 암호화가 깨질 수 있다. 많은 기업 유즈케이스에서 정보가 손상될 수 있는 위험은 용납될 수 없다.
ZKP(Zero Knowledge proofs)는 이 문제를 해결하기 위해 연구중인 또 다른 영역이며, 현재 ZKP를 계산하는 데는 상당한 시간 및 자원이 필요하다. 따라서 이 경우의 절충은 기밀성을 위한 성능이다.
대안 형태의 합의방식을 활용할 수 있는 허가형 환경에서는 기밀 정보의 배포를 인증된 노드로만 제한하는 접근법을 모색할 수 있다.
허가형 플랫폼인 Hyperledger Fabric은 채널 아키텍처를 통해 기밀성을 보장한다. 기본적으로 패브릭 네트워크는 "채널"을 설립할 수 있다. 이 채널은 특정 트랜잭션 집합에 가시성을 부여해야 하는 참가자들 간 생성된다. 이 것을 네트워크 오버레이라고 생각해보자. 즉, 채널에 참여하는 노드만 스마트 컨트랙트(체인코드)에 접근하여 데이터를 처리하므로 개인정보보호 및 기밀성 모두 유지된다.
개인정보보호와 기밀성을 모두 향상시키기 위해, 패브릭은 private data를 지원하도록 추가했고, 이는 향후 ZKP위에서 동작할 것이다. 이와 관련해서는 향후 더 많은 것들이 가능해질 것이다.
입장해서 처음 간 곳은 가상 오케스트라 체험관! VR 기기를 쓰면 오케스트라 장에 온 듯 연주가 들리는데요, 긴 버전, 짧은 버전 등 직원 분이 처음에 친절하게 어떤 걸 들을지 설명해주십니다. 첫 체험이었는데 진짜 신기했어요. 다음에 또 하고 싶은!!!
두 번째로 입장한 곳은 무민이 방! 컬러풀한 쿠션들과 무민 캐릭터들을 전시해두었네요. 전시장 한 쪽에는 직접 그리고 체험할 수 있는 형태로 종이와 색연필이 준비되어 있었습니다.
무민을 따라 그려보려 했는데...어...무민....ㅠㅠㅠㅠㅠ어렵네요.
다음은 그래피티 공간!!! 영상으로 그래피티의 역사나, 초창기 형태 등을 보여주는데 그것도 신기했고, 벽에 걸린 작품들도 감상했습니다. 연도별로 그래피티 작품들이 쭉 전시되어 있었어요. 같이 간 친구는 그래피티 책 한 권 살까 유혹당했습니다.ㅋㅋㅋㅋ 여기도 역시나 체험공간이! 직접 그려볼 수 있게 마카펜과 종이, 따라할 수 있는 가이드북이 준비되어 있었습니다.
이 외에도 다양한 룸이 많았는데, 세션 별 분위기가 다양해서 지루하지 않게 즐길 수 있었습니다. 또 우리나라 박물관 / 미술관과 비교했을 때 체험할 수 있는 형태가 많아 좀 더 편안한 느낌이었어요.
이번 단계별 튜토리얼에서는 비즈니스 네트워크 설정, 자산정의, 참가자 및 트랜잭션 정의, 참여자 및 자산 생성을 통한 네트워크 테스트, 그리고 트랜잭션 제출을 통해 자산 소유권을 변경하는 방법에 대해 설명합니다. 이 튜토리얼은 Playground 환경을 사용하여 Hyperledger Composer 개념을 소개하기 위한 것입니다.
Step One: Open the Hyperledger Composer Playground
/**
* Track the trade of a commodity from one trader to another
* @param {org.example.mynetwork.Trade} trade - the trade to be processed
* @transaction
*/
async function tradeCommodity(trade) {
trade.commodity.owner = trade.newOwner;
let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity');
await assetRegistry.update(trade.commodity);
}
이 함수는 단순히 들어오는 Trade 트랜잭션의 newOwner 속성을 기반으로 commodity의 owner 속성을 변경합니다. 그리고 나서 변경된 Commodity는 asset registry로 다시 들어오고 Commodity 인스턴스를 저장하는데 사용됩니다.
Step Six: Access control
Access control 파일은 비즈니스 네트워크의 접근 제어 규칙을 정의합니다. 우리 네트워크는 단순하기 때문에 default access control 파일을 수정할 필요가 없습니다. 기본 파일은 현재 참가자인 networkAdmin에게 비즈니스 네트워크와 시스템 레벨에서의 동작에 대한 전체 접근 권한을 부여합니다.
여러 개의 모델이나 스크립트 파일을 갖고 있어도, access control 파일은 한 개만 가질 수 있습니다.
이제 우리는 두 명의 참가자를 가지고 있습니다. 이제 두 참가자 간 거래할 무언가가 필요합니다. 자산을 생성하는 것은 참가자를 생성하는 것과 매우 유사합니다. 우리가 생성할 Commodity는 owner 속성을 가지고 있으며 이는 TRADE!이라는 tradeId를 가진 Trader가 소유하고 있음을 의미합니다.
1. 먼저 Assets 아래 Commodity 탭을 클릭한 후 Create New Asset을 클릭하세요.
Step Eleven: Transferring the commodity between the participants
우리는 두 명의 참가자와 그들 간 거래할 수 있는 Commodity를 갖고 있습니다. 이제 Trade 트랜잭션을 테스트 해보겠습니다.
트랜잭션은 Hyperledger Composer의 비즈니스 네트워크에서 일어나는 모든 변화의 기본이 되는 것입니다. 이 튜토리얼 후에 스스로 연습해보고 싶다면 My Business Network화면에서 다른 비즈니스 네트워크를 생성하고 좀 더 고급 비즈니스 네트워크 템플릿을 사용해 보세요.
5. 자산의 data 섹션으로 넘어가 우리가 보유한 자산의 소유자가 TRADER1에서 TRADER2로 변경되었는지 확인하세요. 아마 resource:org.example.mynetwork.Trader#TRADER2와 같은 문구를 확인할 수 있을 것입니다.
6. 비즈니스 네트워크 내 모든 트랜잭션 기록을 보기 위해 왼쪽의 All Transactions를 클릭하세요. 여기에는 제출된 모든 트랜잭션의 리스트가 있습니다. UI를 사용해 Trader같은 참가자를 생성하거나, Commodity같은 자산을 생성하거나 한 행동은 우리 비즈니스 네트워크 모델에서 트랜잭션으로 정의되어있지 않더라도 모두 트랜잭션으로 기록됩니다. 이런 트랜잭션을 '시스템 트랜잭션'이라고 부르며 모든 비즈니스 네트워크에 공통으로 적용됩니다. 이는 Hyperledger Composer Runtime에 정의되어 있습니다.
Logging out of the business network
이제 트랜잭션이 성공적으로 동작했으므로 비즈니스 네트워크 접속을 종료해야 합니다. 우리가 처음 시작했던 My Business Network 화면에서 끝나야 합니다.
우측 상단의 admin이라는 버튼을 클릭하세요. 이 버튼은 로그아웃할 사용자의 현재 신원 리스트를 보여줍니다. 드롭다운 메뉴를 펼치기 위해 admin을 클릭하고 My Business Network를 클릭하세요.
Deploying a Business Network to a real Fabric
Playground를 로컬에서 사용하면 로컬 저장소에서 동작하는 "웹 브라우저"에 연결할 수 있습니다. 혹은 일반적으로 "hlfv1"이라 불리는 그룹에서 실제 Fabric에 연결할 수 있습니다.
실제 Fabric에 연결하는 경우 PeerAdmin 및 ChannelAdmin 역할을 가진 카드를 생성했을 가능성이 싰습니다. 이 카드는 보통 PeerAdmin이라고 합니다. 이는 Composer로 네트워크를 배포 및 업데이트 하는 데 사용됩니다.
네트워크를 실제 패브릭에 배포할 때 배포 버튼을 클릭하기 전에 완료해야할 추가 필드가 있습니다. 바로 네트워크 관리자의 세부 정보를 제공하는 것입니다.
배포 화면의 맨 아래로 스크롤하면 CREDENTIALS FOR NETWORK ADMINISTRATOR를 찾을 수 있습니다. 간단한 패브릭 개발 및 테스트 네트워크의 경우 ID와 비밀번호를 제공할 수 있습니다. (ID : admin / Secret : adminpw)
ID와 Secret이 지정되면 배포 버튼을 클릭하고 Step Three에서 튜토리얼을 시작할 수 있습니다.
사용자 정의 혹은 패브릭 제품을 사용하는 경우 패브릭 관리자에게 네트워크 관리자에 대한 자세한 내용을 문의하십시오.
Updating a Business Network when connected to a real Fabric
실제 Fabric을 사용하고 변경사항 배포를 클릭하면 드롭다운 목록에서 Installation 카드 및 Upgrade 카드를 지정하라는 팝업창이 나타납니다. 일반적으로 초기 네트워크 배포에 사용된 것과 동일한 PeerAdmin 카드를 지정합니다. 확실치 않은 경우 패브릭 관리자에게 문의하십시오.
카드를 선택하고 업그레이드 버튼을 클릭하세요. 실제 패브릭에서는 완료하는 데 몇 분이 걸리 수 있습니다.
다음으로 스크립트를 실행하십시오. 실행 중에 sudo를 잠시 사용하기 때문에 암호를 입력하라는 메시지가 나타납니다.
./prereqs-ubuntu.sh
[Installing the development environment]
다음 지침에 따라 Hyperledger Composer 개발 도구 (주로 비즈니스 네트워크를 만드는데 사용됨)를 설치하고 Hyperledger Fabric (주로 비즈니스 네트워크를 로컬로 실행/배포하는데 사용됨)을 설치하십시오. 제작한 비즈니스 네트워크는 다른 환경에서 Hyperledger Fabric 런타임에도, 예를 들어 클라우드 플랫폼 같은 곳에도 배포할 수 있습니다.
Before you begin
pre-requisites 설치 지침에 따라 필수 사전 요구사항을 설치했는지 확인하십시오.
이 가이드에서는 이전에 도구를 설치한 적이 없다고 가정합니다. 그렇지 않은 경우, 이 가이드를 따라하기 전에 이전 설정이 완전히 지워졌는지 확인할 수 있습니다. 이를 수행하는 방법을 배우려면 부록으로 이동합니다.
Composer는 유연성을 제공하고 개발자, 테스트 및 배포 시나리오의 수를 최대화하기 위해 npm으로 설치할 수 있는 구성요소 세트가 제공되며 CLI에서 제어할 수 있습니다. 이 가이드는 모든 것을 먼저 설치한 다음 개발환경을 제어하는 방법을 알려줍니다.
Installing components
Step1 : Install the CLI tools
Composer 개발자를 위한 몇 가지 유용한 CLI 도구가 있습니다. 가장 중요한 것은 모든 필수 작업을 포함하고 있는 composer-cli입니다. 이것을 먼저 설치한 다음 우리는 generator-hyperledger-composer, composer-rest-server, Yeoman을 설치합니다. 마지막 3가지는 개발환경의 핵심파트는 아니지만 비즈니스 네트워크와 상호작용하는 애플리케이션을 개발할 때나 튜토리얼을 따라할 때 유용할 것입니다.
다음 npm 명령에는 su 또는 sudo를 사용하지 마십시오.
1. 필수 CLI 도구:
npm install -g composer-cli@0.20
2. RESTful API로 비즈니스 네트워크를 노출하기 위해 컴퓨터에서 REST 서버를 실행하는 유틸리티:
2. VSCode를 열고 Extensions로 이동한 다음 마켓플레이스에서 Hyperledger Composer extension을 검색하여 설치하십시오.
Step 4 : Install Hyperledger Fabric
이 단계는 비즈니스 네트워크를 배포할 로컬 Hyperledger Fabric 런타임을 제공합니다.
1. 원하는 디렉토리 (~/fabric-dev-servers로 가정) 에서 Hyperledger Fabric을 설치할 수 있는 도구가 들어있는 .tar.gz 파일을 획득하세요.
mkdir ~/fabric-dev-servers && cd ~/fabric-dev-servers curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz tar -xvf fabric-dev-servers.tar.gz
원하는 경우 zip도 사용할 수 있습니다. .tar.gz파일을 fabric-dev-servers.zip으로 바꾸고 tar -xvf 명령을 unzip 명령으로 바꿉니다.
cd ~/fabric-dev-servers export FABRIC_VERSION=hlfv12 ./downloadFabric.sh
2. 다운로드하여 추출한 스크립트를 사용해 Hyperledger Fabric v1.2 런타임을 다운로드하십시오:
축하합니다. 이제 일반적인 개발환경에 필요한 모든 것을 설치했습니다. 이 환경에서 블록체인 비즈니스 네트워크를 개발하고 테스트하기 위해 할 수 있는 가장 일반적인 것들에 대해 알아보세요.
[Controlling your dev environment]
Starting and stopping Hyperledger Fabric
기본 설정을 따르면 ~/fabric-dev-servers에서 찾을 수 있는 스크립트들을 사용해 런타임을 제어합니다.
처음으로 새 런타임을 시작할 때는 시작 스크립트를 실행한 다음 PeerAdmin 카드를 생성해야 합니다:
cd ~/fabric-dev-servers export FABRIC_VERSION=hlfv12 ./startFabric.sh ./createPeerAdminCard.sh
~/fabric-dev-servers/stopFabric.sh를 사용하여 런타임을 시작 및 중지하고, ~/fabric-dev-servers/startFabric.sh를 사용하여 다시 시작할 수 있습니다.
개발 세션이 끝나면 ~/fabric-dev-servers/stopFabric.sh를 싱행한 다음 ~/fabric-dev-servers/teardownFabric.sh를 실행합니다. teardown 스크립트를 실행한 경우 다음에 런타임을 시작할 때 처음 시작할 때와 마찬가지로 새로운 PeerAdmin 카드를 만들어야 합니다.
로컬 런타임은 개발 용도로 자주 시작, 중지 및 해제하기 위한 것입니다. 좀 더 영구적인 상태의 런타임을 원한다면 dev 환경 외부에서 하나를 실행하고 비즈니스 네트워크를 배포할 수 있습니다. 예를 들어 Kubernets를 통해 실행하거나 IBM Cloud 같은 관리 플랫폼에서 실행할 수 있습니다.
[Start the web app ("Playground")]
웹앱을 시작하기 위해 다음 명령어를 실행하세요:
composer-playground
보통 다음 주소에서 브라우저를 자동으로 엽니다.
http://localhost:8080/login
웹 애플리케이션의 "My Business Network" 화면에서 createPeerAdminCard 스크립트로 만든 PeerAdmin@hlfv1 카드를 볼 수 있습니다. 이 카드가 보이지 않으면 런타임이 제대로 시작된 것이 아닙니다.
축하합니다. 모든 구성요소가 실행중입니다. 또한 dev 세션을 끝내면 중지하고 해제하는 방법을 알 수 있습니다.
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자산으로 트랜잭션을 저장합니다.