본문으로 바로가기

비트코인 소스 빌드하기

category 비트코인/Bitcoin Core 2018. 3. 1. 10:42

최근 블록체인의 개념을 접하고 나서 개인적으로 깊게 공부를 해보고싶은 생각이 들었습니다.

한편에서는 암호화폐의 투기성이 부각되어 블록체인이라는 기술을 보지않고 암호화폐의 불필요성이 부각되는것 같습니다.

인터넷을 찾아보면 많은분들이 먼저 공유해주신 많은 정보들이 있지만, 나름 공부를 하면서 정리를 하고자 블로그에 적어보고자 합니다.


블록체인의 이론적 개념에 대해서 따로 정리를 해서 올려볼 계획이고, 먼저 가장 기본이 되는 비트코인의 소스를 빌드하는 방법부터 정리를 하였습니다.

블록체인의 모든 이론이 비트코인에 포함되어 있기 때문에 블록체인을 깊게 공부하고자 한다면 비트코인 소스를 분석하는것이 많은 도움이 될것 같습니다.

물론 블록체인의 이론이 새롭게 발명된것은 아니고, 이미 기존에 다 발명이 되었던 이론들이지만 이것을 조합하여 만든 블록체인 개념은 충분이 연구해볼 가치가 있습니다.


비트코인 소스는 다음에서 받을수 있습니다.


https://github.com/bitcoin/bitcoin


Windows에서는 위의 github에서 압축된 형태로 다운로드를 받거나, git clone을 통해서 다운받을수 있습니다.

ubuntu  에서는 git clone으로 바로 받을수 있으니 편한대로 다운받으시면 됩니다.


비트코인 소스를 Windows에서 빌드하는 방법은 상당히 복잡하기 떄문에 일단 처음에는 ubuntu에서 빌드하는것으로 시작하는것이 좋습니다.

다음정보를 하기 사이트의 정보를 참고하였습니다.


 # ubuntu를 업데이트


sudo apt-get update

sudo apt-get upgrade


# 비트코인 소스빌드를 위한 dependency 라이브러리 설치


sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev

sudo apt-get install libboost-all-dev

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

sudo apt-get install libqrencode-dev autoconf openssl libssl-dev libevent-dev

sudo apt-get install libminiupnpc-dev


# 비트코인 소스 다운로드

# ----------------------------

cd ~

git clone https://github.com/bitcoin/bitcoin.git


# 비트코인은 Berkley DB 4.8 을 사용하기 때문에 Berkley DB를 다운로드 하여 설치


# username에는 자신의 ubuntu 로그인id를 지정해줍니다.

# -----------------------------

cd ~

mkdir bitcoin/db4/

wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'

tar -xzvf db-4.8.30.NC.tar.gz

cd db-4.8.30.NC/build_unix/

../dist/configure --enable-cxx --disable-shared --with-pic --prefix=/home/username/bitcoin/db4/

make install


# Berkley DB 4.8 설정


# username에는 자신의 ubuntu 로그인id를 지정해줍니다.


# -----------------------------------

cd ~/bitcoin/

./autogen.sh

./configure LDFLAGS="-L/home/username/bitcoin/db4/lib/" CPPFLAGS="-I/home/username/bitcoin/db4/include/"


# Bitcoin 빌드, j 옵션은 코어수를 지정해주면 되며 대부분 멀티코어이니 적당한수의 코어를 지정해줍니다.

make -s -j5


# 빌드가 완료되면 하기 폴더에 bitcoind, bitcoin-cli, bitcoin-qt 3개의 실행화일이 생성됩니다.

cd ~/bitcoin/

./src/bitcoind

./src/qt/bitcoin-qt

./src/bitcoin-cli


위와같은 순서로 빌드를 하게되면 빌드가 완료됩니다.

bitcoin-qt를 실행하게되면 UI를 갖춘 실행화일 형태로 비트코인 지갑이 실행됩니다.

소스가 릴리즈버전이 아닌 master branch 로 빌드를 하였기 때문에 다음과 같은 테스트빌드 정보가 보여지고 있습니다.

첫 실행시에는 비트코인의 모든 블럭을 다운받기 때문에 상당히 오랜시간이 소요됩니다.