Hyperledger Composer 튜토리얼 실습하기
개발 환경 구축에 이은 실습 포스팅이다. 튜토리얼에는 playground 튜토리얼과 개발자 튜토리얼이 있는데, playground 튜토리얼은 포스팅하지 않아도 될 것 같아 '개발자 튜토리얼’을 기준으로 포스팅할 것이다. 이번에도 공식 사이트를 참고하여 작성한다.
1. 비즈니스 네트워크 구조 정의
블록체인 솔루션에 관한 데이터 모델, 트랜잭션 논리 및 액세스 제어 규칙을 정의한다. 가장 쉬운 방법은 Yeoman 생성기를 사용하여 스켈레톤 비즈니스 네트워크를 만드는 것이다. 이렇게 하면 비즈니스 네트워크의 모든 구성 요소를 포함하는 디렉토리가 생성된다.
Yeoman을 사용하여 스켈레톤 비즈니스 네트워크를 만들어 보자.
1 | yo hyperledger-composer:businessnetwork |
위의 명령어를 실행하면 묻는 항목들은 다음과 같이 설정하면 된다.
1 | Bushiness network name: tutorial-network |
그리고 '빈 네트워크를 설정하시겠습니까?'의 질문에는 No를 선택하면 된다.
2. 비즈니스 네트워크 정의하기
튜토리얼 비즈니스 네트워크에는 assets, participants, transactions과 access control, optionally events, queries가 포함된다. 먼저, 모델 파일을 수정해 보자. GUI에 익숙한 나는 VS Code로 해당 위치에 직접 접근해서 수정했다. VS Code에서 '폴더 열기’로 tutorial-network
를 열어 두자.
1. org.example.mynetwork.cto
파일 수정
tutorial-network/models/org.example.mynetwork.cto
파일을 열고, 아래의 내용을 덮어씌운다.
1 | /** |
2.logic.js
스크립트 파일 수정
tutorial-network/lib/logic.js
파일을 열고 아래의 내용으로 바꾼 후 저장한다.
1 | /** |
3. permissions.acl
수정
tutorial-network/permissions.acl
파일을 아래와 같이 수정한다.
1 | /** |
3. 비즈니스 네트워크 아카이브 생성
tutorial-network
디렉토리에서 다음의 명령을 실행한다. (점 빼먹지 말기! 마지막에 점! 점!!! 점 빼먹으면 인자값을 받지 못했다는 에러를 뿜음.)
1 | composer archive create -t dir -n . |
4. 비즈니스 네트워크에 배포
비즈니스 네트워크에 배포하기 전, startFabric.sh
와 createPeerAdminCard.sh
을 먼저 실행해야 한다. 실행 전에 아래의 코드를 실행시키면 당연히 에러[1]가 난다.
1. Fabric 실행 및 PeerAdminCard 생성
fabric-tools
디렉토리에서 명령어를 실행한다.
1 | ./startFabric.sh |
2. 비즈니스 네트워크 설치
tutorial-network
디렉토리에서 다음의 명령어로 비즈니스 네트워크를 실행한다.
1 | composer network install --card PeerAdmin@hlfv1 --archiveFile tutorial-network@0.0.1.bna |
3. 비즈니스 네트워크 시작
1 | composer network start --networkName tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card |
4. 관리자 ID 가져오기
사용 가능한 비즈니스 네트워크 카드로 관리자 id를 가져온다.
1 | composer card import --file networkadmin.card |
5. 배포 확인
비즈니스 네트워크가 제대로 배포되었는지 확인하기 위해 ping을 날려 본다.
1 | composer network ping --card admin@tutorial-network |
5. REST 서버 생성
Hyperledger Composer는 비즈니스 네트워크를 기반으로 맞춤형 REST API를 생성 할 수 있다. 진짜, 완전, 정말 편한 기능이다. REST API를 자동으로 만들어 준다. 먼저, tutorial-network
디렉토리에 접근하여 다음의 명령을 실행하자.
1 | composer-rest-server |
이것저것 뭘 입력하라고 하는데, 다음과 같은 순서로 입력하면 된다.
1 | Enter the name of the business network card to use: admin@tutorial-network |
중간에 잘못 입력했다면 ctrl+c로 빠져나와서 다시 처음부터 입력하면 된다.
6. 응용 프로그램 생성
Hyperledger Composer는 REST API로 실행 중인 Angular 4 Application을 생성 할 수도 있다. 단, 기존에 열려 있던 터미널이 아닌(REST API가 열려 있는 터미널이 아닌) 새 터미널 창으로 실행해야 한다. 이번에도 tutorial-network
디렉토리에서 다음을 실행해 보자.
1 | yo hyperledger-composer:angular |
그리고 다음과 같이 입력하면 된다.
1 | Do you want to connect to a running Business Network? Yes |
실행은 어떻게 하느냐? tutorial-network/tutorial-network
디렉토리 안에서 npm start
명령어로 실행하면 된다. Angular App 확인은 http://localhost:4200
에서 할 수 있다.
Error: Error trying install business network. Error: No valid responses from any peers. Response from attempted peer comms was an error: Error: 14 UNAVAILABLE: Connect Failed ↩︎