반응형
SMALL
하이퍼레저 컴포저
- 하이퍼레저 패브릭과 마찬가지로 리눅스 재단의 하이퍼레저 산하 프로젝트다.
- 하이퍼레저 패브릭에서 개발을 지원하는 프레임워크다.
- 하이퍼레저 패브릭 환경에 대응해 자바스크립트 기반 프레임워크를 통해 응용 프로그램을 만들 수 있다.
하이퍼레저 패브릭 비즈니스 네트워크(.bna file)
- 비즈니스 네트워크는 모델, 트랜잭션 처리 기능을 담당하는 자바스크립트 기반의 스크립트, 접근 제어를 담당하는 ACL, 질의 정의를 수행하는 쿼리(Query)의 4가지 요소로 구성된다.
- 위의 4개의 정의 파일을 BNA(Business Network Archive) 파일에 모아 템플릿으로 만들 수 있다.
# BNA 파일로 내보내기
composer archive create -a [BNA파일명] -sourceType dir -sourceName
# BNA 파일을 사용해 패브릭 환경으로 배포
composer network deploy -a [BNA파일명] -p 커넥션 프로파일명 -I PeerAdmin -s randomString
하이퍼레저 컴포저 모델(.cto file)
1. 참가자(Participants)
- 거래를 수행하는 참가자
2. 자산(Assets)
- 거래 대상 상품
3. 거래(Transactions)
- 참가자 간에 일어나는 자산의 거래
하이퍼레저 컴포저 트랜잭션 프로세서(.js @transaction 사용)
- 모델이 기본적인 클래스라면 비즈니스 로직을 구현할 때는 트랜잭션 프로세서를 사용한다.
- 트랜잭션 프로세서는 블록체인 접속 API를 이용한 트랜잭션이 실행된 시점에 자산 등의 데이터 변경을 반영할 수 있게 한다.
- 모델별로 레지스트리(Registry) API로는 ParticipantRegistry, AssetRegistry, TransactionRegistry가 있다.
하이퍼레저 컴포저 쿼리
- 쿼리는 모델 데이터의 검색을 위해 사용한다.
- SQL과 유사한 문법을 사용한다.
하이퍼레저 컴포저 ACL
- ACL은 모델에 대해 CRUD를 참여자 유형 또는 인스턴스별로 제어하는 기능이다.
하이퍼레저 컴포저 개발 도구
- Node.js SDK
- Playground
하이퍼레저 컴포저 구성 요소
하이퍼레저 컴포저 환경 구축
1. composer-cli 설치
- composer-cli는 하이퍼레저 컴포저를 조작하기 위한 기본적인 커맨드라인 도구다.
npm install -g install composer-cli@0.20
2. composer-rest-server 설치
- composer-rest-server는 하이퍼레저 컴포저를 사용해 만든 Assets나 체인코드에 접속하기 위한 REST API를 만들 때 사용한다.
npm install -g composer-rest-server@0.20.5
3. Yeoman과 generator-hyperledger-composer 설치
- Yeoman은 웹 응용 프로그램의 템플릿 생성 도구로 Yeoman 에코시스템은 generator라는 단위로 템플릿을 관리하도록 돼 있다.
- generator-hyperledger-composer는 하이퍼레저 컴포저에서 응용 프로그램을 만들기 위한 템플릿이다.
npm install -g yo
npm install -g generator-hyperledger-composer@0.20.5
4. Composer Playground 설치
npm install -g composer-playground@0.20.5
5. fabric-dev-servers 설치
- 개발, 테스트를 위한 헬퍼 스크립트를 설치한다.
- 하이퍼레저 컴포저로 구축한 응용 프로그램은 이 스크립트로 작성된 하이퍼레저 패브릭 네트워크를 사용해 테스트한다.
curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz
tar -zxvf fabric-dev-servers.tar.gz
6. Fabric Version 환경 변수 설정 및 PeerAdmin 네트워크 카드 작성
export FABRIC_VERSION=hlfv12
./createPeerAdminCard.sh
7. composer-runtime 및 composer network 설치
npm install composer-runtime --save
composer network install --archiveFile [BNA 파일] --card [peer-admin-card]
8. 배포 및 실행
composer network start --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw --archiveFile [BNA 파일] --file networkadmin.card
커넥션 프로파일
- 하이퍼레저 컴포저에서 하이퍼레저 패브릭 환경에 접속하기 위한 내용을 정의한 파일이 커넥션 프로파일이다.
- JSON 형식으로 구성돼 있으며 여러 접속 설정을 저장할 수 있다.
{
"name": "hlfv1",
"x-type": "hlfv1",
"x-commitTimeout": 300,
"version": "1.0.0",
"client": {
"organization": "Org1",
"connection": {
"timeout": {
"peer": {
"endorser": "300",
"eventHub": "300",
"eventReg": "300"
},
"orderer": "300"
}
}
},
"channels": {
"composerchannel": {
"orderers": [
"orderer.example.com"
],
"peers": {
"peer0.org1.example.com": {
"endorsingPeer": true,
"chaincodeQuery": true,
"ledgerQuery": true,
"eventSource": true
}
}
}
},
"orgarnizations": {
"Org1": {
"mspid": "Org1MSP",
"peers": [
"peer0.org1.example.com"
],
"certificateAuthorities": [
"ca.org1.example.com"
]
}
},
"orderers": {
"orderer.example.com": {
"url": "grpc://orderer.example.com:7050"
}
},
"peers": {
"peer0.org1.example.com": {
"url": "grpc://peer0.org1.example.com:7051"
}
},
"certificateAuthorities": {
"ca.org1.example.com": {
"url": "http://ca.org1.example.com:7054",
"caName": "ca.org1.example.com"
}
}
}
비즈니스 네트워크에 접속하기 위한 API
1. Admin API
- Admin API는 컴포저 응용 프로그램을 관리하는 기능을 가진 API로서 AdminConnection 클래스에 정의돼 있다.
- AdminConnection 클래스를 사용하면 하이퍼레저 컴포저 런타임과 연결할 수 있다.
- 비즈니스 네트워크 정의를 배포하거나 커넥션 프로파일 스토어 안에 커넥션 프로파일 문서를 보관하는 일 등이 가능하다.
2. Client API
- Client API는 배포된 컴포저 응용 프로그램에 자산을 추가하거나 트랜잭션을 등록하는 기능을 가진 API로서 몇 개의 클래스로 구성돼 있다.
반응형
LIST
'Blockchain' 카테고리의 다른 글
Near 블록 데이터 구조 (0) | 2024.11.07 |
---|---|
Hyperledger Fabric Test-Network-K8S 분석 (0) | 2022.11.09 |
[Blockchain] 하이퍼레저 패브릭(Hyperledger Fabric) (0) | 2022.08.12 |
[Ethereum] 이더리움 알아보기 (0) | 2022.02.21 |
[Blockchain] 하이퍼레저 패브릭(Hyperledger Fabric) 환경 구성 (0) | 2021.07.06 |