본문 바로가기

개발자는 오늘도 달립니다.

[Hyperledger Fabric] 하이퍼레저 패브릭 first-network 올리기! (v1.4.1) 본문

블록체인/하이퍼레저패브릭

[Hyperledger Fabric] 하이퍼레저 패브릭 first-network 올리기! (v1.4.1)

✍21시간 2021. 10. 22. 13:43

하이퍼레저 패브릭은 프라이빗 블록체인 또는 허가형 블록체인, 기업용 블록체인이라고 불리고 있습니다.
저는 현재 현업으로 뛰고 있으니 제 블로그에 블록체인 관련 포스팅을 채울 필요성을 느끼고...
하이퍼 레저 패브릭을 처음으로 시작할 때 테스트 네트워크를 구성할 수 있는 BYFN 절차를 포스팅하겠습니다.



먼저 블록체인 기술과 하이퍼레저 패브릭에 관련해서 초보인 분들도 절차를 잘 이어가면 진행이 가능하십니다! 그리고 궁금하신 점은 댓글 주세요.



필요조건

- CentOS 7.7
- Docker 19.03
- Docker-compose 1.21.0

Centos 7.7 버전에서 테스트를 했어요!
docker 와 docker-compose 세부 버전으로 설치하는 방법은 아래 링크로 확인해주세요!

docker 19.03 설치
https://tmjb.tistory.com/134

docker-compose 1.21.0 설치
https://tmjb.tistory.com/135


 

1. 필요 파일 내려받기

 

1.1 하이퍼레저 fabric-samples 레포지토리 내려받기

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

 

1.2 하이퍼레저 Binary, Config & Docker images 내려받기

# curl -sSL http://bit.ly/2ysbOFE | bash -s -- <fabric_version> <fabric-ca_version> <thirdparty_version>
curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.1 1.4.1

 

1.3 환경 변수 설정

echo "export PATH=$PATH:/home/vagrant/fabric-samples/bin:/home/vagrant/fabric-samples/config" >> ~/.bash_profile

source ~/.bash_profile



2. 1.1에서 받은 레포지토리 git tag 전환 (latest -> v1.4.1)
먼저 Git Hyperledger fabric 소스를 다운로드한 후 tag 된 버전을 확인해볼까요?
아래와 같이 20211021일 현재 기준 2.3.0 버전이 릴리즈 되었고 저희는 1.4.1 버전으로 체크 아웃해주겠습니다..

hyperledger fabric-samples git tag

git checkout v1.4.1

git checkout v1.4.1



 

3. fabric-samples/first-network 올리기

1.1에서 받은 레퍼지토리 에서 first-network 로 디렉터리로 들어가 보면 아래와 같은 파일들이 존재합니다.
저희는 byfn.sh 스크립트 파일을 이용할 건데요.

실행을 해보시면 아래와 같은 도움말을 확인할 수 있고, 저희는 디폴트만 이용해서 간단하게 하이퍼 레저 패브릭 환경을 구축하도록 할게요.

byfn.sh

 

byfn.sh generate - 하이퍼 레저 패브릭 네트워크를 구동시키기 위한 각종 인증서 및 제네레이션 파일들을 만듭니다.

byfn.sh up - 다른 옵션 없이 해당 up만 하시게 되면 docker 컨테이너 생성부터 채널 생성 및 체인 코드 생성까지 원패스로 진행됩니다.

byfn.sh down - 하이퍼 레저 패브릭 네트워크로 구동 되었거나 생성된 파일들을 없애고 docker 컨테이너 또한 내려갑니다.  

byfn.sh up

정상적으로 생성 및 구동이 되면 All GOOD, BYFN execution completed 구문과 함께 완료가 됩니다.
하이퍼레저 패브릭 네트워크 구축은 일단 이것으로 완료되었고 이후 생성된 블록체인을 활용하는 방법에 대해서 포스팅하도록 하겠습니다.

 

 

 


-트러블슈팅

docker 컨테이너 가 올라갈 때 로컬 시스템에서 몇 가지 설정들을 그대로 가지고 갑니다. dns 정보라든가 시스템 시간 이라든가, 근데 이때 /etc/resolv.conf 파일 설정이 문제를 야기했는데요.. 그런데 하필이면 1.4.4 이상 버전에서는 전혀 문제가 없는데 1.4.1 버전만 peer 컨테이너가 올라가자마자 내려가는 문제가 생겼습니다. 컨테이너 로그를 확인해보니 peer 프로세스 세그먼테이션 디폴트 문제였는데요. 유추할만한 게 딱히 없어 구글링을 해보니 결국 찾은 원인은 dns 설정 문제로 확인되었습니다.

/etc/resolv.conf

/etc/resolv.conf 설정 파일 내용에서 options singole-request-reopen 을 지우고 저장해주세요.

dns정보를 /etc/resolv.con 파일을 읽어서 파싱 하는 과정에서 "options..." 부분을 정상적으로 처리하지 못하여 발생하는 오류입니다!

Comments