にほんブログ村
仮想通貨(暗号資産)の勉強のために、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
ちゃんとテストネットで同期が始まったようです。これでビルドできて使えることを確認できました。
今後は、他の仮想通貨もビルドしてみようかと思います。ゆくゆくはソースコードの中身も見て理解できるようになりたいと思っています。