Bitcoin 소스 코드 빌드

Bitcoin 소스 코드 빌드

Bitcoin 소스코드는 Bitcoin 공식 깃허브 사이트인 https://github.com/bitcoin/bitcoin 에 저장되어 있으며, 여러 운영체제에서 빌드할 수 있는데 여기서는 Ubuntu 20.0 을 사용하여 빌드하는 과정을 설명한다.

(1) 소스코드 다운로드

Bitcoin 소스코드를 Github에서 다운로드(clone)한다.

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

특정한 버전을 빌드하기 위해 "git tag -n" 을 사용하여 원하는 버전을 찾아내고, 이를 사용하도록(checkout) 설정한다.

    $ git tag -n | sort -V

    $ git checkout v0.21.0        (v0.21.0 버전을 빌드하는 경우)

참고로 git을 사용하지 않고, 아래와 같이 압축된 소스코드를 다운받아 사용할 수도 있다.

    $ wget https://github.com/bitcoin/bitcoin/archive/refs/tags/v0.20.2.tar.gz
    $ tar -xvzf v0.20.2.tar.gz

(2) Dependancy 설치

Bitcoin 소스코드는 여러 Dependancy들을 가지고 있는데, 정상적인 빌드를 위해 아래와 같은 라이브러리/패키지들을 설치한다.

    $ sudo apt-get update -y

    $ sudo apt-get install automake autotools-dev bsdmainutils build-essential ccache git libevent-dev libboost-all-dev
    libminiupnpc-dev libqt5gui5 libqt5core5a libqt5dbus5 libsqlite3-dev libtool pkg-config python3 qttools5-dev
    qttools5-dev-tools

(3) Berkeley DB 4.8 설치

Bitcoin은 Berkeley DB 4.8 (BDB 4.8)을 사용하고 있는데, Wallet에서 특히 4.8 버전을 사용하기 때문에 아래와 같은 방식으로 이 특정 버전을 설치한다.

    $ ./contrib/install_db4.sh `pwd`     (bitcoin git 폴더에서)
    ....(생략)...
    db4 build complete.

    When compiling bitcoind, run `./configure` in the following way:
    export BDB_PREFIX='/home/aroot/btc/bitcoin/db4'
    ./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include" ...

(4) 빌드 (Build)

빌드를 실행하기 위해서는 먼저 BDB_PREFIX 환경 변수를 설정하고, autogen.sh 를 실행한 후, configure 를 실행하여 빌드를 위한 준비 과정을 진행한다. 이러한 준비과정이 에러 없이 끝나면, make 를 사용하여 빌드한다.

    $ export BDB_PREFIX='/home/aroot/btc/bitcoin/db4'
    $ ./autogen.sh 
    $ ./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include"

    $ make 

만약 멀티코어 컴퓨터를 가진 경우, (CPU 코어 갯수 + 1) 만큼의 job을 만들어 실행하면 더 빠르게 빌드할 수 있다. 예를 들어, 4 코어인 경우 아래와 같이 실행한다.

    $ make -j 5         (혹은 make -j "$(($(nproc)+1))")

빌드가 끝나면, src/ 폴더 안에 bitcoind, bitcoin-cli 등과 같은 Bitcoin 실행파일들이 생성된다.

(5) Bitcoin Core 설치

빌드가 완료된 후, 아래와 같은 명령을 실행하면 Bitcoin 실행파일을 어디에서나 실행할 수 있게 된다.

    $ sudo make install  

이 명령은 Bitcoin Core 바이너리들을 /usr/local/bin 에 설치한다.

     $ ls -l /usr/local/bin
    -rwxr-xr-x 1 root root 307991112 Feb 14 20:39 bench_bitcoin
    -rwxr-xr-x 1 root root 25584040 Feb 14 20:39 bitcoin-cli
    -rwxr-xr-x 1 root root 278106208 Feb 14 20:39 bitcoind
    -rwxr-xr-x 1 root root 350560160 Feb 14 20:39 bitcoin-qt
    -rwxr-xr-x 1 root root 39446592 Feb 14 20:39 bitcoin-tx
    -rwxr-xr-x 1 root root 132495808 Feb 14 20:39 bitcoin-wallet
    -rwxr-xr-x 1 root root 529617744 Feb 14 20:39 test_bitcoin
    -rwxr-xr-x 1 root root 365871016 Feb 14 20:39 test_bitcoin-qt
본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.