* 본 포스팅은 하이퍼레저 패브릭 docs를 번역한 내용으로, 번역 과정에서 잘못된 부분이 있을 수 있습니다.
상세 내용은 하단 링크를 참조 부탁드리며, 잘못된 내용에 대한 피드백은 언제든 환영합니다 : )
https://hyperledger.github.io/composer/latest/business-network/bnd-deploy

 

Deploying Business Networks | Hyperledger Composer

Deploying Business Networks Before a business network definition can be deployed it must be packaged into a Business Network Archive (.bna) file. The composer archive create command is used to create a business network archive file from a business network

hyperledger.github.io

비즈니스 네트워크 정의는 배포되기 전에 비즈니스 네트워크 아카이브 (.bna) 파일로 패키징되어야 합니다. composer archive create 커맨드는 디스크에 있는 비즈니스 네트워크 정의 폴더에서 비즈니스 네트워크 아카이브 파일을 생성하느데 사용됩니다.

비즈니스 네트워크 아카이브 파일이 생성되면 composer network start 커맨드 이후 composer network install 커맨드를 통해 하이퍼레저 패브릭에 배포할 수 있습니다.

예를 들면 아래와 같습니다.

composer network install --archiveFile tutorial-network@1.0.0.bna --card PeerAdmin@fabric-network
composer network start --networkName tutorial-network --networkVersion 1.0.0 --card PeerAdmin@fabric-network --networkAdmin admin --networkAdminEnrollSecret adminpw

이미 배포된 비즈니스 네트워크에 비즈니스 네트워크 정의를 업그레이드하려면 composer network upgrade CLI 커맨드를 사용합니다.

 

Deploying business networks to Hyperledger Fabric v1.2

하이퍼레저 패브릭 v1.2에서 피어는 관리자와 멤버 컨셉을 사용합니다. 관리자는 새로운 비즈니스 네트워크를 위한 하이퍼레저 패브릭 체인코드를 피어들에게 설치할 수 있는 권한을 가집니다. 멤버들은 체인코드를 설치할 권한이 없습니다. 피어들에게 비즈니스 네트워크를 배포하기 위해서는 모든 피어에 대한 관리 권한이 있는 identity를 제공해야 합니다.

이런 identity를 만들고 certificates를 사용가능하게 하려면 피어 관리자 신원과 관련된 certificate와 private key를 사용해 피어 관리자 비즈니스 네트워크 카드를 생성해야 합니다. 하이퍼레저 컴포저는 샘플 하이퍼레저 패브릭 v1.2 네트워크를 제공합니다. 이 네트워크의 피어 관리자는 PeerAdmin이라 불리며 이 관리자의 신원은 네트워크를 시작하기 위해 샘플 스크립트를 사용할 때 자동으로 import됩니다. 다른 하이퍼레저 패브릭 네트워크에서는 피어 관리자가 다른 이름을 가질 수도 있음에 주의하세요.

중요: 비즈니스 네트워크를 하이퍼레저 패브릭 v1.2에 배포할 때, bootstrap registrar는 하이퍼레저 패브릭 Certificate Authority (CA) 환경설정에 정의되어 있습니다. 하이퍼레저 컴포저 개발환경은 bootstrap registrar의 등록 ID와 secret으로 미리 설정된 하이퍼레저 패브릭 객체를 포함하고 있습니다.

 

Business network administrators

비즈니스 네트워크를 배포할 때, 접근 제어는 비즈니스 네트워크 정의에 명시된 접근 제어 규칙마다 이루어집니다. 각 비즈니스 네트워크는 적어도 한 명의 참가자를 보유해야 합니다. 그리고 그 참가자는 비즈니스 네트워크에 접속할 수 있는 유효한 신원을 갖고 있어야 합니다. 그렇지 않으면 클라이언트 애플리케이션은 비즈니스 네트워크와 상호작용할 수 없습니다.

