新品Macにbitcoindを入れて、testnetに繋いでみよう
ひっっっさしぶりの投稿です。まあ寛容に見てください。
最近パソコンをMacに変更しました。(実際は会社から支給されたため。本っっっ当にありがとうございます)長年windowsを触っていた弊害で、悪戦苦闘する場面もありますがなんとかやっております。
さて、Macに変更したので新たにbitcoindを入れ直すのですが、せっかくなのでその手順をここに記しておきます。ほぼ新品状態(このブログ前に必要最低限のプログラムは入れたので)からbitcoindを入れていきたいと思います。
windowsの時もかーーーーなり苦労して入れたのですが、今回もそれなりに労力を費やしました。これからBitcoinを触ってみよう!!という方のお力になれれば幸いです( ´∀`)
ちなみに今回参考にしたのは以下のブログです。途中経過とかどうでもいいので、さっさとやり方教えてください、みたいな人はこれを見た方が早いです(´・_・`)
今回のPC情報
PC:Macbook Pro
メモリ:16G
OS:macOS 10.14.1
事前準備
以下が必要みたいです。事前にインストールしましょう。
- ・XCode(参考:Xcode をインストールする、 iOSアプリ作成準備)
- ・Git(参考:【Gitの使い方】GitをMacにインストールする方法! | オリジナルゲーム.com)
- ・Homebrew か MacPorts (今回はHomebrewのみ説明するよ)
インストール、の前に
インストールの前に、以下のコマンドをターミナルに入力(先頭の$は必要ないよ)
$ brew install autoconf automake libtool berkeley-db4 boost miniupnpc openssl pkg-config protobuf qt
すると、
$ brew install autoconf automake libtool berkeley-db4 boost miniupnpc openssl pkg-config protobuf qt
touch: /usr/local/Homebrew/.git/FETCH_HEAD: Permission denied
touch: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/FETCH_HEAD: Permission denied
fatal: Unable to create '/usr/local/Homebrew/.git/index.lock': Permission denied
error: could not lock config file .git/config: Permission denied
Cannot rebase: You have unstaged changes.
Please commit or stash them.
Warning: berkeley-db@4 4.8.30 is already installed and up-to-date
To reinstall 4.8.30, run `brew reinstall berkeley-db@4`
Warning: boost 1.67.0_1 is already installed and up-to-date
To reinstall 1.67.0_1, run `brew reinstall boost`
Warning: miniupnpc 2.1 is already installed and up-to-date
To reinstall 2.1, run `brew reinstall miniupnpc`
Warning: openssl 1.0.2p is already installed and up-to-date
To reinstall 1.0.2p, run `brew reinstall openssl`
Error: Permission denied @ dir_s_mkdir - /usr/local/Cellar/openssl/1.0.2p/.d20181102-4907-1dbez7v
はい、エラー。幸先いいですね( *`ω´)
とりあえずググってみるとこんなのが出てきました。(Can not install/upgrade formulae cause openssl is outdated · Issue #3431 · Homebrew/brew · GitHub)
よくわからないけど、
$ sudo chown -R $(whoami) /usr/local/*
これやったら解決するよ!みたいな感じで終わってるのでとりあえずやってみましょう。終わったらbrew doctorで確認してみます。
$ brew doctor
Your system is ready to brew.
が出てきたので大丈夫っぽいです。(もしこれでYour system is ready to brew.以外の文面が出てきたら、エラーということです。ググりまくって解決しましょう!)ということでもう一度やってみましょう。
$ brew install autoconf automake libtool berkeley-db4 boost miniupnpc openssl pkg-config protobuf qt
Updating Homebrew... 以下長いので省略
できた!!でも最後に
See: https://docs.brew.sh/Homebrew-and-Python
==> protobuf
Editor support and examples have been installed to:
/usr/local/opt/protobuf/share/doc/protobuf
==> qt
We agreed to the Qt open source license for you.
If this is unacceptable you should uninstall.
qt is keg-only, which means it was not symlinked into /usr/local,
because Qt 5 has CMake issues when linked.
If you need to have qt first in your PATH run:
echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> ~/.bash_profile
For compilers to find qt you may need to set:
export LDFLAGS="-L/usr/local/opt/qt/lib"
export CPPFLAGS="-I/usr/local/opt/qt/include"
For pkg-config to find qt you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/qt/lib/pkgconfig"
とか出てきました。まあエラーじゃないし、使い方によってはPATH通せよ?みたいな感じ(多分)なので無視。
続いて一旦opensslのバージョンを見てみます。
$ openssl version
OpenSSL 1.0.1f 6 Jan 2014
見たいのが正常らしいけど、出てきたのはこちら
$ openssl version
LibreSSL 2.2.7
!!??何これ?なんか違う!
ただダメな場合は以下を打つらしいのでやってみます。
brew link openssl --force
そしたらこのブログに書かれているようなエラーが出現。macOS High Sierra(OSX)のOpenSSLをデフォルトのLibreSSLからOpenSSLに変更する - Qiita
でも、出てきたエラー文にも書いてあるように
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
とやるだけらしいので
$ echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
を入力。一回ターミナルを閉じて、もう一度開きopenssl version を入力すると
$ openssl version
OpenSSL 1.0.2p 14 Aug 2018
ふむ。まあ正常と言われているやつと微妙に違う気がするけど、気にせず進みます。
インストール
$ git clone https://github.com/bitcoin/bitcoin.git
$ cd bitcoin
$ ./autogen.sh
$./configure
$ make
$ make check
$ make install
途中の./autogen.shでエラーが出る場合は必要なものが入っていないなどだと思うので、エラーに従って入れてください。またmakeも足りないものがあると途中で止まってエラーを吐き出します。それも同様にエラーに従って必要なものをインストールしてからmakeをすれば、途中から自動でビルドしてくれます。makeは20分ぐらいかかるので気長に待ちましょう。(自分は15分ぐらいだった気がする)
※追記:2018/11/07
こんな裏技あるみたいです。
一連の流れが終わったら、ちゃんとダウンロードされているか見てみましょう。
$ which bitcoind
/usr/local/bin/bitcoind
と表示されたら大丈夫です。
Bitcoindを起動してみよう
$ bitcoind
を入力して起動してみます。
すると猛烈に動き始めます。これはメインチェーンのブロックをダウンロードしているからで、このままだと450GBほどメモリを食います。まあ、フルノードで俺は行くぜ!!という方は止めませんが、今回はテストネットでいきますので、止めます。
一旦新しいターミナルを開き、$bitcoin-cli stopで終了します。
Bitcoin server stopping
testnetに繋いでみよう
Bitcoinには、3つのネットワークが用意されています。
- メインネット …… 本番用ネットワーク(パブリック)
- テストネット …… 開発用ネットワーク(パブリック)
- regtest …… 開発用ネットワーク(プライベート)。マイニングなどの機能が試せる
また、ここからは以下のものを参考に進めました。
テストネットに繋ぐにはbitcoin.confというファイルをいじればいいのですが、これはLibrary/Application\ Support/Bitcoin/ にあるようです。なので以下のコマンドで移動し、中身を書き換えます。
$ cd Library/Application\ Support/Bitcoin/
$ ls #bitcoin.confがあるか確認
最後のコマンドを入力するとvim(ヴィム)というテキストエディターが開きます。開いたら、iを押して編集可能にし、以下を書き込みます。
testnet=3
txindex=1
server=1
rest=1
rpcuser=<ユーザー名>
rpcpassword=<パスワード>
rpcport=18332
書き終えたらexitを押し:wqを押してvimを終了します。
Bitcoin Coreを起動してみよう
早速アプリケーションにあるBitcoin Coreを起動してみましょう!
ビットコインマークが緑色で、上のバーがBitcoin Core [testnet]となっていれば成功です!
まとめ
長い・ややこしい・分かりづらいの三拍子が見事に揃っており、何度ベットに逃げ込み、Youtubeを見始めたか分かりません。(言い訳)
また、学校のパソコンでやるとBitcoin のポート番号が禁止されているのか、ダウンロードできてもピアと接続できませんでした。学生の方はポートを開けてもらうか、学外ネットワークでやるしかないと思います。
改めてGoogle Playからダウンロードするぐらいの軽いノリで出来るようになるのを願うばかりです(´・ω・)
//Macbook Proになったおかげで今まででは考えられないスピードでAndroid Studioが動きます。こういうのはケチってはいけないと身にしみました(´・∀・`)
参考資料
・Gitの使い方】GitをMacにインストールする方法! | オリジナルゲーム.com)
・Can not install/upgrade formulae cause openssl is outdated · Issue #3431 · Homebrew/brew · GitHub
・Mac OS X で bitcoind をコンパイル、インストールする方法 | block-chain.jp
・macOS High Sierra(OSX)のOpenSSLをデフォルトのLibreSSLからOpenSSLに変更する - Qiita
・ブロックチェーン・プログラミング 仮想通貨入門 (KS情報科学専門書)