環境: Mac OS X 10.9.2
2014年3月27日時点の情報です。
事前準備
- XCode
- Git
- Homebrew か MacPorts (今回はHomebrewのみ説明)
手順
Homebrew で 依存するソフトウェアをインストール
brew install autoconf automake libtool berkeley-db4 boost miniupnpc openssl pkg-config protobuf qt
opensslのバージョンをチェック
openssl version
OpenSSL 1.0.1f 6 Jan 2014. と表示されるはず。
とマニュアルに書いてあるが、僕の環境では以下のように表示された。
% openssl version
OpenSSL 0.9.8y 5 Feb 2013
表示されない場合は…
/usr/bin/openssl を叩いているだけで、/usr/local/bin/openssl を実行させればいいだけかも。
* その場合は、shellのpathの検索順序を変える
* rehash とか which openssl 等で確認する。
でも、ダメな場合、以下をする
% brew link openssl --force
Linking /usr/local/Cellar/openssl/1.0.1f... 1139 symlinks created
これで、正しくバージョンを表示するはず…
bitcoind をビルド
- GitHubをクローンして、ソースコードをゲット!
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
- bitcoind をビルド
./autogen.sh
./configure
make
コンパイル時間: 僕の MacBook Air で20分位?
- ユニットテストを実行
make check
インストール
マニュアルには、インストール方法は書いてないが…
インストールは、場所やパーミッションに注意して下さい。
make install すると /usr/local/bin 以下に入る
なぜか普通のユーザ権限でも入っちゃうので、bitcoindはパーミッションに注意必要?
以下が配置される
- bitcoin-cli
- bitcoind
- bitcoin-qt
実行
srcディレクトリに bitcoind ができる
bitcoin.conf
以下のコマンドで bitcoin.conf を作る
echo -e "rpcuser=bitcoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
chmod 600 "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
bitcoin.confの設定の仕方は、以下を参考に
bitcoin.conf の書き方 まとめ | block-chain.jp
実行
注意) 本番ブロックチェーン(livenet)は、30Gとかあります。開発の場合は、testnetをを使うといいでしょう。
実行するとブロックチェーンをダウンロードし始める。が、何も表示しない。
これは数時間かかるかもしれない。
プロセスを見たい場合は、以下を実行
tail -f $HOME/Library/Application\ Support/Bitcoin/debug.log
実行コマンドの例
$ /usr/local/bin/bitcoind -debug -debugnet -printtoconsole
その他コマンド
./bitcoind -daemon # to start the bitcoin daemon.
./bitcoin-cli --help # for a list of command-line options.
./bitcoin-cli help # When the daemon is running, to get a list of RPC commands
開発&テスト用Bitcoinネットワーク
以下のスライドが参考になります。
VMwareでいくつかのデーモン、クライアント作成してテストのようで。
注意
- ブロックチェーンが、本番ネットワークで何十G, テストネットでも数Gもあるので、サーバやWifiの転送量に注意。
- メモリも食うようです。メモリ少ないPCや、レンタルサーバ等は注意。
ちなみに
僕の環境では、以下のようなwarningが出ました。
% ./autogen.sh [master]
configure.ac:712: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
configure.ac:712: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
configure.ac:712: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
configure.ac:712: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
configure.ac:712: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
参考URL
公式GitHubレポジトリの説明(英語)
bitcoin/doc/build-osx.md at master · bitcoin/bitcoin