본문으로 바로가기

[fabric] Hyperledger Fabric 1.4 설치하기

category Security/BlockChain 2019. 10. 2. 17:48

Ubuntu18.04에서 진행하였습니다.

CentOS같은 다른 리눅스등에서도 거의 동일(apt->yum 등)합니다.

 

"gcc", "make", "git", "node.js", "Go", "docker", "docker-compose" 

make, gcc, node.js, git, python, python-pip, curl 등이 기본적으로 설치되어있어야 합니다.

apt-get install gcc make nodejs git

sudo apt install python python-pip

sudo apt install curl

과 같은 방법으로 쉽게 설치 가능합니다. 물론 한줄로 쳐도 무관...

 

Go와 도커의 경우는

[GoLang] Go 설치하기 (리눅스/윈도우)

[GoLang] Go 개발 환경 구축하기 (VS Code, vim)

[Ubuntu] docker / docker-compose 설치

 

를 참고해주세요. 이제 시작합니다.

1. 직접 설치

사실 직접설치보다는 2번의 도커로 받는것을 추천합니다.

1. 코드 받아오기

일단 혹시 모르니 GOPATH를 확인해봅시다.

go env

로 확인 가능합니다.

GOPATH 확인

GOPATH를 확인하셨으면 임시 환경변수를 만들겠습니다.

export GOPATH={사용자의 GOPATH 경로}

로 임시 환경변수를 만들었습니다.

이제 GOPATH에 하이퍼레저 패브릭을 받아올 준비를 합니다.

 

mkdir -p $GOPATH/src/github.com/hyperledger

로 디렉토리를 생성해주고

FABRIC=$GOPATH/src/github.com/hyperledger/fabric

FABRIC이라는 임시 환경변수를 등록해줍니다.

이제 패브릭을 받아옵시다. 저는 1.4 버전을 받아오겠습니다.

git clone -b release-1.4 https://github.com/hyperledger/fabric $FABRIC 

 

git clone

 

2. 빌드하기

이제 다운을 받았으니 빌드를 해봅시다.

일단 이동이랑 환경변수 설정부터 하죠.

cd $FABRIC

export PATH=$GOPATH/bin:$PATH

하고 빌드를 합니다.

make dist-clean all

 

뭔가 막 돌아가면서 make 되기 시작합니다.

에러가뜨면 로그를 보고 갓 구글신과 함께 차근차근 되짚어가면서 해결해주세요.

시간이 꽤 걸리는 편입니다.

uni-test라고 단위테스트는 실패해도 설치는 제대로 된거입니다.

3. 테스트

cd examples/e2e_cli

./network_setup.sh up

확인해봅시다.

start-e2e

요렇게 나오고

주르륵 내려가다

end-e2e

요렇게 나오면 된것입니다.

 

1.4.*버전이 언젠가부터 github레포지토리에서 e2e_cli가 사라져버렸습니다.

많은 사람들이 설치후 테스트를 못해 당황하는것으로 보이지만 

테스트가 위해서는 BYFN으로 대체된것으로 보입니다. 

(7ff25ef d327d30ad760ed6e6a7728788e9e6a94e23d0179)에서 변경된것으로 보입니다.

BYFN 테스트 방법은 아래에 있습니다.

 

추천하지는 않지만 그래도 본인은 꼭 e2e_cli로 테스트하고 싶다면

1.4.0버전으로 되돌리면 됩니다..

cd $FABRIC

git reset --hard 2cfb4bf4e32d8964475c8214f6673b1ca8418443

 

를 이용해 예전버전으로 make하면 e2e_cli를 이용하실수 있습니다.

이 방법은 저는 추천하지는 않습니다...

 

 

2. 도커 이용

1. 다운로드

node, go, docker, docker-compose 등의 설치가 이미 끝났다는 가정하에 시작합니다.

npm install --global grpc

혹시모르니 grpc를 설치해두겠습니다.

 

디렉토리나 기타등등 을 다운받아봅시다.

mkdir -p $GOPATH/src/github.com/hyperledger

cd $GOPATH/src/github.com/hyperledger

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

cd $GOPATH/src/github.com/hyperledger

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

2. 테스트(BYFN)

BYFN은 build your first network의 약자입니다.

fabric 혹은 fabric-samples 디렉토리에서 시작합니다.

 

curl -sSL http://bit.ly/2ysbOFE | bash -s

 

cd $FABRIC/fabric-samples/first-network

./byfn.sh generate

 

요렇게 주르륵 뭔가 올라간 다음에

./byfn.sh up

를 해봅시다.

BYFN - start

요렇게 시작하고나서 주르륵 내려갑니다.

BYFN - END

요렇게 All GOOD 이 나오면 성공입니다.

 

 

만약 테스트를 했는데

"exec: \"scripts/script.sh\": stat scripts/script.sh: no such file or directory": unknown

혹은

error: got unexpected status: FORBIDDEN -- implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Writers' sub-policies to be satisfied: permission denied
!!!!!!!!!!!!!!! Channel creation failed !!!!!!!!!!!!!!!!
========= ERROR !!! FAILED to execute End-2-End Scenario ===========

ERROR !!!! Test failed

같은 에러가 나면 보통 도커 문제입니다..

./byfn.sh down

docker stop $(docker ps -a -q)

docker rm $(docker ps -a -q)

docker volume prune

하고 다시

./byfn.sh generate

./byfn.sh up

하면 아마 돌아갈겁니다. 아마..?