본문 바로가기

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

[Hyperledger Fabric] 하이퍼 레저 패브릭 네트워크 환경 구축 with virtualbox, vagrant, ubuntu, docker 본문

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

[Hyperledger Fabric] 하이퍼 레저 패브릭 네트워크 환경 구축 with virtualbox, vagrant, ubuntu, docker

✍21시간 2019. 8. 22. 09:00

블록체인은 크게 3가지가 있다고 생각하면 되요!
퍼블릭(public), 프라이빗(private), 컨소시엄(conthosium) 으로 분류 됩니다.

이번 포스팅은 컨소시엄 블록체인을 구현할수 있는
IBM 리눅스 재단 에서 내놓은 하이퍼레저 패브릭 (1.4.7 버전) 환경 구축을 해볼까 합니다.

단계별로 따라오면 어렵지 않게 설치 하실 수 있을꺼에요. (ง •̀ω•́)ง✧

 

 

 

※ 설치 환경 요소

- Windows 환경
- 버추얼박스(with vagrant)
- ubuntu ISO, 도커

 

 

1. 로컬 PC 에 VM올리기 위한 유틸 다운로드

버추얼박스 설치 - https://www.virtualbox.org/

 

Oracle VM VirtualBox

Welcome to VirtualBox.org! News Flash New May 14th, 2019VirtualBox 6.0.8 released! Oracle today released a 6.0 maintenance release which improves stability and fixes regressions. See the Changelog for details. New May 14th, 2019VirtualBox 5.2.30 released!

www.virtualbox.org

 

베이그런트 설치 - https://www.vagrantup.com/

 

Vagrant by HashiCorp

Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.

www.vagrantup.com

베이그런트 사용시 게스트 이미지는 vagrant box 라는 파일에 저장되어 진다. 보통 .box라는 확장자 이름을 가진다.

(윈도우 사용자 경우 사용자 이름이 한글이면 문제 될 가능성 있음)

 

 

 

2. 가상화 게스트 OS(Ubuntu) 설치 및 vagrant box (ubuntu) 다운로드

명령 프롬프트 실행 후 명령어 입력

vagrant box add ubuntuXXXX https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-vagrant.box

(XXXX) 자리에 받고자 하는 버전 정보를 입력하면 된다. 예) 1804

(등록된 베이그런트 박스 이미지 목록 확인 - vagrant box list)

 

 

3.  box 확인 & vagrantfile 만들기

(vagrantfile - 게스트OS 환경을 설정하기 위한 루비 스크립트 파일이다.)

- 1번 "vagrant box list" 명령어 를 통해 box 네임을 정확하게 확인합니다.

  2번 작업을 원하시는 경로로 이동 합니다. 이 후 "vagrant init ubuntu1804" 명령어를 실행 해 주시면 위와 같은 문구가 뜨면서 원하신 경로 아래 vagrantfile 설정 파일이 생성됩니다.

  3번 vagrantfile 설정 파일을 수정 해 주셔야 하는데 밑줄 그어진 첫번째 줄은 라인 서두에 #제거, 두번째 줄은 4096으로 수정 후 #제거, 세번째 줄 또한 #제거 해주시면 됩니다.

 

 

 

4. VM 올리기 ( vagrant up )

아래 명령어를 통해 VM 을 올리기만 하면 된다.

$vagrant up

이 후 VM 에 접속 하기 위한 명령어

$vagrant ssh

 

※ 기타 설정 및 명령어

로그인 후 초기 설정

bash shell 프롬프트 설정
$echo 'export PS1="\[\e[34;1m\]\w\[\e[m\]$ "' >> ~/.profile | source .profile

사용자 패스워드 변경
$sudo passwd vagrant

한국 표준시로 설정
$sudo timedatectl set-timezone Asia/Seoul | timedatectl

- vagrant 명령어
vagrant suspend, vagrant resume, vagrant halt, vagrant up, vagrant destroy, vagrant list, bagrant box list, vagrant box add, vagrant init

 

 

5. VM ( Ubuntu ) 필요한 도구 설치

 

1) 도커 CE 커뮤니티 버전 설치

$sudo apt update
$sudo apt upgrade
$sudo apt -y install apt-transport-https ca-certificates curl software-properties-common
$curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

$sudo apt update
$sudo apt -y install docker-ce

2) 도커 그룹 추가 후 현재 사용자 도커 그룹에 편입 후 재 로그인

$sudo usermod -aG docker vagrant

3) 도커 컴포즈를 설치

$sudo apt -y install docker-compose

4) 파이썬 설치 유무 파악

$python -V

5) 설치 안되있을 경우 

$sudo apt -y install python

도커 설치 후 재 로그인 필수!!

 

6) Go 언어 설치

$wget https://dl.google.com/go/go1.10.4.linux-amd64.tar.gz
$sudo tar -C /usr/local -xzf go1.10.4.linux-amd64.tar.gz
$echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile

$cd
$mkdir go
$echo "export GOPATH=$PWD/go" >> ~/.profile
$echo "export GOROOT=/usr/local/go" >> ~/.profile

$source ~/.profile

$echo "export PATH=$PATH:$GOROOT/bin" >> ~/.profile


$source ~/.profile

 

7) Nodejs, npm 설치 

$curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
$sudo apt install nodejs

nodejs & npm 버전 체크
$node --version
$npm --version

 

8) GNU make, gcc/g++, libtool 설치

$sudo apt -y install make gcc g++ libtool

 

 

 

6. 하이퍼레저 패브릭 설치 및 명령어 디렉토리 설정

$mkdir fabric
$cd fabric
$curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.7
(위 과정에서 도커 이미지도 다운받게 되는데 계정에 docker 접근 권한이 필요 합니다.)

$echo "export FABRIC_HOME=$HOME/fabric/fabric-samples/bin" >> ~/.profile
$echo "export PATH=$PATH:$FABRIC_HOME" >> ~/.profile
$source ~/.profile

 

(※ 하이퍼 레저 패브릭 소스 설치)

$mkdir -p $GOPATH/src/github.com/hyperledger
$cd $GOPATH/src/github.com/hyperledger
$git clone -b release-1.4 https://github.com/hyperledger/fabric

 

Comments