Hyperledger Fabric 튜토리얼(1) - First Network 실행하기
공식 사이트를 참고로 진행할 시리즈. 기껏 Composer 실습 끝냈더니 Fabric이 남아 있었다. 백날 공식 사이트 살피면 뭐 하나~ 한 번에 되는 실습 하나 없는데! 복잡하고 문제가 많아 분명 또 잊을 게 분명하니까 잘 적어 둬야지. 오늘 오전 시간은 이 포스팅으로 마무리해 보자! (1시간도 안 남음)
sudo
를 광적으로 붙이는 경향이 있다. 빼도 되는 명령이 몇 가지 있긴 한데, 괜한 삽질하기 싫어서 웬만하면 다 붙인다. 특히 docker
명령을 실행할 때에는 무조건 붙여야 한다. sudo
빼고 실행할 수 있도록 설치 과정에서 설정해 주었는데 외않돼지? -_-
0. 필수 구성 요소 설치 확인
필수 구성 요소는 이 링크에서 확인하면 된다. 설치 과정은 이전 시리즈에 정리해 두었다. 누락된 것이 있다면 이전 시리즈 참고해 주세요.
- curl, git, go 설치하기
- docker, docker-compose 설치하기
1. Hyperledger Fabric Sample Code 다운로드
오늘은 Fabric Sample 중 first-network를 실습해 볼 예정이다. 먼저 샘플 코드를 받아 보자. 샘플 코드는 원하는 디렉토리에 받으면 되는데, 나는 홈 디렉토리에서 다음의 명령어를 실행했다.
1 | # fabric-samples 다운로드 |
다음으로 바이너리 파일을 다운한다.
1 | sudo curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0 |
여기까지 다운로드는 끝!
2. 어떻게 실행하지?
fabric-samples/first-network
디렉토리에 접근하면 byfn.sh
파일이 있을 것이다. sudo ./byfn.sh --help
명령을 실행해 보자. 다음과 같은 설명이 출력될 것!
1 | Usage: |
요까지는 아마 순조롭게 실행됐을 것이다.
3. 네트워크 생성
네트워크 생성은 간단히 해결된다. 다음의 명령을 실행하시오.
1 | sudo ./byfn.sh -m generate |
만약 cryptogen tool not found. exiting
에러를 뿜는다면 쉽게 해결할 수 있다. Fabric Sample 코드만 다운하고 바이너리 파일을 다운하지 않았기 때문에 생기는 문제. 스크롤 위로 올려서 sudo curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0
명령 실행해 주세요. ^^
4. 네트워크 구축
자, 지금부터 시작이다. 일단 명령어는 간단하다. 다음의 명령을 실행해 보시지요. 튜토리얼에서는 이 순서로 하라고 함.
1 | sudo ./byfn.sh -m up |
아마 바로 실행되지 않을걸? 😦 정말 불친절!
ERROR: manifest for hyperledger/fabric-orderer:latest not found
docker에서 pull을 해 줘야 한다. fabric-orderer가 최신 버전이 아니거나, 태그가 달라서 생기는 문제인 듯하다. 다음의 명령어를 실행하자.
1 | fabric-tools 최신 버전으로 pull |
아래의 명령을 실행하자.
1 | sudo ./byfn.sh -m up |
아마 여전히 안 될 것이다. ㅋㅋㅋㅋㅋ
ERROR: manifest for hyperledger/fabric-tools:latest not found
에러 로그가 비슷하다. 위와 동일한 문제겠지? 이번에는 fabric-orderer가 아닌 fabric-tools가 최신 버전이 아니거나, tag가 달라서 생기는 문제일 것이다.
1 | fabric-tools 최신 버전으로 pull |
아래의 명령을 실행하자.
1 | sudo ./byfn.sh -m up |
또 안 될 수도 있다. 마지막으로 해결할 게 하나 남았지요.
ERROR: manifest for hyperledger/fabric-peer:latest not found
이번에도 같은 문제겠네요. 명령어 실행 고고!
1 | fabric-peer 최신 버전으로 pull |
자, 이제 아래의 명령을 실행해 보시지요.
1 | sudo ./byfn.sh -m up |
아마 이제야 비로소 실행될 것이다! 마지막 로그는,
1 | Query Result: 90 |
이거겠죠? 네! 드디어 네트워크 구축에 성공하셨습니다! 짝짝짝~
아, fabric의 최신 버전은 이 링크에서 확인 가능하다. 접속 후 보고 싶은 repo의 detail에서 tag로 들어가 살펴보면 언제 무엇으로 업데이트 되었는지 알 수 있다. not found 에러를 만난다면 docker 명령의 일부만 수정해서 모두 대응 가능하다.
엥? 그래도 안 되는데요?
./btfn.sh -m up
명령어를 실행하다가 새로운 오류 친구를 만났다. docker-compose가 설치되어 있는데 못 찾는다지 뭐야.
1 | UTC [main] main -> INFO 001 Exiting..... |
이게 말이나 되는 소리?
도커 이미지 다 지우고 다시 받았는데도 저런다. 혹시나 싶어서 아래의 명령어로 네트워크를 내려 보았는데,
1 | sudo ./byfn.sh -m down |
그 이후 다시 올려 보니
1 | sudo ./byfn.sh -m up |
잘 된다. ^^
5. 네트워크 다운시키기
네트워크를 구축했으면 내릴 수도 있어야겠지? 내려 봅시다!
1 | sudo ./byfn.sh -m down |
키키. 놀랍게도 한 번에 내려갔다~! 나이스!