BitcoinCoreのアップデート

BitcoinCoreに深刻な脆弱性が見つかったのでアップデートが促されていたので、BitcoinCoreをアップデートする練習も兼ねて実行してみた。

脆弱性の内容については以下の記事がわかりやすかった。

今の状態を確認

以前、BitcoinCoreを稼働させてからたまに触りつつ、半分放置気味なのでwとりあえず今はどうなっているのか確認。

$ ps -ef | grep bitcoind | grep -v grep 
odroid   14303     1  4 Aug07 ?        2-00:11:03 bitcoind -daemon
$ bitcoin-cli --version
Bitcoin Core RPC client version v0.16.1.0-4ea3e8ef0

8月7日からずっと動かなしっぱなしだねー。稼働中のバージョンはv0.16.1なので古いですね。ちなみに最新のバージョンはv0.16.3。

ということでひとまずbitoindを停止

$ bitcoin-cli stop
Bitcoin server stopping

BitcoinCoreを最新化する

バイナリファイルをダウンロードして実行していたのなら、新しいバイナリファイルをダウンロードすれば良いんだけど、ソースファイルからmakeしてインストールしているので、ソースのセット自体もアップデートしないといけない。

問題なのはGitを普段から使っていないので、やり方がわからないということw
とりあえず「bitcoinのリポジトリを取得したフォルダへ移動して新しいのをcheckoutすれば良いのかな?」と思ったので、リポジトリ移動してbranchの状態を確認。

$ git branch -r
  origin/0.11
  origin/0.12
  origin/0.13
  origin/0.14
  origin/0.15
  origin/0.16
  origin/HEAD -> origin/master
  origin/master

うーん。おかしい…

GitHubで見る限りv0.17のbranchができているから、それが表示されないということは、多分ローカルの情報を最新化しないといけないんだよね?
と思いググったらやっぱりリポジトリはローカルとリモートで別々に管理されるので”git fetch”で最新化しないといけないみたい。

$ git fetch
remote: Enumerating objects: 3086, done.
remote: Counting objects: 100% (3086/3086), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 7742 (delta 3077), reused 3085 (delta 3077), pack-reused 4656
Receiving objects: 100% (7742/7742), 5.84 MiB | 5.82 MiB/s, done.
Resolving deltas: 100% (5688/5688), completed with 1235 local objects.
From https://github.com/bitcoin/bitcoin
   4ea3e8ef0..f56c00b23  0.16       -> origin/0.16
   b9ca77863..150612ecb  0.14       -> origin/0.14
   1618c6309..0602db06e  0.15       -> origin/0.15
 * [new branch]          0.17       -> origin/0.17
   e4082d59f..920c090f6  master     -> origin/master
 * [new tag]             v0.14.3    -> v0.14.3
 * [new tag]             v0.15.2    -> v0.15.2
 * [new tag]             v0.16.1rc2 -> v0.16.1rc2
 * [new tag]             v0.17.0rc4 -> v0.17.0rc4
 * [new tag]             v0.16.1    -> v0.16.1
 * [new tag]             v0.16.2    -> v0.16.2
 * [new tag]             v0.16.2rc1 -> v0.16.2rc1
 * [new tag]             v0.16.2rc2 -> v0.16.2rc2
 * [new tag]             v0.16.3    -> v0.16.3
 * [new tag]             v0.17.0rc1 -> v0.17.0rc1
 * [new tag]             v0.17.0rc2 -> v0.17.0rc2
 * [new tag]             v0.17.0rc3 -> v0.17.0rc3

これで最新化できた╭( ・ㅂ・)و 

あとはmasterをチェックアウトしてローカルを更新(pull)する。

$ git checkout master
Switched to branch 'master'
Your branch is behind 'origin/master' by 1051 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

$ git pull
<省略>

1051個もcommitあったみたいw

BitcoinCoreのmakeとインストール

ここからは以前やったのと同じことを実行すれば良い。
※GUIが不要なので”./configure –without-gui”を実行している

$ ./autogen.sh
$ ./configure --without-gui
$ make -j4
$ sudo make install

これで改めてBitcoinCoreのバージョンを確認。

$ bitcoin-cli --version
Bitcoin Core RPC client version v0.17.99.0-920c090f6

よし!v0.17.99になった╭( ・ㅂ・)و 
あれ?最新の安定バージョンってv0.16.3だよね??そっか!?masterをチェックアウトしたからv0.17になったのか!

んー…まあ最新になっているから良いかな!
ということでbitcoindを起動してアップデート完了だよ(。・ω・)ノ゙

$ bitcoind -daemon