비즈니스 네트워크 관리자는 비즈니스 네트워크 배포 후에 해당 조직의 비즈니스 네트워크 구성을 설정하는 역할을 하는 참가자입니다. 또한 해당 조직의 다른 참가자들을 참여시키는 역할도 합니다. 비즈니스 네트워크는 여러 조직을 포함하기 때문에 주어진 비즈니스 네트워크용 다수의 비즈니스 네트워크 관리자가 있어야합니다.

내장된 참가자 유형인 org.hyperledger.composer.system.NetworkAdmin은 하이퍼레저 컴포저가 제공하는 비즈니스 네트워크 관리자를 나타냅니다. 이 내장된 참가자 유형은 특별한 권한을 갖고 있지 않습니다. 그냥 비즈니스 네트워크 정의에 명시된 접근 제어 규칙의 주체입니다. 그렇기 때문에 아래 접근 제어 규칙 샘플을 통해 비즈니스 네트워크 관리자에게 비즈니스 네트워크에 접근할 수 있는 모든 권한을 부여하는 것을 추천합니다.

rule NetworkAdminUser {
    description: "Grant business network administrators full access to user resources"
    participant: "org.hyperledger.composer.system.NetworkAdmin"
    operation: ALL
    resource: "**"
    action: ALLOW
}

rule NetworkAdminSystem {
    description: "Grant business network administrators full access to system resources"
    participant: "org.hyperledger.composer.system.NetworkAdmin"
    operation: ALL
    resource: "org.hyperledger.composer.system.**"
    action: ALLOW
}

기본적으로, 하이퍼레저 컴포저는 자동으로 배포중에 한 명의 비즈니스 네트워크 관리자인 참가자를 생성합니다. 이 신원은 비즈니스 네트워크를 배포하는데 사용되며 비즈니스 네트워크 관리자인 참가자와 바인딩되어 있습니다. 그래서 이 신원은 배포 후 비즈니스 네트워크와 상호작용하는데 사용됩니다.

하이퍼레저 패브릭 피어 관리자는 하이퍼레저 CA를 사용해 새로운 신원을 발생하는 권한을 갖고 있지 않을 것입니다. 이는 비즈니스 네트워크 관리자가 조직에 다른 참가자들을 참여시키는 능력을 제한합니다. 이러한 이유로 하이퍼레저 패브릭 CA를 사용해 새로운 신원을 발급할 수 있는 권한을 가진 비즈니스 네트워크 관리자를 생성하는 것을 선호합니다.

composer network start커맨드에 추가 옵션을 사용해 비즈니스 네트워크 배포 중에 생성되는 비즈니스 네트워크 관리자를 명시할 수 있습니다. 

비즈니스 네트워크 관리자가 등록된 ID와 secret을 갖고 있다면 -A (비즈니스 네트워크 관리자)와 -S (비즈니스 네트워크 관리자가 사용하는 secret) 플래그를 사용할 수 있습니다. 예를 들어 아래 커맨드는 기존 admin ID의 비즈니스 네트워크 관리자를 생성하는 커맨드입니다.

composer network start --networkName tutorial-network --networkVersion 1.0.0 --c PeerAdmin@fabric-network -A admin -S adminpw

 

Deploying business networks using Playground locally

주의: 비즈니스 네트워크를 하이퍼레저 패브릭 v1.2에 배포하기위해 로컬 플레이그라운드 객체를 사용할때, 배포 과정의 일부분으로 초기 비즈니스 네트워크 참가자용 credentials을 어떻게 제공할지 선택해야 합니다. 초기 참가자는 NetworkAdmin이 될 것입니다.

플레이그라운드를 사용해 비즈니스 네트워크를 배포할 때, 초기 참가자를 위한 credentials를 입력할 것입니다. credentials는 certificate로 제공되거나 이미 정의된 ID, secret으로 사용할 수 있습니다. 하이퍼레저 컴포저 개발환경에 셋팅된 하이퍼레저 패브릭 객체를 사용한다면, bootstrap registrar ID는 admin이고 secret은 adminpw입니다. 이 초기 참가자는 하이퍼레저 패브릭 CA에 있는 bootstrap registrar용으로 설정된 credentials를 사용하며 이는 NetworkAdmin이 될 것입니다.

