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 개발 환경 구축하기 (VS Code, vim)
[Ubuntu] docker / docker-compose 설치
를 참고해주세요. 이제 시작합니다.
1. 직접 설치
사실 직접설치보다는 2번의 도커로 받는것을 추천합니다.
1. 코드 받아오기
일단 혹시 모르니 GOPATH를 확인해봅시다.
go env
로 확인 가능합니다.
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
2. 빌드하기
이제 다운을 받았으니 빌드를 해봅시다.
일단 이동이랑 환경변수 설정부터 하죠.
cd $FABRIC
export PATH=$GOPATH/bin:$PATH
하고 빌드를 합니다.
make dist-clean all
뭔가 막 돌아가면서 make 되기 시작합니다.
에러가뜨면 로그를 보고 갓 구글신과 함께 차근차근 되짚어가면서 해결해주세요.
시간이 꽤 걸리는 편입니다.
uni-test라고 단위테스트는 실패해도 설치는 제대로 된거입니다.
3. 테스트
cd examples/e2e_cli
./network_setup.sh up
확인해봅시다.
요렇게 나오고
주르륵 내려가다
요렇게 나오면 된것입니다.
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
를 해봅시다.
요렇게 시작하고나서 주르륵 내려갑니다.
요렇게 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
하면 아마 돌아갈겁니다. 아마..?
'Security > BlockChain' 카테고리의 다른 글
[fabric] 하이퍼레저 패브릭 구조 (3) - CA / MSP (0) | 2019.08.20 |
---|---|
[fabric] 하이퍼레저 패브릭 구조 (2) - 논리적 구성요소 (0) | 2019.08.14 |
[fabric] 하이퍼레저 패브릭 구조 (1) - 기본 구성과 흐름 (1) | 2019.08.09 |
[fabric] 하이퍼레저 패브릭 (0) | 2019.08.08 |
[fabric] 기업형 블록체인 - 하이퍼레저 (1) | 2019.08.07 |