블록체인 기술에 관심이 있거나 암호화폐 개발에 참여하고 싶은 개발자라면 비트코인의 소스 코드를 직접 분석하고 빌드해보는 것이 좋은 시작점이 될 수 있습니다. 이 글에서는 macOS 환경에서 비트코인 코어(Bitcoin Core)를 빌드하는 전체 과정을 자세히 다루고자 합니다. 특히 의존성 패키지 관리와 빌드 과정에서 발생할 수 있는 문제점들을 해결하는 방법을 중점적으로 설명하겠습니다.
개요
비트코인 코어는 C++ 기반으로 개발되었으며, GNU Make와 Bash를 활용한 빌드 시스템을 사용합니다. 이 글에서는 macOS에서 Bitcoin Core v0.15.1 버전을 빌드하는 과정을 다룹니다. 2018년 1월 기준 안정적인 빌드가 가능한 버전입니다.
사전 준비
1. 개발 도구 설치
macOS에서 비트코인 코어를 빌드하기 위해서는 먼저 Xcode 명령줄 개발자 도구(Command Line Developer Tools)가 필요합니다. 다음 명령어로 설치할 수 있습니다:
xcode-select --install
이 명령어를 실행하면 설치 팝업이 나타나며, 이를 통해 필요한 도구들을 설치할 수 있습니다.
2. Homebrew 설치
macOS의 패키지 관리자인 Homebrew를 아직 설치하지 않았다면, 다음 명령어로 설치합니다:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3. 의존성 패키지 설치
비트코인 코어를 빌드하기 위해서는 여러 의존성 패키지가 필요합니다. Homebrew를 사용하여 다음과 같이 설치합니다:
brew install automake berkeley-db4 libtool boost@1.59 --c++11 miniupnpc openssl pkg-config protobuf --c++11 qt5 libevent
이 명령어는 빌드에 필요한 주요 의존성 패키지들을 설치합니다. 특히 Qt5는 비트코인 코어의 GUI 인터페이스를 위한 라이브러리입니다.
설치 후에는 다음과 같은 메시지가 표시될 수 있습니다:
For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/qt/lib
CPPFLAGS: -I/usr/local/opt/qt/include
For pkg-config to find this software you may need to set:
PKG_CONFIG_PATH: /usr/local/opt/qt/lib/pkgconfig
이는 패키지 설정 경로에 관한 정보로, 필요할 경우 환경 변수를 설정해야 함을 알려주는 것입니다.
소스 코드 다운로드 및 준비
1. 소스 코드 복제
GitHub에서 비트코인 소스 코드를 복제합니다:
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
2. 특정 버전으로 체크아웃
가장 안정적인 버전을 사용하기 위해 태그를 확인하고 특정 버전(v0.15.1)으로 체크아웃합니다:
git checkout tags/v0.15.1 -b v0.15.1
이 명령어는 v0.15.1 태그를 기반으로 새 브랜치를 생성하고 전환합니다.
빌드 과정
1. 빌드 시스템 초기화
autogen.sh
스크립트를 실행하여 빌드 시스템을 초기화합니다:
./autogen.sh
2. 의존성 문제 해결
Boost 라이브러리 관련 문제가 발생할 수 있습니다. 다음과 같이 configure를 실행할 때:
./configure --with-boost=/usr/local/Cellar/boost\@1.59/1.59.0/
만약 “No working boost sleep implementation found” 에러가 발생한다면, 최신 버전의 Boost로 업그레이드해야 합니다:
brew reinstall boost --c++11
그리고 새로운 Boost 경로를 지정하여 configure를 다시 실행합니다:
./configure --with-boost=/usr/local/Cellar/boost/1.66.0/
3. 소스 코드 패치
경우에 따라 소스 코드 수정이 필요할 수 있습니다. 특히 Boost 1.66.0을 사용하는 경우, 호환성 이슈가 있을 수 있습니다. 다음 GitHub 커밋을 참고하여 패치를 적용할 수 있습니다: https://github.com/BitzenyCoreDevelopers/bitzeny/commit/46ffbcd8f6b12e21bd617569e6a5a84f9119a443
4. 컴파일
다중 코어를 활용하여 컴파일 속도를 높이기 위해 -j
옵션을 사용합니다:
make -j4
이 명령어는 4개의 코어를 활용하여 병렬 컴파일을 수행합니다. 시스템의 코어 수에 맞게 조정할 수 있습니다.
5. 설치
컴파일이 완료되면 다음 명령어로 설치합니다:
make install
설치 후 다음 명령어로 설치된 바이너리 파일을 확인할 수 있습니다:
ls /usr/local/bin/bit*
결과는 다음과 같이 나타날 것입니다:
/usr/local/bin/bitcoin-cli /usr/local/bin/bitcoin-qt /usr/local/bin/bitcoin-tx /usr/local/bin/bitcoind
비트코인 코어 실행
비트코인 코어의 GUI 버전을 실행하려면 다음 명령어를 사용합니다:
/usr/local/bin/bitcoin-qt
첫 실행 시, 블록체인 데이터를 다운로드하기 위한 디스크 공간이 필요하다는 메시지가 표시됩니다. 2018년 1월 기준으로 약 153GB의 디스크 공간이 필요합니다. 비트코인이 처음 출시되었을 때는 20GB 정도면 충분했지만, 거래량이 증가함에 따라 필요한 디스크 공간도 크게 증가했습니다.
데몬 모드(백그라운드)로 실행하려면 다음 명령어를 사용할 수 있습니다:
bitcoind &
비트코인 CLI를 PATH에 추가하려면 다음 명령어를 사용합니다:
export PATH=$PATH:/usr/local/bin
결론 및 응용
비트코인 코어의 소스 코드를 직접 빌드하고 분석하는 것은 블록체인 기술을 깊게 이해하는 데 큰 도움이 됩니다. 특히 C++ 기반의 대규모 프로젝트를 다루는 경험을 쌓을 수 있고, 블록체인의 핵심 구조를 파악할 수 있습니다.
이 경험은 자체 블록체인 기반 서비스나 포인트 시스템을 개발하는 데 유용한 지식을 제공합니다. 비트코인 코어의 소스 코드는 매우 체계적으로 구성되어 있어, 블록체인의 작동 원리와 구현 방법을 학습하기에 좋은 자료입니다.
전체적으로 macOS에서 비트코인 코어를 빌드하는 과정은 다소 복잡할 수 있지만, 여러 오픈 소스 도구와 의존성 관리 시스템 덕분에 체계적으로 진행할 수 있습니다. 이러한 경험은 단순히 비트코인을 사용하는 것을 넘어, 블록체인 기술을 내부적으로 이해하고 응용할 수 있는 능력을 키우는 데 큰 도움이 될 것입니다.
답글 남기기