로컬에서 플레이그라운드를 사용해 비즈니스 네트워크를 배포할 때, 적어도 하나의 비즈니스 네트워크 카드는 PeerAdmin 역할을 해야 하며 또 하나는 ChannelAdmin 역할을 해야 합니다. 이 비즈니스 네트워크 카드는 각각 올바른 admin certificates를 갖고 있어야 합니다.

* 본 포스팅은 하이퍼레저 패브릭 docs를 번역한 내용으로, 번역 과정에서 잘못된 부분이 있을 수 있습니다.

상세 내용은 하단 링크를 참조 부탁드리며, 잘못된 내용에 대한 피드백은 언제든 환영합니다 : ) 

https://hyperledger.github.io/composer/latest/business-network/businessnetworkdefinition

 

Business Network Definitions | Hyperledger Composer

Business Network Definition The Business Network Definition is a key concept of the Hyperledger Composer programming model. They are represented by the BusinessNetworkDefinition class, defined in the composer-common module and exported by both composer-adm

hyperledger.github.io

비즈니스 네트워크 정의는 하이퍼레저 컴포저 프로그래밍 모델의 주요 컨셉입니다. 이는 BusinessNetworkDefinition 클래스에 나타나 있으며 composer-common 모듈에 정의되어 있습니다. 또한 이는 composer-admin과 composer-client 모두에게 export됩니다.

비즈니스 네트워크 정의는 다음과 같이 구성되어 있습니다.

  • 일련의 모델 파일들
  • 일련의 자바스크립트 파일들
  • 접근 제어 파일

모델 파일들은 비즈니스 네트워크를 위한 비즈니스 도메인을 정의하고, 자바스크립트 파일들은 트랜잭션 처리 함수를 포함하고 있습니다. 트랜잭션 처리 함수는 하이퍼레저 패브릭에서 동작하고 하이퍼레저 패브릭 블록체인의 world state에 저장되어 있는 asset registry들에 접근할 수 있습니다.

 

모델 파일들은 모델 요소(asset, participant, transaction)의 구조나 관계를 정의하기 때문에 보통 비즈니스 분석가에 의해 생성됩니다. 

 

자바스크립트 파일들은 보통 비즈니스 분석가가 제공한 비즈니스 요구사항을 구현하는 개발자들에 의해 생성됩니다.

 

접근 제어 파일은 일련의 접근 제어 규칙들을 포함하고 있으며 비즈니스 네트워크의 다른 참가자들의 권리를 정의합니다.

 

비즈니스 네트워크 정의가 한번 정의되면 이는 composer 커맨드라인 인터페이스를 사용해 아카이브로 패키징될 수 있습니다. 이 아카이브는 composer-admin모듈의 AdminConnection 클래스를 사용해 패브릭에 배포되거나 업데이트될 수 있습니다. 

* 본 포스팅은 하이퍼레저 패브릭 docs를 번역한 내용으로, 번역 과정에서 잘못된 부분이 있을 수 있습니다.

상세 내용은 하단 링크를 참조 부탁드리며, 잘못된 내용에 대한 피드백은 언제든 환영합니다 : ) 

https://hyperledger.github.io/composer/latest/business-network/bnd-create

 

Create a Business Network Definition | Hyperledger Composer

Create a Business Network Definition A business network definition has the following layout: models/ (optional) lib/ permissions.acl (optional) package.json README.md (optional) The easiest way to create a new business network definition is to either git c

hyperledger.github.io

비즈니스 네트워크 정의는 아래 구조로 이루어져 있다.

models/ (optional)
lib/
permissions.acl (optional)
package.json
README.md (optional)

