このエントリーをはてなブックマークに追加 にほんブログ村 IT技術ブログ システムエンジニアへ
にほんブログ村

仮想通貨(暗号資産)の勉強のために、Ubuntu 20.04 LTSでBitcoin Core V0.21.0 (2021年3月6日時点で最新)をビルドしたときの手順メモです。

・gitのインストール

$ sudo apt install git

・bitcoin coreの取得

$ git clone https://github.com/bitcoin/bitcoin.git
$ cd bitcoin/
$ git checkout v0.21.0

以下のパッケージのインストールは、色々なサイトの情報を個人的にマージしてみたものです。ひょっとするとパッケージの依存関係等で不要な指定もあるかもしれません。
・ビルドに必要なパッケージのインストール(1)

$ sudo apt install -y build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils

・ビルドに必要なパッケージのインストール(2)

$ sudo apt install -y libboost-all-dev

・ビルドに必要なパッケージのインストール(3)

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

・ビルドに必要なパッケージのインストール(4)

$ sudo apt install -y libminiupnpc-dev libzmq3-dev

・BDB4のインストール
Bitcoinは、Berkeley DB 4.8を使うようなので、Bitcoinのソースコード一式の中にあったインストールシェルを使用してBerkeley DBをインストールします。

$ cd       # ホームに移動
$ mkdir bdb4  # ホーム配下にbdb4を作ってそこに入れる(/user/local配下でもよいかも)
$ cp bitcoin/contrib/install_db4.sh .  # 提供されているシェルをホームにコピー
$ ./install_db4.sh ~/bdb4  # インストールシェルを実行

・bitcoin core のビルド
さて、本題のbitcoin coreのビルドです。Berkeley DBの参照の指定とインストール先の指定を行っています。

$ cd ~/bitcoin
$ ./autogen.sh 
$ ./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include" --prefix=$HOME/bc
$ make
$ make install

筆者の環境では、これでビルドが成功しました。
「${HOME}/bc」配下に「bin」「include」「lib」「share」ディレクトリができており、「bin」配下には、「bitcoind」「bitcoin-cli」「bitcoin-qt」などの主要なプログラムができていました。

・実行してみる
まずはパスを通して、テストネット動作するように「bitcoin.conf」を作っておきます。

$ vi ~/.bashrc
PATH="${PATH}:${HOME}/bitcoin/bin" # パスを追加

$ mkdir ~/.bitcoin  # bitcoinのカレントディレクトリを作成
$ cd .bitcoin  # bitcoinのカレントディレクトリに移動
$ vi bitcoin.conf  # テストネット用の設定を作成(以下)
testnet=3  # テストネット用の指定
txindex=1  # テストネット用の指定
rpcuser=hogehoge  # 認証用のユーザー名
rpcpassword=hogehoge  # 認証用のパスワード

次にwalletを起動してみます。

$ bitcoin-qt

bitcoin-core-qt-test.png

ちゃんとテストネットで同期が始まったようです。これでビルドできて使えることを確認できました。
今後は、他の仮想通貨もビルドしてみようかと思います。ゆくゆくはソースコードの中身も見て理解できるようになりたいと思っています。