[Hyperledger] Fabric 실습 - Basic Network 예제와 IBM Marbles 연동하기

basic-network와 Marbles 연동

IBM-Blockchain에서 Marbles 예제를 제공한다. 이 예제에서는 owner의 자산(marble) 추가, 이동 그리고 블록의 생성을 시각화하여 보여준다. 실습은 다음의 순서로 진행할 것이다.

  1. fabric-sample의 basic-network를 띄우고,
  2. Marbles를 연결하여
  3. Event(Block Listener, Event Client)를 확인한다.

이번 실습에서는 basic-network와 marbles를 연동하고, 클라이언트 조작으로 Event를 확인해 볼 것이다.


fabric-sample

fabric-sample 다운로드

1
git clone https://github.com/hyperledger/fabric-samples.git

bootstrap.sh 파일 수정 및 실행

먼저, vim에 줄 넘버를 표시하자.

1
:set number

160번대 라인을 보면, DOCKER, SAMPLES, BINARIES에 관한 flag가 설정되어 있다. DOCKER=TRUE는 docker image를, SAMPLES=TRUE는 fabric-sample을, BINARIES=TRUE는 바이너리 파일을 다운로드하겠다는 의미이다. 이미 우리는 위의 과정을 통해 SAMPLESBINARIES을 다운로드했기에 flag를 FALSE로 설정하고 진행할 것이다.

수정 후 docker image를 다운로드해 보자.

1
./bootstrap.sh

네트워크 시작

fabric-samples/fabcar 경로에 있는 startFabric.sh 파일로 네트워크를 시작한다.

1
./startFabric.sh

node module 설치

fabric-samples/fabcar 경로에서 다음의 명령으로 node module을 설치한다.

1
npm install

Admin 등록

1
node enrollAdmin.js

user 등록

1
node registerUser.js

여기까지 하면 hfc-key-store 디렉토리가 생긴다. 여기에는 등록된 user의 key file이 저장된다.


IBM-Blockchain의 marbles

다운로드

상세 내용은 이 링크에서 확인할 수 있다. 홈 디렉토리에서 clone하자. (홈 디렉토리가 아닐 경우 경로를 직접 잡아 주어야 한다.)

1
git clone https://github.com/IBM-Blockchain/marbles.git

node module 설치

1
2
cd marbles
npm install

체인코드 설치

1
2
cd script
node install_chaincode.js

체인코드 instantiate

1
node instantiate_chaincode.js

동작 확인

1
2
3
4
// script의 상위 directory로 이동
cd ..
gulp marble_local
// 상세 내역은 gulpfile.js에 있음

localhost:3001에서 확인할 수 있다. 간단한 클라이언트 조작으로 Event(Block Listener, Event Client)를 날려 보자.


기타

keystore를 찾을 수 없다고 할 때?

해결할 수 있는 두 가지 방법이 있다.

  1. keystore directory를 통으로 날린 후, admin과 user를 재등록한다.

혹은

  1. marbles/config/connection_profile_local.json"path"를 재설정한다.(상대 경로 재설정)

    1
    2
    // 기본 설정
    "path": "/$HOME/github/hlf-1.2.0/network/ca/hfc-key-store"

Share