비즈니스 네트워크 정의를 생성하는 가장 쉬운 방법은 git clone에서 예제를 다운받거나 하이퍼레저 컴포저 Yeoman 제너레이터를 사용해 기본 비즈니스 네트워크를 생성하는 것이다.

 

README.md

Markdown 마크업언어를 사용하는 비즈니스 네트워크 목적에 대한 설명

 

Package.json

비즈니스 네트워크 정의는 이름 (아스키 알파벳과 -로 제한), 사람이 읽을 수 있는 description, 버전 번호를 갖고 있다. 네트워크 버전 번호는 Major.Minor.Micro 형태여야 하며 버전 번호를 올릴 때는 Semantic Versioning 원칙을 따라야 한다.

http://semver.org/

 

Semantic Versioning 2.0.0

Semantic Versioning spec and website

semver.org

네트워크 식별자는 이름, -, 버전 번호로 구성된다. 유효한 식별자는 예를 들어 mybusinessnetwork-1.0.3과 같다.

 

비즈니스 네트워크 정의의 메타데이터는 package.json에서 읽을 수 있으며, 이는 비즈니스 네트워크 정의가 npm 패키지에서도 유효함을 의미한다.

 

Models

비즈니스 네트워크 정의에 대한 일련의 도메인 모델은 네트워크 내에서 혹은 외부 시스템 (예를 들어 네트워크로 트랜잭션을 제출하는 시스템) 과 통합되었을 때 유효한 타입을 정의한다.

 

도메인 모델은 비즈니스 네트워크 정의와 패키징될 수 도 있고 (보통 models 폴더 아래 저장), 외부 종속성으로 package.json에 명시될 수도 있다. 비즈니스 네트워크 정의 간 공유하기를 원하면 npm dependency를 사용해 모델을 참조할 수도 있다.

 

 

Scripts

비즈니스 네트워크 정의 스크립트는 보통 lib 폴더 아래 저장되고 비즈니스 네트워크 정의와 함께 패키징된다. 스크립트는 ES 5 JavaScript로 작성되며 비즈니스 네트워크의 도메인 모델에 정의된 타입을 참조한다.

 

 

Permissions.acl

노출된 비즈니스 네트워크에 대한 권한은 permissions.acl 파일에 작성되기도 한다.

 

 

Cloning an Example Business Network Definition

샘플 비즈니스 네트워크 정의는 다음 Github에 저장되어 있다.

https://github.com/hyperledger/composer-sample-networks

 

hyperledger/composer-sample-networks

Sample business network definitions for Composer. Contribute to hyperledger/composer-sample-networks development by creating an account on GitHub.

github.com

이 저장소를 git clone해서 샘플 네트워크를 사용할 수 있으며, 각 샘플 네트워크는 packages 폴더 아래 저장되어 있다.

 

 

Generating a Business Network Definition

Generation

  1. yo hyperledeger-composer
? Please select the type of project: (Use arrow keys)
❯ Angular
  Business Network
  Model

 

비즈니스 네트워크를 선택한다.

  1. 아래 질문에 답변한다.
Welcome to the Hyperledger Composer project generator
? Please select the type of project: Business Network
You can run this generator using: 'yo hyperledger-composer:businessnetwork'
Welcome to the business network generator
? Business network name: mynetwork
? Description: This is my test network
? Author name:  Mr Conga
? Author email: conga@congazone.org
? License: Apache-2
? Namespace: org.conga
   create package.json
   create permissions.acl
   create README.md
   create models/org.conga.cto
   create .eslintrc.yml
   create features/sample.feature
   create features/support/index.js
   create test/logic.js
   create lib/logic.js

이는 정의된 asset, participant, transaction으로 기본 비즈니스 네트워크를 생성하며 mocha 단위테스트도 생성한다.

 

또한 이는 JS code를 위한 샘플 linting 규칙을 정의하는 eslint config file도 포함하고 있다.

 

 

+ Recent posts