본문 바로가기

블록체인

bitcoin core 설치 - 우분투 18.04

[설치 환경]

Ubuntu 18.04 LTS (우분투만 설치한 clean 상태)


[설치 방법]

1) 바이너리 파일을 직접 설치

2) 소스코드 다운로드하여 빌드 후 설치


본 포스팅에서는 '2) 소스코드 다운로드하여 빌드 후 설치'방식으로 진행합니다.

(이유: 최신 버전, 바이너리 실행 시 예기치 않은 환경 이슈 발생 가능, 커스터마이징 가능)


이제, 터미널을 열어 봅니다. (ctrl+alt+t)






1. 우분투 패키지 매니저 업데이트


우분투 패키지매니저는 시간이 지남에따라서 패키지 의존성 등이 최신과 맞지 않을 수 있음


$ sudo apt-get update



2. Dependencies 설치


1) 빌드 도구 설치


$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3



2) 추가 필요 도구 설치


$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3


3) 선택 사항 (UPnP, ZeroMQ)


sudo apt-get install libminiupnpc-dev libzmq3-dev


4) 버클리 DB 설치

   지갑(wallet) 만들려면 필요하며, 예전 버전에 의존성을 갖기 때문에 4.8버전으로 설치합니다


$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:bitcoin/bitcoin
$ sudo apt-get update
$ sudo apt-get install libdb4.8-dev libdb4.8++-dev


5) GUI 도구 설치


sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev



3. 소스코드 컴파일 및 설치


1) git 설치

   소스코드 형상관리 도구 설치


$ sudo apt-get install git


2) 소스코드 얻기


$ mkdir src
$ cd src/
$ git clone https://github.com/bitcoin/bitcoin.git


3) 설정 및 빌드


$ cd bitcoin
$ ./autogen.sh
$ ./configure
$ make


멀티쓰레딩 옵션으로 make -j 4 컴파일 해보니, 중간에 메모리 부족으로 중단되는 현상 발생 (메모리 4G 기준)

4) 설치 - 선택사항
   bitcoin core 명령어들을 어디에서든 사용하고 싶은 경우

$ make install


4. 실행해 보기


$ src/qt/bitcoin-qt




본 포스팅을 작성하는 시점에 블록체인 데이터를 저장하기 위해서는 223GB의 디스크 여유 공간이 필요하다 합니다.

받으려면 수 시간에서 수 일이 걸린다 하며, 채굴할 의도가 없어서 중단하였습니다.


testnet, regnet을 이용해서 테스트는 얼마든지 가능합니다.

감사합니다.




※ 참고 - 의존성 모듈


bitcoin/doc 디렉토리 아래에 build-unix.md 파일 참조하시기 바랍니다.


(필수)

Library Purpose Description
libssl Crypto Random Number Generation, Elliptic Curve Cryptography
libboost Utility Library for threading, data structures, etc
libevent Networking OS independent asynchronous networking


(선택)

Library Purpose Description
miniupnpc UPnP Support Firewall-jumping support
libdb4.8 Berkeley DB Wallet storage (only needed when wallet enabled)
qt GUI GUI toolkit (only needed when GUI enabled)
protobuf Payments in GUI Data interchange format used for payment protocol (only needed when GUI enabled)
libqrencode QR codes in GUI Optional for generating QR codes (only needed when GUI enabled)
univalue Utility JSON parsing and encoding (bundled version will be used unless --with-system-univalue passed to configure)
libzmq3 ZMQ notification Optional, allows generating ZMQ notifications (requires ZMQ version >= 4.0.0)

For the versions used, see dependencies.md