** 아래의 내용은 개인환경설정용으로 기록하며, [윤대근 저, 하이퍼레저 패브릭으로 배우는 블록체인] 서적에서 내용 및 순서를 가져옴을 밝힘.

** 다른 환경설정을 할 경우 책의 내용을 직접 타이핑해야 하는 번거로움과 오타를 수정해야 하는 불편함이 있기에 블로그에 기록하여 공유함.

** 가장먼저 우분투 가상머신 설정이 있는데, 이는 어디에서든 찾아볼 수 있으니 건너뛴다. 추후 직접포스팅 할 예정

 

*** 아래의 방법은 orderer/peer0/peer1 등을 각각의 VM으로 생성하는 방법으로, 컴퓨팅 자원이 상당해야 가능하다.

*** 이에 docker를 이용하여 패브릭을 구동하는 방법을 작성중이다.

 

1. GO Lang 설치

모든 내용은 특별 언급이 없는 경우 root 권한으로 진행한다.

 

# GO 다운로드 및 압축해제

 fabric@Root-Image:~$ sudo -i

 root@Root-Image:~# wget https://storage.googleapis.com/golang/go1.10.4.linux-amd64.tar.gz 

 root@Root-Image:~# tar -xvf go1.10.4.linux-amd64.tar.gz

 

# GOPATH / GOROOT 환경변수 설정

이는 하이퍼레저 패브릭 실행시 꼭 필요한 환경변수임.

 root@Root-Image:~# mkdir /root/gopath

 root@Root-Image:~# gedit /etc/profile

 

# 프로파일 수정(gedit /etc/profile 이후)

열리는 프로파일 최하단에 다음과 같이 입력

 export GOPATH=/root/gopath

 export GOROOT=/root/go

 export PATH=$PATH:$GOROOT/bin

이후 저장 및 종료,

 

# 환경변수 업데이트 및 확인

 root@Root-Image:~# source /etc/profile

설정 완료 후에는 GOPATH/GOROOT가 정상적으로 설정되었는지 확인한다. 정상적으로 디렉토리 이동이 된다면 올바르게 설정된 것.

 root@Root-Image:~#cd $GOPATH

 root@Root-Image:~#/gopath# cd $GOROOT

 root@Root-Image:~#/go#

 

2. pip, git, curl, GNU libtool, tree, openssh-server, net-tools 설치

하이퍼레저 패브릭 설치 및 실행을 위한 기타도구 설치

 root@Root-Image:~#apt-get install python-pip

 root@Root-Image:~#apt-get install git

 root@Root-Image:~#apt-get install curl

 root@Root-Image:~#apt-get install libltdl-dev

 root@Root-Image:~#apt-get install tree

 root@Root-Image:~#apt-get install openssh-server

 root@Root-Image:~#apt-get install net-tools

 

3. docker, docker-compose 설치

하이퍼레저 패브릭 공식문서에서는 도커 17.06.2 버전을 명시하고 있음.

# docker 다운로드 및 테스트

 root@Root-Image:~#wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.06.2~ce-0~ubuntu_amd64.deb 

 root@Root-Image:~#dpkg -i docker-ce_17.06.2~ce-0~ubuntu_amd64.deb

 root@Root-Image:~#docker run hello-world

 

# docker-compose 설치

 root@Root-Image:~#pip install docker-compose

 root@Root-Image:~#docker-compose --version

* docker-compose version 1.24.1, build 4667896 (이 부분은 설치된 시점의 버전에 따라 다를 수 있음)

 

4. 하이퍼레저 패브릭 설치

# 하이퍼레저 패브릭 git clone

 root@Root-Image:~#mkdir -p $GOPATH/src/github.com/hyperledger

 root@Root-Image:~#cd $GOPATH/src/github.com/hyperledger

 root@Root-Image:~/gopath/src/github.com/hyperledger#git clone -b release-1.3 https://github.com/hyperledger/fabric 

 

* 책에서는 하이퍼레저 패브릭 1.3 버전을 기본으로 설정했으며, 책과 동일한 결과값을 구하기 위해 하이퍼레저 패브릭의 git branch도 동일한 것으로 진행함.

# 하이퍼레저 패브릭 소스 컴파일

 root@Root-Image:~/gopath/src/github.com/hyperledger#cd fabric

 root@Root-Image:~/gopath/src/github.com/hyperledger/fabric#git reset --hard d942308df6302d3510e835bad62f861ad854b4b3

 root@Root-Image:~/gopath/src/github.com/hyperledger/fabric#make

* make 를 하는 과정에 있어 약 15~20분이 소요가 되며, 컴파일이 모두 끝난 후에는 unit-test_1 단계로 진입하게 된다.

* unit-test_1 에서 컴파일 오류가 발생하긴 하는데 재시도를 하면 정상적으로 진행되는 경우도 있다.

* unit-test_1 에서 테스트 단계를 진입하게 되는데, 이 때 ctrl+c를 눌러서 강제종료해도 무방하다.

 

# 하이퍼레저 패브릭 환경변수 설정

 root@Root-Image:~#gedit /etc/profile

* 파일 하단에 다음과 같이 입력 후, 저장 후 종료

 export FABRIC_HOME=/root/gopath/src/github.com/hyperledger/fabric

 export PATH=$PATH:$GOPATH/src/github.com/hyperledger/fabric/.build/bin

* 하이퍼레저 패브릭 환경변수 적용

 root@Root-Image:~# source /etc/profile

* 정상적으로 적용이 된 후에, 다음과 같이 입력하면 용도별 커맨드를 확인 가능함

 root@Root-Image:~#cryptogen

 

#e2e_cli 테스트 실행

* 실습에 들어가기에 앞서, 현재 설치된 하이퍼레저 패브릭 시스템이 정상동작 하는지 확인

 root@Root-Image:~# cd $FABRIC_HOME/examples/e2e_cli

 root@Root-Image:~/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli./network_setup.sh up

* 테스트가 정상동작 하지 않을 수 있다. 이는 peer 서버등에 대해 현재 설정되어있지 않기 때문으로 추측된다.

* 대체 이놈의 책은 이런거 검수 한 번 안하고 출판했는지 이해가 가지 않는다.

* 정상적으로 설치가 되었음을 확신한다면, 다음 단계로 이동하자.

 

# 테스트 디렉토리 생성 및 시스템 기본 설정 파일 경로 지정

 root@Root-Image:~#mkdir /root/testnet

 root@Root-Image:~#cd /root/testnet

 root@Root-Image:~#cp /root/gopath/src/github.com/hyperledger/fabric/sampleconfig/core.yaml /root/testnet/core.yaml

root@Root-Image:~#cp /root/gopath/src/github.com/hyperledger/fabric/sampleconfig/orderer.yaml /root/testnet/orderer.yaml

* 위의 파일들을 모두 옮겨준 후에 다음과 같이 profile을 수정해준다

 root@Root-Image:~#gedit /etc/profile

 export FABRIC_CFG_PATH=/root/testnet

 root@Root-Image:~#source /etc/profile

블로그 이미지

김생선

세상의 모든것을 어장관리

,