개발 환경
- 가상화 환경 소프트웨어
- Oracle Virtual Box 6.0.14
- 리눅스 게스트 OS
- Ubuntu 16.04.x
- 필요 도구 및 소프트웨어
- cURL
- Docker Community Edition 17.06 이상
- Docker Compose 1.14.0 이상
- Golang 1.11.x
- Git 2.9.x 이상
- Python
- Node.js
Ubuntu 18.04.1 LTS
cURL은 URL을 통해 데이터를 전송할 수 있는 도구이다.
HTTP, HTTPS 뿐만 아니라 FTP, SMTP 등 많은 프로토콜을 지원한다.
$ sudo apt install curl
$ curl -v
도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 애플리케이션을 컨테이너라는 계층으로 격리시켜 OS에 관계없이 컨테이너 안에서 개발, 배포, 운영할 수 있도록 제공하고, 어느 환경에서도 동일하게 실행한다.
$ curl -fsSL https://get.docker.com/ | sudo sh
// user 계정 추가
$ sudo usermod -aG docker $USER
$ sudo reboot
$ docker -v
도커 컴포즈는 여러 개의 도커 컨테이너를 정의하고 실행하는 개발자 편의 도구이다. YAML 파일을 사용해 각 컨테이너들의 설정 정보를 쉽게 정의할 수 있으며, 컨테이너를 명령어로 간단히 생성하고 시작할 수 있다.
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o usr/local/bin/docker-compose
// 실행 권한 설정
$ sudo chmod +x /usr/local/bin/docker-compose
$ cd /usr/local
$ sudo wget https://storage.googleapis.com/golang/go1.11.1.linux-amd64.tar.gz
$ sudo tar -C /usr/local/ -xzf go1.11.1.linux-amd64.tar.gz
// 환경변수 설정
GOPATH 등 설정
sudo apt-get install git
git --version
Python 2.7버전 설치
sudo apt install -y python
python --version
Python 2.7.17
Hyperledger Fabric SDK에서 Node.js를 사용한다. Node.js는 확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼이다.
Node.js는 자체적으로 HTTP 서버 라이브러리를 포함하고 있기 때문에 아파치와 같은 별도의 웹 서버가 없어도 웹 서비스를 제공한다.
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
$ sudo reboot
// nvm 커맨드 명령어로 설치
$ nvm install 8
// node.js 버전 8 선택
$ nvm use 7
npm은 Node Package Manager의 약자로 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. Node.js를 설치하면 npm이 설치된다.
$ npm install npm@5.6.0 -g
$ node -v
v8.16.2
$ npm -v
5.6.0node
우분투에 설치
자바 버전 8 설치
자바로 체인코드 개발을 위한 자바 설치
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt update
$ sudo apt install openjdk-8-jdk openjdk-8-jre
자바 빌드 툴
sudo apt install gradle
우분투에 설치
$ cd $GOPATH/src
$ curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.3 1.4.3 0.4.15
$ cd $GOPATH/src/fabric-samples/first-network
$ ./byfn.sh generate
$ ./byfn.sh up
$ ./byfn.sh down
byfn.sh
라는 쉘 스크립트 파일을 통해 네트워크 시작함generate
: 필요한 인증서들, 블록 생성up
: First Network 시작down
: First Network 종료