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

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

https://hyperledger.github.io/composer/latest/tutorials/deploy-to-fabric-single-org

 

Deploying to a single organization Hyperledger Fabric | Hyperledger Composer

Deploying a Hyperledger Composer blockchain business network to Hyperledger Fabric for a single organization In the development environment, a simple development only Hyperledger Fabric single organization, single peer network is created for you (fabric-de

hyperledger.github.io

개발 환경에서는 블록체인 비즈니스 네트워크를 배포하는데 필요한 하이퍼레저 컴포저 구성과 함께 하이퍼레터 패브릭 단일 조직, 단일 피어 네트워크 (fabric-dev-servers)만 생성됩니다.

 

이 튜토리얼에서는 필요한 조직을 생성하는 방법을 포함해 관리자가 단일 조직에 대해 하이퍼레저 패브릭 객체에 블록체인 비즈니스 네트워크를 배포하기 위해 수행해야 하는 단계를 보여줍니다. 이후 튜토리얼에서는 블록체인 비즈니스 네트워크를 여러 조직의 하이퍼레저 패브릭 객체에 배포하는 방법을 보여줍니다.

 

이 튜토리얼을 수행하는 동안 아래 하이퍼레저 패브릭 문서를 참고할 수 있습니다.

http://hyperledger-fabric.readthedocs.io/

 

A Blockchain Platform for the Enterprise — hyperledger-fabricdocs master documentation

Docs » A Blockchain Platform for the Enterprise Edit on GitHub Built with Sphinx using a theme provided by Read the Docs.

hyperledger-fabric.readthedocs.io

 

Prerequisites

1. 시작하기 전 개발환경 설치가 완료되었는지 확인하세요.

https://ralee-world.tistory.com/entry/Hyperledger-Composer-Installing?category=719808

 

Composer Installing

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

ralee-world.tistory.com

 

 

Step One: Starting a Hyperledger Fabric network

이 튜토리얼을 따라하려면 하이퍼레저 패브릭 네트워크를 시작해야 합니다. 개발 환경에서 주어진 간단한 하이퍼레저 패브릭 네트워크를 사용할 수도 있고, 하이퍼레즈 패브릭 docs를 따라 생성한 네트워크를 사용해도 좋습니다.

 

이 튜토리얼은 개발 환경에 제공된 간단한 하이퍼레저 패브릭 네트워크를 사용한다고 가정합니다. 개인이 생성한 하이퍼레저 패브릭 네트워크를 사용한다면 아래 설명된 구성과 일치하도록 매핑해야 하며 단일 조직 네트워크여야 합니다.

 

1. 아래 커맨드를 통해 clean Hyperledger Fabric을 시작하세요.

cd ~/fabric-dev-servers
export FABRIC_VERSION=hlfv12
./stopFabric.sh
./teardownFabric.sh
./downloadFabric.sh
./startFabric.sh

2. 지갑에 있는 모든 비즈니스 네트워크 카드를 삭제하세요. 비즈니스 네트워크 카드를 찾을 수 없다는 오류는 무시해도 괜찮습니다.

composer card delete -c PeerAdmin@fabric-network
composer card delete -c admin@tutorial-network

위 명령어들이 실패하면 이전 버전의 네트워크 카드가 있다는 것이며, 파일 시스템 카드 저장소를 삭제해야 합니다.

    rm -fr ~/.composer

 

 

Step Rwo: Exploring the Hyperledger Fabric network

이 단계는 방금 시작한 하이퍼레저 패브릭 네트워크를 탐색하고 구성 방법 및 요소를 이해하는 단계입니다. 이 섹션의 모든 정보를 사용해 이후 단계에서 하이퍼레저 컴포저를 구성할 수 있습니다.

 

Configuration files

개발 환경에서 주어진 간단한 하이퍼레저 패브릭 네트워크는 하이퍼레저 패브릭 구성 툴인 cryptogen이나 configtxgen을 사용해 환경설정을 할 수 있습니다.

 

cryptogen은 아래 파일에 저장되어 있습니다.

~/fabric-dev-servers/fabric-scripts/hlfv12/composer/crypto-config.yaml

configtxgen은 아래 파일에 저장되어 있습니다.

~/fabric-dev-servers/fabric-scripts/hlfv12/composer/configtx.yaml

하이퍼레저 패브릭 docs를 읽으면 이러한 구성 툴에 대한 추가 정보, 수행 방법 및 사용법에 대해 알 수 있습니다.

 

Organizations

간단한 하이퍼레저 패브릭 네트워크는 Org1이라는 단일 조직으로 구성됩니다. 조직은 org1.example.com이라는 도메인 이름을 사용합니다. 또한, 이 조직의 Membership Services Provider (MSP)는 Org1MSP라고 합니다. 이 튜토리얼에서는 Org1만 상호작용할 수 있는 블록체인 비즈니스 네트워크를 배포합니다.

 

Network components

하이퍼레저 패브릭은 몇몇 요소로 구성되어 있습니다.

 

- peer0.org1.example.com: Org1의 단일 피어 노드

   > request port : 7051

   > event hub port : 7053

 

- ca.org1.example.com: 단일 인증 권한

   > CA port : 7054

 

- orderer.example.com

   > orderer port : 7050

 

하이퍼레저 패브릭 네트워크 구성요소는 Docker 컨테이너에서 실행됩니다. Docker 컨테이너에서 하이퍼레저 컴포저를 실행하는 경우 위의 이름 (예: peer0.org1.example.com)을 사용하여 하이퍼레저 패브릭 네트워크와 상호작용할 수 있습니다.

 

이 튜토리얼에서는 Docker 네트워크 내부가 아닌 Docker 호스트 컴퓨터에서 하이퍼레저 컴포저 명령을 실행합니다. 즉, 하이퍼레저 컴포터 명령은 localhost를 호스트 이름으로 사용하고 노출된 컨테이터 포트를 사용해 하이퍼레저 패브릭 네트워크와 상호작용해야 합니다.

 

Users

조직 Org1은 Admin@org1.example.com이라는 사용자로 구성됩니다. 이 사용자는 관리자입니다. 조직의 관리자는 조직의 피어들에게 블록체인 비즈니스 네트워크의 코드를 설치할 수 있는 권한이 있으며, 구성에 따라 블록체인 비즈니스 네트워크를 시작할 수 있는 권한을 가질 수도 있습니다. 이 튜토리얼에서는 Admin@org1.example.com 사용자로 블록체인 비즈니스 네트워크를 배포합니다.

 

Admin@org1.example.com 사용자는 아래 디렉토리에 저장된 일력의 인증서와 개인 키 파일을 가지고 있습니다.

~/fabric-dev-servers/fabric-scripts/hlfv12/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

이후 하이퍼레저 패브릭 네트워크와 상호작용할 때 이 파일들을 사용할 것입니다.

 

관리자 외에도 Org1의 CA(Certificate Authority)가 기본 사용자로 등록되어 있습니다. 이 기본 사용자는 등록 ID가 admin이고 패스워드는 adminpw입니다. 하지만, 이 사용자에게는 블록체인 비즈니스 네트워크를 배포할 수 있는 권한이 없습니다.

 

Channel

마지막으로, composerchannel이라는 채널이 생성되었습니다. 피어 노드인 peer0.org1.example.com은 이 채널에 조인되었습니다. 하이퍼레저 컴포저 블록체인 비즈니스 네트워크는 기존 채널에만 배포할 수 있지만, 하이퍼레저 패브릭 docs를 따라 추가 채널을 만들 수도 있습니다.

 

 

Step Three: Building a connection profile

Connection profile은 하이퍼레저 패브릭 네트워크를 찾고 연결하는데 필요한 모든 정보 (예: 모든 하이퍼레저 패브릭 네트워크 구성 요소의 호스트 이름 및 포트)를 지정합니다. 이 단계에서는 하이퍼레저 컴포저가 하이퍼레저 패브릭 네트워크에 연결하는데 사용할 connection profile을 생성합니다.

 

1. connection.json이라는 connection profile 파일을 생성하세요.

2. connection profile의 name, version, x-type속성을 connection.json파일 가장 위에 아래 세 줄을 추가하여 지정하세요.

{
    "name": "fabric-network",
    "x-type": "hlfv1",
    "version": "1.0.0",

name 속성은 하이퍼레저 패브릭 네트워크에 이름을 제공하므로 나중에 참조할 수 잇습니다. 방금 작성한 connection profile에서 이름은 fabric-network입니다. 하이퍼레저 패브릭 네트워크에 대해 원하는 이름을 사용할 수 있습니다.

 

하이퍼레저 컴포저는 다양한 유형의 블록체인 네트워크와 호환되도록 설계되었습니다. 현재는 하이퍼레저 패브릭 v.1.x만 지원되지만 사용할 블록체인 네트워크의 유형을 지정해야 합니다. 하이퍼레저 패브릭 v1.2의 x-type은 hlfv1입니다.

 

버전 번호는 이 connection profile 형식의 버전입니다. 현재 버전은 1.0.0입니다.

 

또한 x-commitTimeout이라는 속성을 부가적으로 지정할 수도 있습니다. 이는 하이퍼레저 컴포저가 제출된 트랜잭션이 대기를 포기하기 전에 조직의 피어에 commit되는 동안 얼마나 오래 기다릴지를 지정하는 속성입니다. default 값은 300초입니다.

 

3. 하이퍼레저 패브릭 네트워크에서는 모든 피어노드의 호스트 이름과 포트를 지정해야 합니다. 여기서는 단 하나의 피어가 있고 peer0.org1.example.com이라는 레이블을 붙입니다.

    "peers": {
        "peer0.org1.example.com": {
            "url": "grpc://localhost:7051"
        }
    },

여기서, 우리는 단일 피어 노드인 peer0.org1.example.com (localhost를 호스트 이름으로 사용하는) 를 지정했으며 request 포트 번호는 7051, event hub port 번호는 7053 입니다.

 

peers 배열은 여러 피어 노드를 포함할 수 있습니다. 여러 피어 노드를 가지고 있다면 해당 노드들을 peers 객체에 추가해야 합니다.

 

4. 기존 사용자를 등록하고 새 사용자를 등록하려면 하이퍼레저 패브릭 네트워크 내 Certificate Authority (CA)의 호스트 이름과 포트 번호를 지정해야 합니다.

    "certificateAuthorities": {
        "ca.org1.example.com": {
            "url": "http://localhost:7054",
            "caName": "ca.org1.example.com"
        }
    },

여기서 우리는 단일 CA인 ca.org1.example.com (localhost를 호스트 이름으로 사용하는) 를 지정했으며 CA 포트 번호는 7054입니다. 또, 우리는 이 엔트리를 ca-org1.example.com이라고 레이블을 붙였습니다.

 

5. 우리는 연결하고자하는 하이퍼레저 패브릭에 있는 모든 ordering노드의 호스트 이름과 포트 번호를 지정해야 합니다.

    "orderers": {
        "orderer.example.com": {
            "url": "grpc://localhost:7050"
        }
    },

여기서 우리는 단일 orderer 노드인 orderer.example.com (localhost를 호스트 이름으로 사용하는) 를 지정했으며, orderer 포트 번호는 7050입니다. 또한 이를 orderer.example.com이라고 레이블을 붙입니다.

 

orderer 객체는 여러 orderer 노드들을 포함할 수 있습니다. 여러 orderer 노드를 가지고 있다면 이를 orderers 객체에 추가해야 합니다.

 

6. 이제 우리는 네트워크 내 모든 조직을 지정해야 합니다. 이 튜토리얼에서는 1개의 조직 Org1만 존재합니다.

    "organizations": {
        "Org1": {
            "mspid": "Org1MSP",
            "peers": [
                "peer0.org1.example.com"
            ],
            "certificateAuthorities": [
                "ca.org1.example.com"
            ]
        }
    },

여기서 우리는 피어 소유자와 그들의 인증기관이 누구인지에 대해 설명하고 있으며, 이 조직에 대해 정의된 MSP ID도 선언합니다. 이 튜토리얼에서는 Org1MSP로 정의되어 있습니다.

 

7. 우리는 존재하는 채널의 이름을 지정해야 합니다. 우리는 블록체인 비즈니스 네트워크를 composerchannel이라는 채널에 배포할 것입니다. 이는 channels 객체에 정의되어 있습니다.

    "channels": {
        "composerchannel": {
            "orderers": [
                "orderer.example.com"
            ],
            "peers": {
                "peer0.org1.example.com": {
                    "endorsingPeer": true,
                    "chaincodeQuery": true,
                    "eventSource": true
                }
            }
        }
    },

여기서 우리는 composerchannel 채널과 해당 채널의 일부인 orderers, peers를 정의합니다. 또한 피어가 이 채널에서 수행할 역할도 지정합니다. 이 튜토리얼에서 우리는 이전에 정의된 레이블을 사용해 단일 orderer과 peer를 추가했습니다. 피어는 비즈니스 네트워크를 설치하므로 체인코드 쿼리를 처리하고 이벤트를 생성할 수 있는 트랜잭션 인증자가 됩니다. 블록체인 비즈니스 네트워크는 모든 지정된 피어 노드에 배포될 것입니다. 블록체인 비즈니스 네트워크가 배포되면, 지정된 피어 노드들은 블록체인 비즈니스 네트워크에 쿼리하고, 트랜잭션을 보증하고, 이벤트를 구독하는 데 사용됩니다.

 

8. 마지막 섹션은 클라이언트 섹션입니다. 이것은 클라이언트 애플리케이션 (하이퍼레저 컴포저 같은)에서 상호작용할 때 어떤 조직을 나타내는지와 몇 가지 추가 선택적인 타임아웃 등을 알기 위해 사용됩니다.

    "client": {
        "organization": "Org1",
        "connection": {
            "timeout": {
                "peer": {
                    "endorser": "300",
                    "eventHub": "300",
                    "eventReg": "300"
                },
                "orderer": "300"
            }
        }
    }
}

여기서 우리는 Org1에 정의하고 있습니다. 타임아웃은 피어나 orderer와 상호작용할 때 응답을 얼마나 기다릴지 판별하는 데 사용되며 단위는 초 단위로 지정됩니다. 아무것도 지정하지 않으면 기본값은 45chdlqslek.

 

1. connection.json 파일의 변경 내용을 저장하세요. 완성된 connection profile은 아래와 같을 것입니다.

{
    "name": "fabric-network",
    "x-type": "hlfv1",
    "version": "1.0.0",
    "peers": {
        "peer0.org1.example.com": {
            "url": "grpc://localhost:7051"
        }
    },
    "certificateAuthorities": {
        "ca.org1.example.com": {
            "url": "http://localhost:7054",
            "caName": "ca.org1.example.com"
        }
    },
    "orderers": {
        "orderer.example.com": {
            "url": "grpc://localhost:7050"
        }
    },
    "organizations": {
        "Org1": {
            "mspid": "Org1MSP",
            "peers": [
                "peer0.org1.example.com"
            ],
            "certificateAuthorities": [
                "ca.org1.example.com"
            ]
        }
    },
    "channels": {
        "composerchannel": {
            "orderers": [
                "orderer.example.com"
            ],
            "peers": {
                "peer0.org1.example.com": {
                    "endorsingPeer": true,
                    "chaincodeQuery": true,
                    "eventSource": true
                }
            }
        }
    },
    "client": {
        "organization": "Org1",
        "connection": {
            "timeout": {
                "peer": {
                    "endorser": "300",
                    "eventHub": "300",
                    "eventReg": "300"
                },
                "orderer": "300"
            }
        }
    }
}

 

 

 

Step Four: Locating the certificate and private key for the Hyperledger Fabric administrator

블록체인 비즈니스 네트워크를 하이퍼레저 패브릭 네트워크에 배포하기 위해, 우리는 스스로를 이러한 동작을 수행할 수 있는 권한을 가진 관리자로 정의해야 합니다. 이 단계에서는 스스로를 관리자로 지정하는데 필요한 파일을 배정합니다.

 

하이퍼레저 패브릭 네트워크의 관리자는 Admin@org1.example.com이라 불리는 사용자입니다. 이 사용자의 인증서와 개인 키는 아래 폴더에 있습니다.

~/fabric-dev-servers/fabric-scripts/hlfv12/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

먼저 이 사용자를 위한 인증서 파일을 위치시켜야 합니다. 인증서는 신원확인의 공개파트입니다. 인증서 파일은 signcerts의 하위 폴더에서 찾을 수 있으며 Admin@org1.example.com-cert.pem이라는 파일입니다. 이 파일의 내용을 보면 아래와 같이 PEM 인코딩 된 인증서를 확인할 수 있습니다.

-----BEGIN CERTIFICATE-----
MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
XVMHPa0iyC497vdNURA=
-----END CERTIFICATE-----

다음으로는 이 사용자의 개인 키 파일을 위치시켜야 합니다. 개인 키는 이 신원으로 트랜잭션을 인증할 때 사용됩니다. 개인 키 파일은 keystore 하위 디렉토리에서 찾을 수 있습니다. 개인 키 파일의 이름은 긴 16진수 문자열로, 접미어는 _sk입니다. (예: 114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk) 이름은 구성이 생성될 때마다 변경됩니다. 이 파일의 내용을 보면 다음과 유사한 PEM으로 인코딩 된 개인 키를 확인할 수 있습니다.

-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg00IwLLBKoi/9ikb6
ZOAV0S1XeNGWllvlFDeczRKQn2uhRANCAARrvCsQUNRpMUkzFaC7+zV4mClo+beg
4VkUyQR5y5Fle5UVH2GigChWnUoouTO2e2acA/DUuyLDHT0emeBMhoMC
-----END PRIVATE KEY-----

이 두 파일의 경로를 기억하거나 이전 단계에서 작성한 connection profile 파일인 connection.json과 동일한 디렉토리에 파일을 복사해두세요. 다음 단계에서 이 파일이 필요합니다.

 

 

Step Five: Creating a business network card for the Hyperledger Fabric administrator

비즈니스 네트워크 카드는 블록체인 비즈니스 네트워크 및 기본 하이퍼레저 패브릭 네트워크 접속에 필요한 모든 정보가 들어 있습니다. 이 정보에는 Step 3에서 생성한 connection profile과 Step 4에서 위치시킨 관리자의 인증서 및 개인 키가 포합됩니다.

 

이 단계에서는 관리자가 하이퍼레저 패브릭 네트워크에 블록체인 비즈니스 네트워크를 배포하는 데 사용할 비즈니스 네트워크 카드를 생성합니다.

 

composer card create 명령어를 실행시켜서 비즈니스 네트워크 카드를 생성하세요. 이전 단계에서 작성하거나 위치시킨 세 가지 파일 모두에 대한 경로를 지정해야 합니다:

composer card create -p connection.json -u PeerAdmin -c Admin@org1.example.com-cert.pem -k 114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk -r PeerAdmin -r ChannelAdmin

PeerAdmin@fabric-network.card라고 불리는 비즈니스 네트워크 카드 파일이 현재 디렉토리에 작성될 것입니다. composer card create 커맨드와 함께 사용한 옵션을 살펴봅시다.

-p connection.json

이 옵션은 step 3에서 생성한 connection profile 파일의 경로를 나타냅니다.

-u PeerAdmin

이 옵션은 관리자인 사용자를 가리키기 위해 사용하는 이름을 의미합니다. 모든 곳에 Admin@org1.example.com 을 사용하는 대신, 입력하는데 시간이 오래 걸리므로 우리는 이 사용자를 쉽게 참조할 수 있도록 PeerAdmin이라는 이름을 지정했습니다.

-c Admin@org1.example.com-cert.pem

이 옵션은 step 4에서 위치시킨 Admin@org1.example.com 사용자의 인증서 파일 경로를 나타냅니다.

-k 114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk

이 옵션은 step 4에서 위치시킨 Admin@org1.example.com 사용자의 개인 키 파일 경로를 나타냅니다.

-r PeerAdmin -r ChannelAdmin

여기서 우리는 사용자의 역할을 지정합니다. 이 정보는 하이퍼레저 컴포저의 플레이그라운드에서 어떤 사용자가 어떤 작업을 수행할 수 있는지 알기 위해 필요합니다. Admin@org1.example.com이라는 사용자는 하이퍼레저 패브릭 네트워크의 관리자로 PeerAdmin (체인코드 설치 가능) 과 ChannelAdmin (체인코드 객체 생성가능) 역할을 가집니다.

 

 

Step Six: Importing the business network card for the Hyperldeger Fabric administrator

하이퍼레저 컴포저는 지갑에 있는 비즈니스 네트워크 카드만 사용할 수 있습니다. 지갑은 비즈니스 네트워크 카드들을 포함하고 있는 파일 시스템 내 디렉토리 입니다. 이 단계에서는 step 5에서 생성한 비즈니스 네트워크 카드를 지갑으로 import해서 다음 단계에서 이 비즈니스 네트워크 카드를 사용할 수 있도록 합니다.

 

composer card import 명령어를 실행해 비즈니스 네트워크 카드를 지갑으로 import 하세요.

composer card import -f PeerAdmin@fabric-network.card

composer card import 명령어에 사용한 옵션을 살펴봅시다.

-f PeerAdmin@fabric-network.card

이 옵션은 step 5에서 생성한 비즈니스 네트워크 카드 파일의 경로를 의미합니다.

 

이제 PeerAdmin@fabric-network라는 이름을 지정해 비즈니스 네트워크 카드를 사용할 수 있습니다. 이제 블록체인 비즈니스 네트워크를 하이퍼레저 패브릭 네트워크에 배포할 모든 준비가 끝났습니다.

 

우리는 developer tutorial에서 생성한 tutorial-network라는 블록체인 비즈니스 네트워크를 배포할 것입니다. 아직 비즈니스 네트워크 아카이프 파일(.bna)을 만들지 않았다면 step 1, 2, 3 및 developer tutorial을 통해 생성하세요.

 

 

 

Step Seven: Installing the Hyperledger Composer business network onto the Hyperledger Fabric peer nodes

이 단계에서, 블록체인 비즈니스 네트워크를 하이퍼레저 패브릭 피어 노드의 모든 조직에 설치할 것입니다. 하이퍼레저 패브릭 용어에서 이것을 체인코드 설치라고 부릅니다.

 

composer network install 커맨드를 사용해 하이퍼레저 컴포저 런타임을 step 3에서 생성한 connection profile 파일에 정의한 하이퍼레저 패브릭 피어 노드에 설치하세요.

composer network install -c PeerAdmin@fabric-network -a tutorial-network@0.0.1.bna

composer network install 명령어에 사용한 옵션을 살펴봅시다.

-c PeerAdmin@fabric-network

이 옵션은 step 6에서 import한 비즈니스 네트워크 카드의 이름을 의미합니다.

-a tutorial-network@0.0.1.bna

여기서 비즈니스 네트워크의 사본을 설치해야 합니다. 이 옵션은 우리가 배포할 tutorial-network@0.0.1.bna 블록체인 비즈니스 네트워크 파일의 이름을 의미합니다.

 

 

Step Eight: Starting the blockchain business network

이 단계에서는 블록체인 비즈니스 네트워크를 시작합니다. 하이퍼레저 패브릭 용어로 이를 체인코드 생성이라고 합니다.

 

composer network start 명령어를 통해 블록체인 비즈니스 네트워크를 시작하세요.

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

composer network start 명령어에서 사용한 옵션을 살펴봅시다.

-c PeerAdmin@fabric-network

이 옵션은 step 6에서 지갑으로 import한 비즈니스 네트워크 카드의 이름을 의미합니다.

--networkName tutorial-network

이 옵션은 tutorial-network의 블록체인 비즈니스 네트워크 이름을 의미합니다.

--networkVersion 0.0.1

이 옵션은 tutorial-network라고 불리는 블록체인 비즈니스 네트워크의 버전을 의미하며, 이는 비즈니스 네트워크의 package.json 내 version 속성에 정의되어 있습니다.

-A admin

블록체인 비즈니스 네트워크가 배포될 때, 블록체 비즈니스 네트워크 관리자가 될 참가자를 적어도 한 명 이상 생성해야 합니다. 이 참가자는 다른 참가자를 블록체인 비즈니스 네트워크에 onboarding할 책임이 있습니다. 여기서는 admin이라는 단일 블록체인 비즈니스 네트워크 관리자를 만들고자 합니다.

-S adminpw

이 옵션은 블록체인 비즈니스 네트워크 관리자 admin이 adminpw 비밀번호를 사용해 CA에서 인증서 및 개인 키를 요청하도록 지정하는 옵션입니다. 이 옵션을 지정하면 비즈니스 네트워크 관리자에게 지정된 이름이 CA에 이미 등록된 사용자의 기존 등록 ID여야 합니다.

 

이제 블록체인 비즈니스 네트워크가 시작되었으므로 생성된 비즈니스 네트워크 카드 파일 admin@tutorial-network.card를 사용하여 상호작용할 수 있습니다.

 

 

 

Step Nine: Importing the business network card for the business network administrator

composer card import 커맨드를 실행해 비즈니스 네트워크 카드를 지갑으로 import 하세요.

composer card import -f admin@tutorial-network.card

이제 admin@tutorial-network라는 이름으로 비즈니스 네트워크 카드를 사용할 수 있습니다. 이제 실행중인 블록체인 비즈니스 네트워크와 상호작용할 모든 준비가 끝났습니다.

 

 

Step Ten: Testing the connection to the blockchain business network

composer network ping 명령어를 사용해 블록체인 비즈니스 네트워크를 테스트해보세요.

composer network ping -c admin@tutorial-network

테스트 결과가 성공적인지 확인하세요. 비즈니스 네트워크에는 NetworkAdmin이라는 단일 참가자 리스트가 존재할 것입니다.

+ Recent posts