Skip to content
This repository has been archived by the owner on May 27, 2019. It is now read-only.

Latest commit

 

History

History
260 lines (100 loc) · 5.67 KB

README-ko.md

File metadata and controls

260 lines (100 loc) · 5.67 KB

Hyperledger Fabric Node SDK를 사용하여 블록체인 네트워크 생성하고 배포하기

다른 언어로 보기: English

블록체인 네트워크 설정하기

블록체인 애플리케이션 빌드하기 파트1에 오신 것을 환영합니다. 첫번째 코드 패턴은 블록체인을 백엔드로 사용하여 피트니스 활동을 기록하고 fitcoin을 통한 상품의 주문과 같은 트랜잭션을 관리하는 비교적 더 큰 규모의 애플리케이션입니다. 이 시리즈의 첫 단계에서는 Hyperledger Fabric Node SDK를 사용하여 Hyperledger 블록체인 네트워크를 만들고 배포하는데 중점을 둡니다. 이 코드 패턴에는 두 명의 참가자, 즉 구매자 그리고 판매자/상점 피어가 있습니다. 구매자는 애플리케이션을 다운로드한 후 자신의 단계를 블록체인에 등록하고, 판매자는 구매자가 구매를 하기에 충분한 fitcoin을 가지고 있는지 확인합니다.

IBM Cloud의 평생 무료인 lite 계정이 있다면 이 애플리케이션을 로컬에서 실행하시거나 IBM Blockchain Starter Plan을 사용하실 수 있습니다.

구성 요소

  • Hyperledger Fabric

  • Docker

  • Node.js용 Hyperledger Fabric SDK

애플리케이션 흐름도

Application Workflow

사전에 필요한 지식

순서

  1. Build.sh를 실행하여 네트워크 빌드

  2. 네트워크 시작

  3. 로그에서 결과 확인

  4. 블록체인 네트워크 확인

1. Build.sh 스크립트 실행

다음 순서를 수행합니다:

a. 기존에 존재하는 블록체인 도커 이미지를 삭제하여 시스템을 초기화한다.

b. 인증서를 발급한다.

  • crypto-config.yaml(암호 설정파일)은 소속 기관이나 부서 등 Peers와 Orderers간 서로의 신분의 내용을 정의합니다.

c. Peers, Orderers 그리고 Channel을 생성한다.

  • configtx.yaml 파일은 블록체인 네트워크 또는 채널을 초기화하고, Orderer에게 체인의 가장 첫번째인 제네시스 블럭을 제공합니다. (Shop 또는 Fincoin 피어일 경우 멤버십 서비스는 각 채널 피어에 설치됨.)

d. Orderer, Peer, Channel, Network 도커 이미지를 생성한다.

새로운 터미널을 열어 다음 명령어 실행:

export FABRIC_CFG_PATH=$(pwd)

chmod +x cryptogen

chmod +x configtxgen

chmod +x generate-certs.sh

chmod +x generate-cfgtx.sh

chmod +x docker-images.sh

chmod +x build.sh

chmod +x clean.sh

./build.sh

2. 네트워크 시작

다음 테스트 실행 후 이 순서를 재진행하는 경우 'LOCALCONFIG' 환경변수가 정의되지 않도록 합니다.

unset LOCALCONFIG  

피어노드에 체인코드를 설치하고 블록체인 네트워크를 시작하기 위한 두 가지 옵션이 있습니다. 다음 중 하나를 선택하세요.

  • LevelDB 사용하여 블록체인 상태를 저장하는 경우, 다음 명령어를 실행하여 네트워크를 시작합니다:
docker-compose -p "fitcoin" -f "docker-compose.yaml" up -d    
  • CouchDB 사용하여 블록체인 상태를 저장하는 경우, 다음 명령어를 실행하여 네트워크를 시작합니다:
docker-compose -p "fitcoin" -f "docker-compose-couchdb.yaml" up -d    

3. 로그 확인

다음 스크립트를 실행하여 로그 결과를 확인합니다.

Command

docker logs blockchain-setup

Output:

Register CA fitcoin-org

CA registration complete  FabricCAServices : {hostname: fitcoin-ca, port: 7054}

Register CA shop-org

CA registration complete  FabricCAServices : {hostname: shop-ca, port: 7054}

info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"shop-peer","grpc.default_authority":"shop-peer"}

info: [EventHub.js]: _connect - options {"grpc.ssl_target_name_override":"fitcoin-peer","grpc.default_authority":"fitcoin-peer"}

Default channel not found, attempting creation...

Successfully created a new default channel.

Joining peers to the default channel.

Chaincode is not installed, attempting installation...

Base container image present.

info: [packager/Golang.js]: packaging GOLANG from bcfit

info: [packager/Golang.js]: packaging GOLANG from bcfit

Successfully installed chaincode on the default channel.

Successfully instantiated chaincode on all peers.

4. 블록체인 네트워크 확인

다음 명령을 실행하여 네트워크에서 invokequery 기능을 테스트하세요:

cd configuration

export LOCALCONFIG=true

node config.js

cd ..

cd test/

npm install

LevelDB 사용 시, 다음 명령어를 실행합니다:

node index.js

CouchDB 사용 시, 다음 명령어를 실행합니다:

node indexCouchDB.js

추가 자료

라이센스

Apache 2.0