Bitcoinの公式実装であるBitcoin Core。他のブロックチェーンの実装でもBitcoin Coreをフォークした実装が多く、手軽にオレオレ ブロックチェーンを作るのであればBitcoin Coreをフォークするのがお手軽。
ということでBitcoin Coreをソースからビルドしてみる。
最初にビルド手順を把握しておく。今回ビルドに利用するのはUbuntu 14.04 LTSなので以下のドキュメントを参考にする。
ざっとインストールに必要なのが↓
Ubuntu & Debianでのビルドの依存関係
ビルドに必要な以下のライブラリをインストールしておく必要がある。
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
Ubuntu 14.04以上とDebian 7以上であればboost開発パッケージがある。boostパッケージの必要な部分のみインストールするには↓。
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
もしそれでうまくいかない場合はboostの開発パッケージをインストールする。
sudo apt-get install libboost-all-dev
ウォレットではBerkeleyDBが必要になる。db4.8のパッケージは、ここから入手可能。以下のコマンドでパッケージリポジトリを追加しlibdbをインストールする。
sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install libdb4.8-dev libdb4.8++-dev
UbuntuとDebianはそれぞれ独自にlibdb-devとlibdb++-devのパッケージを持ってるけど、これはBerkeleyDB 5.1以降のもので、BerkeleyDB 4.8ベースで配布済みのバイナリウォレットと互換性がないので、↑のように4.8ベースのライブラリをインストールする必要がある。ウォレットの互換性を気にしないのであればconfigureのオプションで--with-incompatible-bdbを付加すれば良い。
Disable-wallet mode
ウォレットは不要でP2Pノードとしてのみ起動する場合は以下のオプションを付けてdisable-wallet modeでコンパイルする。
./configure --disable-wallet
この場合、BerkeleyDB 4.8の依存性は必要なくなる。
GUI用の依存関係
GUIを利用するBitcoin-Qtをビルドしたい場合は、Qtの開発パッケージをインストールする必要がある。Qt5かQt4が必要で両方インストールされてる場合はQt5が使われる。configureオプションで--with-gui=qt4を指定すればQt4を使う。GUIが不要な場合は--without-guiオプションを付加してビルドする。
Qt5をインストールする場合(推奨)は以下のパッケージをインストールする。
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
Qt4の場合は↓
sudo apt-get install libqt4-dev libprotobuf-dev protobuf-compiler
オプションで、QRコードを生成したい場合は↓もインストール。
sudo apt-get install libqrencode-dev
Qtがインストールされると、configureやbitcoin-qtの実行ファイルのビルド時に勝手に見つけてくれる。
miniupnpc
miniupnpcはUPnPのポートマッピングで使われる。ここからダウンロード可能。以下コンパイルオプション。
--without-miniupnpc UPnP サポート無し(なのでminiupnp も不要) --disable-upnp-default (デフォルト) 起動時にデフォルトでUPnPサポートをオフにする --enable-upnp-default 起動時にUPnPサポートをデフォルトでオンにする
UPnPをサポートする場合、事前に↓をインストールしておく。
sudo apt-get install libminiupnpc-dev
ビルド
準備は整ったので実際にビルドしてみる。
git clone [email protected]:bitcoin/bitcoin.git cd bitcoin ./autogen.sh make
makeに大体、2,30分くらいかかる。
make installしてもいいけど、src直下にbitcoindやbitcoin-cliといったおなじみの実行ファイルが生成されてるので、それを実行するとbitcoindが起動する。起動するとホームディレクトリにもおなじみの.bitcoinディレクトリができてる。