clock-up-blog

go-mi-tech

Bitcoin Core 0.18.1 ソースコードからのビルド・インストール手順 (into Ubuntu)

ひさしぶりに Bitcoin Core を手動でビルド&インストールしたので一応記録としてメモ。手順は数年前とそれほど変わった印象は無い。

一応言っておきますがバイナリからインストールしたほうが数段楽です。ビルド時間だけでも1時間くらいかかるし。

何かしらカスタマイズしたいとか特定の目的が無ければ手動ビルドはあまりお勧めしません。

環境

この前セットアップしたばかりの Ubuntu Desktop 18.04.3 LTS

blog.clock-up.jp

$ uname -a
Linux dell 5.0.0-23-generic #24~18.04.1-Ubuntu SMP Mon Jul 29 16:12:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.3 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic

ここに入れる。

ソースコード

本家の v0.18.1 。
github.com

doc/build-unix.md にビルド手順がだいたい書かれている。

ビルド・インストール

$ sudo su -

# apt install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3
# apt install libssl-dev libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev                    
# apt install libminiupnpc-dev
# apt install libzmq3-dev
# apt install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
# apt install libqrencode-dev
# exit

$ mkdir ~/Projects
$ cd ~/Projects
$ git clone git@github.com:bitcoin/bitcoin.git
$ cd bitcoin
$ git tag -l | grep 18
v0.18.0
v0.18.0rc1
v0.18.0rc2
v0.18.0rc3
v0.18.0rc4
v0.18.1
v0.18.1rc1
v0.3.18

$ git checkout v0.18.1
$ ./contrib/install_db4.sh `pwd`
$ echo "export BDB_PREFIX='`pwd`/db4'" >> ~/.bashrc
$ . ~/.bashrc

$ ./autogen.sh
$ ./configure BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" BDB_CFLAGS="-I${BDB_PREFIX}/include"
$ make
$ make check
$ sudo make install

完了。

BDB_LIBS でハマる人はハマるかも。(自分も過去にかなりハマったので)

バージョン確認

$ bitcoind --version
Bitcoin Core Daemon version v0.18.1
Copyright (C) 2009-2019 The Bitcoin Core developers

設定

$ cd
$ mkdir .bitcoin
$ echo "server=1
rpcbind=localhost
rpcuser=xxxx
rpcpassword=yyyy
txindex=1" > .bitcoin/bitcoin.conf

txindex=1 にしておくと後々 TX 検索できて良い。

起動

$ bitcoind -daemon
$ bitcoin-cli getblockchaininfo
{
  "chain": "main",
  "blocks": 0,
  "headers": 98000,
  "bestblockhash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
  "difficulty": 1,
....

起動直後で同期が不十分のため、ブロック数がまだゼロ。

1日後↓

$ bitcoin-cli getblockchaininfo
{
  "chain": "main",
  "blocks": 590608,
  "headers": 590608,
  "bestblockhash": "0000000000000000001142f59d92048eccd592b1cdf0b8ced5932debb321ac2d",
  "difficulty": 9985348008059.555,
....

$ du -sh ~/.bitcoin
275G    ~/.bitcoin

同期は完了した。現時点で消費しているディスク容量は 275GB 程度。

おわり

同期スピードが以前(2017年くらいに試したとき)より上がっている気がする。以前は同期に2週間くらいかかっていた記憶。