시스템 아키텍처
시스템 요구사항
JVM Memory
- JVM 메모리 최소 4GB
OS
- 메모리 크기 6GB
- 최소 20GB의 하드디스크
하이퍼레저 비수 기본 개념 간단하게 정리
하이퍼레저 비수란?
- 하이퍼레저 비수는 아파치2.0 라이선스에 따라서 개발되었으며, 자바로 작성된 오픈소스 이더리움 클라이언트이다. 비수는 사설 네트워크에서 안전하며 고성능 트랜잭션 처리가 가능한 엔터프라이즈 앱에 개발하기 좋은 오픈소스이다.
합의 알고리즘
- Pow(Ethash) : 마이닝 증명으로 블록생성, 보상 개념의 알고리즘(비트코인, 이더리움)
- PoA(Clique, IBFT2.0, QBFT) : 개인신원을 이용한 블록 유효성 검사하며, 보상받을 권리 대신 개인신원 확인만 하는 알고리즘
IBFT란?
- 이스탄불 비잔틴 장애 허용 매커니즘의 줄임말
- 시스템이 멈추거나 에러 메시지를 내보내는 장애 뿐만 아니라, 잘못된 값을 다른 시스템에 전달하는 등의 좀 더 원인을 파악하기 어려운 장애들 까지 포함한 말이며, 비잔티움 장애 허용이 구현된 시스템은 미리 정해진 정도를 넘지않는 부분에서 어떠한 현태의 장애가 있더라도 정확한 값을 전달할 수 있는 시스템
하이퍼레저 비수 구축하기 위한 서버 환경 구성
전제 조건
- docker 및 docker-compose
도커 우분투 이미지 다운로드
1
docker pull ubuntu
도커 이미지명 및 태그 변경
1
docker image tag ubuntu:latest ms_peer:hoya
기존 우분투 이미지 삭제 및 결과 확인
1
docker rmi ubuntu && docker images
컨테이너 실행
1
docker run -id --name ms_peer {이미지아아디} /bin/bash
컨테이너 진입
1
docker exec -it ms_peer /bin/bash
apt(패키지 관리 명령어 도구) 업데이트
1
apt-get update && apt-get upgrade
하이퍼레저 비수 구성에 필요한 툴 설치
1
apt-get install vim unzip wget jq -y
JDK 11 설치
1
apt-get install openjdk-11-jdk && vi ~/.bashrc
JDK 환경설정 저장후 스크립트 적용
1
2
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
export PATH=${PATH}:$JAVA_HOME/bin
언어 패키지 설치
1
apt-get -y install language-pack-ko
템플릿들로 부터 현재 시스템에 파일들 생성
1
locale-gen ko_KR.UTF-8
설치된 패키지(locales)를 재설정
1
dpkg-reconfigure locales
패키지 환경설정
1
echo export LANGUAGE=ko_KR.UTF-8 export LANG=ko_KR.UTF-8 >> ~/.bashrc && source ~/.bashrc