mac OS High Sierra でBitcoin Coreをビルド
参考:
Bitcoinのエコシステムに加わりたいと思うなら避けては通れない(と勝手に思っている)Bitcoin Coreをビルドしてみようと思います。
ビットコインコアとは
ビットコインのリファレンスクライアント実装です。このクライアントはビットコインシステムのすべての機能が実装されています。
- ウォレット
- トランザクション認証エンジン(ブロックチェーンの全データを保持する機能)
- peer-to-peerのビットコインネットワークノード
ビットコインコアを触ってみたいだけで、ビルドなんかに興味がないという方は下記サイトから.dmg
をインストールし、簡単にインストールすることもできます。
ビットコインコア for mac
GitHubからclone
早速、GitHubからBitcoin Coreのソースコードをクローンします。
GitHubのBitcoinリポジトリはこちらです。
$ git clone https://github.com/bitcoin/bitcoin.git
お好きなブランチを使用してください。僕は現在最新のリリースタグを使うことにしました。
$ git checkout v0.17.0rc2
build-osx.mdを読む
ビルドしようとしている環境ごとにビルド説明書が丁寧に用意されています。
/doc/build-osx.md
が今回僕が読むべきドキュメントです。
以降はほぼbuild-osx.md
様の仰せのとおりに動いただけです。
事前にインストールが必要なもの
build-osx.md
曰く、以下のインストールが必要。
- homebrew
- そして、homebrewで一気にいろいろインストール
$ brew install automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf python qt libevent qrencode
- Berkeley DB
自身でビルドする場合は
Berkeley DB
の使用を推奨されている。 クローンしてきたbitcoin
リポジトリのルートにて、
$ ./contrib/install_db4.sh .
このコマンドによってBerkeley DBのインストールが完了したメッセージと共に表示される下記のexport
と.configure
文をメモしておく。
db4 build complete.
When compiling bitcoind, run `./configure` in the following way:
export BDB_PREFIX='/Users/yuki/develop/bitcoin/db4'
./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include" ...
ビルド
いよいよビルド作業が始まります。
1. autogen.sh
autogen.sh
スクリプトにより、ビットコインコアをビルドしようとしている環境に合わせた各種設定ファイル等が自動的に生成されます。後述するconfigure
ファイルもこのスクリプトにより生成されます。
autogen.sh
スクリプトはプロジェクトルートにあるので、プロジェクトルートにて
$ ./autogen.sh
2. configureのオプション確認
configure
により、環境フレンドリなビルドスクリプトが生成されます。
ちなみに、./configure --help
でconfigureする際に指定可能な様々なオプションを確認することができます。
$ ./configure --help
...中略...
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/bitcoin]
--htmldir=DIR html documentation [DOCDIR]
...中略...
特にオプションを指定しなければビットコインコアは/usr/local/bin
, /usr/local/lib
etc にインストールされるようです。
その他、うんざりするほどたくさんのオプションを紹介してくれます。まだBitcoin Coreを触っていない初心者には、正直何を言っているのかさっぱりなオプションがほとんどなので、今回は見るだけ。
3. configure
特にオプションを指定しないには先述のとおりなので、autogen.sh
時に言われたことだけやります。
言われたことだけとは言ったものの、コマンド末尾に...
は入れません。これは、オプションつけたいならこれに続くよ的な意味です。
$ export BDB_PREFIX='/Users/yuki/develop/bitcoin/db4'
$ ./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include"
4. make + install
./configure
で特にエラーもなかったのでmake
します。
$ make
しばらく時間がかかりますが、特にエラーが出なければビルド完了です。
$ sudo make install
により、インストールされ、bitcoind
などのコマンドがそのまま利用できるようになります。
$ which bitcoind
/usr/local/bin/bitcoind
$ which bitcoin-cli
/usr/local/bin/bitcoin-cli
5. チェック
一応推奨されてます。unit testが実行されます。
$ make check
テストが通ればビルド完了です!
今回特に触れませんでしたが、もし.app
ファイルをインストールしたい場合は.dmg
を作るために
$ make deploy
することもできます。ただしこの場合は、configure
する前にhonebrew
でlibrsvg
をインストールしておく必要があります。
$ brew librsvg
まとめ
実際のところ、ごくごく普通のUNIX系OSにソースコードからビルドする手順そのものでした。
特に引っかかる箇所もなく非常にスムーズに完遂できてしまいました。
次回、Bitcoin Coreを動かしてみる の巻
Author And Source
この問題について(mac OS High Sierra でBitcoin Coreをビルド), 我々は、より多くの情報をここで見つけました https://qiita.com/obr_y/items/f5cdc2d53e9f46c3fe79著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .