bitcoindをcentos7にインストール

ノードの構築にどうぞ。

- ソースからインストールする手順です。バイナリパッケージでいい人はこんなことしなくていいです。
- GUIを使わずに、CLIオンリーな人向けです。
- sudoerユーザーで行っています。難しい場合にはrootユーザーで行えばいいです。

# 環境

こんなんです。seLinuxは無効にしています。

```:bash
[murata@bitcoin-core-test ~]$ getenforce 
Disabled
[murata@bitcoin-core-test ~]$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core) 
[murata@bitcoin-core-test ~]$ uname -a
Linux bitcoin-core-test 3.10.0-327.28.3.el7.x86_64 #1 SMP Thu Aug 18 19:05:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
```

# bitcoind インストールprefix

yumでインストールできるものはyumで。コアとなるものは、ソースからインストールします。
今回は、`/opt/bitcoind/` にインストールしようと思います。


# 事前にepelとgccなどインストール

bitcoindさんDBにBerkeley DBの4.8が必要なので、epel を入れておく。

```bash
[murata@bitcoin-core-test ~]$ sudo rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/e/epel-release-7-7.noarch.rpm
```

yes/noなどを聞かれたらyで。

不必要なものもありそうだか、ほかのものでもだいたい下記を使うので入れておく。

```bash
[murata@bitcoin-core-test ~]$ sudo yum install gcc gcc-c++ cpp libtool patch patchutils bzip2 zip unzip rsync wget ntp pciutils make autoconf automake libxslt openssl-devel zlib-devel curl-devel bind-utils ncurses ncurses-devel ncurses-static ncurses-term libevent libevent-devel libevent-doc
```



# 手順

## ディレクトリを掘る

すでにディレクトリがないかを確認してから行いましょう。

```:bash
[murata@bitcoin-core-test /]$ sudo mkdir -p /opt/bitcoind/src/
```

## bitcoinのソースをDLする。

`/opt/bitcoind/src/`に`https://github.com/bitcoin/bitcoin/releases`から最新のものをDLする。

```bash
[murata@bitcoin-core-test src]$ pwd
/opt/bitcoind/src
[murata@bitcoin-core-test src]$ sudo wget https://github.com/bitcoin/bitcoin/archive/v0.13.0.tar.gz
--2016-09-07 14:34:47--  https://github.com/bitcoin/bitcoin/archive/v0.13.0.tar.gz
github.com (github.com) をDNSに問いあわせています... 192.30.253.112
github.com (github.com)|192.30.253.112|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://codeload.github.com/bitcoin/bitcoin/tar.gz/v0.13.0 [続く]
--2016-09-07 14:34:48--  https://codeload.github.com/bitcoin/bitcoin/tar.gz/v0.13.0
codeload.github.com (codeload.github.com) をDNSに問いあわせています... 192.30.253.120
codeload.github.com (codeload.github.com)|192.30.253.120|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 特定できません [application/x-gzip]
`v0.13.0.tar.gz' に保存中

    [                          <=>                                                                                                                                               ] 5,833,967    818KB/s 時間 7.9s   

2016-09-07 14:34:56 (721 KB/s) - `v0.13.0.tar.gz' へ保存終了 [5833967]
```

## DLしたソースを解凍する。

```bash
[murata@bitcoin-core-test src]$ sudo tar zxfv v0.13.0.tar.gz                                                                                                                                                         
bitcoin-0.13.0/
bitcoin-0.13.0/.gitattributes
bitcoin-0.13.0/.gitignore
bitcoin-0.13.0/.travis.yml
bitcoin-0.13.0/.tx/
bitcoin-0.13.0/.tx/config
bitcoin-0.13.0/CONTRIBUTING.md
bitcoin-0.13.0/COPYING
bitcoin-0.13.0/INSTALL
bitcoin-0.13.0/Makefile.am
bitcoin-0.13.0/README.md
bitcoin-0.13.0/autogen.sh
bitcoin-0.13.0/build-aux/

~snip;

```

解凍出来ているか確認する。
↓みたいになっていればOK

```bash
[murata@bitcoin-core-test src]$ cd bitcoin-0.13.0/
[murata@bitcoin-core-test bitcoin-0.13.0]$ ll
合計 104
-rw-rw-r--  1 root root  9123  8月 17 20:06 CONTRIBUTING.md
-rw-rw-r--  1 root root  1099  8月 17 20:06 COPYING
-rw-rw-r--  1 root root   163  8月 17 20:06 INSTALL
-rw-rw-r--  1 root root  8699  8月 17 20:06 Makefile.am
-rw-rw-r--  1 root root  3501  8月 17 20:06 README.md
-rwxrwxr-x  1 root root   335  8月 17 20:06 autogen.sh
drwxrwxr-x  3 root root    15  8月 17 20:06 build-aux
-rw-rw-r--  1 root root 39694  8月 17 20:06 configure.ac
drwxrwxr-x 17 root root  4096  8月 17 20:06 contrib
drwxrwxr-x  6 root root  4096  8月 17 20:06 depends
drwxrwxr-x  4 root root  4096  8月 17 20:06 doc
-rw-rw-r--  1 root root   295  8月 17 20:06 libbitcoinconsensus.pc.in
drwxrwxr-x  4 root root    56  8月 17 20:06 qa
drwxrwxr-x  6 root root    92  8月 17 20:06 share
drwxrwxr-x 21 root root  4096  8月 17 20:06 src
```

## autogen.sh で configure ファイルを作成する。

```
[murata@bitcoin-core-test bitcoin-0.13.0]$ sudo ./autogen.sh 
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
libtoolize: copying file `build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `build-aux/m4'.
libtoolize: copying file `build-aux/m4/libtool.m4'
libtoolize: copying file `build-aux/m4/ltoptions.m4'
libtoolize: copying file `build-aux/m4/ltsugar.m4'
libtoolize: copying file `build-aux/m4/ltversion.m4'
libtoolize: copying file `build-aux/m4/lt~obsolete.m4'
configure.ac:45: installing 'build-aux/config.guess'
configure.ac:45: installing 'build-aux/config.sub'
configure.ac:28: installing 'build-aux/install-sh'
configure.ac:28: installing 'build-aux/missing'
Makefile.am: installing 'build-aux/depcomp'
parallel-tests: installing 'build-aux/test-driver'
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
libtoolize: copying file `build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `build-aux/m4'.
libtoolize: copying file `build-aux/m4/libtool.m4'
libtoolize: copying file `build-aux/m4/ltoptions.m4'
libtoolize: copying file `build-aux/m4/ltsugar.m4'
libtoolize: copying file `build-aux/m4/ltversion.m4'
libtoolize: copying file `build-aux/m4/lt~obsolete.m4'
configure.ac:26: installing 'build-aux/compile'
configure.ac:5: installing 'build-aux/config.guess'
configure.ac:5: installing 'build-aux/config.sub'
configure.ac:9: installing 'build-aux/install-sh'
configure.ac:9: installing 'build-aux/missing'
Makefile.am: installing 'build-aux/depcomp'
parallel-tests: installing 'build-aux/test-driver'
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
libtoolize: copying file `build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `build-aux/m4'.
libtoolize: copying file `build-aux/m4/libtool.m4'
libtoolize: copying file `build-aux/m4/ltoptions.m4'
libtoolize: copying file `build-aux/m4/ltsugar.m4'
libtoolize: copying file `build-aux/m4/ltversion.m4'
libtoolize: copying file `build-aux/m4/lt~obsolete.m4'
configure.ac:22: installing 'build-aux/config.guess'
configure.ac:22: installing 'build-aux/config.sub'
configure.ac:32: installing 'build-aux/install-sh'
configure.ac:32: installing 'build-aux/missing'
Makefile.am:5: warning: user variable 'GZIP_ENV' defined here ...
/usr/share/automake-1.13/am/distdir.am: ... overrides Automake variable 'GZIP_ENV' defined here
src/Makefile.am: installing 'build-aux/depcomp'
src/Makefile.am:454: warning: user target '.mm.o' defined here ...
/usr/share/automake-1.13/am/depend2.am: ... overrides Automake target '.mm.o' defined here
parallel-tests: installing 'build-aux/test-driver'
```

## ビルドに必要なものを探す。

下記URLを参考にyumで必要そうなパッケージをインストールする。

https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md#dependencies


### Berkeley DB 4.8インストール

```bash
[root@bitcoin-core-test ~]# yum install libdb4-cxx-devel-4.8.30-13.el7.x86_64
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.usonyx.net
 * epel: mirror01.idc.hinet.net
 * extras: mirror.vastspace.net
 * updates: mirror.vastspace.net
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ libdb4-cxx-devel.x86_64 0:4.8.30-13.el7 を インストール
--> 依存性の処理をしています: libdb4-devel(x86-64) = 4.8.30-13.el7 のパッケージ: libdb4-cxx-devel-4.8.30-13.el7.x86_64
--> 依存性の処理をしています: libdb4-cxx(x86-64) = 4.8.30-13.el7 のパッケージ: libdb4-cxx-devel-4.8.30-13.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libdb4-cxx.x86_64 0:4.8.30-13.el7 を インストール
--> 依存性の処理をしています: libdb4(x86-64) = 4.8.30-13.el7 のパッケージ: libdb4-cxx-4.8.30-13.el7.x86_64
---> パッケージ libdb4-devel.x86_64 0:4.8.30-13.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ libdb4.x86_64 0:4.8.30-13.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

=====================================================================================================================================================================================================================
 Package                                                  アーキテクチャー                               バージョン                                               リポジトリー                                  容量
=====================================================================================================================================================================================================================
インストール中:
 libdb4-cxx-devel                                         x86_64                                         4.8.30-13.el7                                            epel                                          15 k
依存性関連でのインストールをします:
 libdb4                                                   x86_64                                         4.8.30-13.el7                                            epel                                         607 k
 libdb4-cxx                                               x86_64                                         4.8.30-13.el7                                            epel                                         635 k
 libdb4-devel                                             x86_64                                         4.8.30-13.el7                                            epel                                          32 k

トランザクションの要約
=====================================================================================================================================================================================================================
インストール  1 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 1.3 M
インストール容量: 3.3 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): libdb4-4.8.30-13.el7.x86_64.rpm                                                                                                                                                        | 607 kB  00:00:01     
(2/4): libdb4-cxx-4.8.30-13.el7.x86_64.rpm                                                                                                                                                    | 635 kB  00:00:00     
(3/4): libdb4-cxx-devel-4.8.30-13.el7.x86_64.rpm                                                                                                                                              |  15 kB  00:00:00     
(4/4): libdb4-devel-4.8.30-13.el7.x86_64.rpm                                                                                                                                                  |  32 kB  00:00:00     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                 754 kB/s | 1.3 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : libdb4-4.8.30-13.el7.x86_64                                                                                                                                                          1/4 
  インストール中          : libdb4-devel-4.8.30-13.el7.x86_64                                                                                                                                                    2/4 
  インストール中          : libdb4-cxx-4.8.30-13.el7.x86_64                                                                                                                                                      3/4 
  インストール中          : libdb4-cxx-devel-4.8.30-13.el7.x86_64                                                                                                                                                4/4 
  検証中                  : libdb4-cxx-devel-4.8.30-13.el7.x86_64                                                                                                                                                1/4 
  検証中                  : libdb4-4.8.30-13.el7.x86_64                                                                                                                                                          2/4 
  検証中                  : libdb4-devel-4.8.30-13.el7.x86_64                                                                                                                                                    3/4 
  検証中                  : libdb4-cxx-4.8.30-13.el7.x86_64                                                                                                                                                      4/4 

インストール:
  libdb4-cxx-devel.x86_64 0:4.8.30-13.el7                                                                                                                                                                            

依存性関連をインストールしました:
  libdb4.x86_64 0:4.8.30-13.el7                                      libdb4-cxx.x86_64 0:4.8.30-13.el7                                      libdb4-devel.x86_64 0:4.8.30-13.el7                                     

完了しました!
```


### libboostインストール

```
[root@bitcoin-core-test ~]# yum install boost-devel.x86_64

~snip;
```

## configure 

- prefix(インストール先は)`/opt/bitcoind/`にするのでprefixを指定。
- GUIは不要なので`--with-gui=no`をつけておく。

```bash
[murata@bitcoin-core-test bitcoin-0.13.0]$ sudo ./configure --prefix=/opt/bitcoind/ --with-gui=no

~snip;

checking for EC functions in libcrypto... yes
checking whether byte ordering is bigendian... no
configure: Using assembly optimizations: x86_64
configure: Using field implementation: 64bit
configure: Using bignum implementation: no
configure: Using scalar implementation: 64bit
configure: Using endomorphism optimizations: no
configure: Building ECDH module: no
configure: Building Schnorr signatures module: no
configure: Building ECDSA pubkey recovery module: yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libsecp256k1.pc
config.status: creating src/libsecp256k1-config.h
config.status: executing depfiles commands
config.status: executing libtool commands
Fixing libtool for -rpath problems.
```

足りないものがあればerrorが出ているのでyumでパッケージをインストールする。

## make

ビルドする。スペックによって結構時間がかかるかも。
jパラメータは同時に処理するスレッド数。他で使っていないサーバであればcore数を指定する。(別につけなくてもよい)


```bash
[murata@bitcoin-core-test bitcoin-0.13.0]$ sudo make -j4
Making all in src
make[1]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' に入ります
make[2]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' に入ります
  CXX      crypto/libbitcoinconsensus_la-aes.lo
  CXX      crypto/libbitcoinconsensus_la-hmac_sha256.lo
  CXX      crypto/libbitcoinconsensus_la-hmac_sha512.lo

~snip;

  CXXLD    bench/bench_bitcoin
  CXXLD    test/test_bitcoin
make[2]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' から出ます
make[1]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' から出ます
make[1]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0' に入ります
make[1]: `all-am' に対して行うべき事はありません.
make[1]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0' から出ます
[murata@bitcoin-core-test bitcoin-0.13.0]$ 
```

エラーが出ていれば対応して、`$ sudo make distclean` して `autogen.sh`からやり直す。


## make install

configureで指定したディレクトリにファイルがコピーされます。

```bash
[murata@bitcoin-core-test bitcoin-0.13.0]$ sudo make install
Making install in src
make[1]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' に入ります
make[2]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' に入ります
make[3]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' に入ります
 /usr/bin/mkdir -p '/opt/bitcoind/lib'
 /bin/sh ../libtool   --mode=install /usr/bin/install -c   libbitcoinconsensus.la '/opt/bitcoind/lib'
libtool: install: /usr/bin/install -c .libs/libbitcoinconsensus.so.0.0.0 /opt/bitcoind/lib/libbitcoinconsensus.so.0.0.0
libtool: install: (cd /opt/bitcoind/lib && { ln -s -f libbitcoinconsensus.so.0.0.0 libbitcoinconsensus.so.0 || { rm -f libbitcoinconsensus.so.0 && ln -s libbitcoinconsensus.so.0.0.0 libbitcoinconsensus.so.0; }; })
libtool: install: (cd /opt/bitcoind/lib && { ln -s -f libbitcoinconsensus.so.0.0.0 libbitcoinconsensus.so || { rm -f libbitcoinconsensus.so && ln -s libbitcoinconsensus.so.0.0.0 libbitcoinconsensus.so; }; })
libtool: install: /usr/bin/install -c .libs/libbitcoinconsensus.lai /opt/bitcoind/lib/libbitcoinconsensus.la
libtool: install: /usr/bin/install -c .libs/libbitcoinconsensus.a /opt/bitcoind/lib/libbitcoinconsensus.a
libtool: install: chmod 644 /opt/bitcoind/lib/libbitcoinconsensus.a
libtool: install: /usr/bin/ranlib /opt/bitcoind/lib/libbitcoinconsensus.a
libtool: finish: PATH="/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/murata/.local/bin:/home/murata/bin:/home/murata/.local/bin:/home/murata/bin:/sbin" ldconfig -n /opt/bitcoind/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /opt/bitcoind/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the ` -D__LIBTOOL_IS_A_FOOL__ ' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 /usr/bin/mkdir -p '/opt/bitcoind/bin'
  /bin/sh ../libtool   --mode=install /usr/bin/install -c bitcoind bitcoin-cli bitcoin-tx test/test_bitcoin bench/bench_bitcoin '/opt/bitcoind/bin'
libtool: install: /usr/bin/install -c bitcoind /opt/bitcoind/bin/bitcoind
libtool: install: /usr/bin/install -c bitcoin-cli /opt/bitcoind/bin/bitcoin-cli
libtool: install: /usr/bin/install -c bitcoin-tx /opt/bitcoind/bin/bitcoin-tx
libtool: install: /usr/bin/install -c test/test_bitcoin /opt/bitcoind/bin/test_bitcoin
libtool: install: /usr/bin/install -c bench/bench_bitcoin /opt/bitcoind/bin/bench_bitcoin
 /usr/bin/mkdir -p '/opt/bitcoind/include'
 /usr/bin/install -c -m 644 script/bitcoinconsensus.h '/opt/bitcoind/include'
make[3]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' から出ます
make[2]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' から出ます
make[1]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0/src' から出ます
make[1]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0' に入ります
make[2]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0' に入ります
make[2]: `install-exec-am' に対して行うべき事はありません.
 /usr/bin/mkdir -p '/opt/bitcoind/lib/pkgconfig'
 /usr/bin/install -c -m 644 libbitcoinconsensus.pc '/opt/bitcoind/lib/pkgconfig'
make[2]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0' から出ます
make[1]: ディレクトリ `/opt/bitcoind/src/bitcoin-0.13.0' から出ます
```

## ディレクトリ確認

こんな感じにディレクトリが掘られているはず。

```
[murata@bitcoin-core-test bitcoin-0.13.0]$ ll /opt/bitcoind/ 
合計 4
drwxr-xr-x 2 root root   95  9月  7 15:09 bin
drwxr-xr-x 2 root root   31  9月  7 15:09 include
drwxr-xr-x 3 root root 4096  9月  7 15:09 lib
drwxr-xr-x 3 root root   48  9月  7 14:35 src
[murata@bitcoin-core-test bitcoin-0.13.0]$ 
```


これでインストールは完了。続いて設定ファイルなどを作成していく。

# 設定ファイル配置

https://en.bitcoin.it/wiki/Running_Bitcoin#Bitcoin.conf_Configuration_File
を参考に`/opt/bitcoind/etc/bitcoin.conf` に設定ファイルを配置する。

## ディレクトリを掘る

```bash
[murata@bitcoin-core-test bitcoind]$ sudo mkdir /opt/bitcoind/etc/
[murata@bitcoin-core-test bitcoind]$ cd /opt/bitcoind/etc/
```

```bash
[murata@bitcoin-core-test etc]$ sudo vi bitcoin.conf
```

下記のようなファイルを作成する。

```text:/opt/bitcoin/etc/bitcoin.conf
rpcbind=0.0.0.0
rpcuser=username
rpcpassword=mypassword
rpcport=8332
rpcallowip=127.0.0.1
rpcallowip=xxx.xxx.xxx.xxx/32
server=1
daemon=1
#gen=1
```

- rpcbind: 使うNICのIPアドレス0.0.0.0ですべて
- rpcuser: json-rpcに接続するユーザー名
- rpcpassword: 同じくパスワード(必ずわかりづらいものにしてください。抜かれるとコインを持っていかれます。)
- rpcport: RPCで使うポート番号
- rpcallowip: 接続を許可するIPアドレス(絶対に0.0.0.0にはしないでください。CIDR形式OKの模様)
- server: サーバとして使用するか？
- daemon: デーモンとして起動するか。
- gen: マイニングするか。

**本番ではなくtestnetというものがあるのでtestnetを使う場合にはググッてconfファイルを設定してください。**
設定ファイルをぽちぽち作成できるサービスも[こちら](https://jlopp.github.io/bitcoin-core-config-generator/#config=eyJjb3JlIjp7ImRhdGFkaXIiOiJ+L2JpdGNvaW5kLy5iaXRjb2luIiwidHhpbmRleCI6MX0sImRlYnVnIjp7InJlZ3Rlc3QiOjF9fQ==)にあります。

# データディレクトリを作る。

トランザクションやウォレットのデータを保存しておくディレクトリを作成する。(他のユーザーが見れないようにパーミションもちゃんとすること。)

今回は`/opt/bitcoind/var/`に置く。


```bash
[murata@bitcoin-core-test bitcoind]$ sudo mkdir /opt/bitcoind/var/
[murata@bitcoin-core-test bitcoind]$ sudo chmod 600 /opt/bitcoind/var/
[murata@bitcoin-core-test bitcoind]$ ll /opt/bitcoind/
合計 4
drwxr-xr-x 2 root root   95  9月  7 15:09 bin
drwxr-xr-x 2 root root   25  9月  7 15:23 etc
drwxr-xr-x 2 root root   31  9月  7 15:09 include
drwxr-xr-x 3 root root 4096  9月  7 15:09 lib
drwxr-xr-x 3 root root   48  9月  7 14:35 src
drw------- 2 root root    6  9月  7 15:25 var
```

パーミションが600(drw-------)になっていることを確認すること。

# 起動

```bash
$ [murata@bitcoin-core-test bitcoind]$ sudo /opt/bitcoind/bin/bitcoind -daemon -datadir=/opt/bitcoind/var/ -conf=/opt/bitcoind/etc/bitcoin.conf
Bitcoin server starting
```

うまく起動できていればプロセスがいるはず。

```bash
[murata@bitcoin-core-test bitcoind]$ ps aux | grep bitcoind
root     10371 19.5  4.2 1345296 79800 ?       SLsl 15:25   0:06 /opt/bitcoind/bin/bitcoind -daemon -datadir=/opt/bitcoind/var/ -conf=/opt/bitcoind/etc/bitcoin.conf
```

データが蓄積されているのがわかる。

```bash
[murata@bitcoin-core-test bitcoin-0.13.0]$ sudo ls -al /opt/bitcoind/var/
合計 1280
drw------- 5 root root   4096  9月  7 15:48 .
drwxr-xr-x 8 root root     70  9月  7 15:25 ..
-rw------- 1 root root      0  9月  7 15:25 .lock
-rw------- 1 root root     37  9月  7 15:25 banlist.dat
-rw------- 1 root root      6  9月  7 15:48 bitcoind.pid
drwx------ 3 root root   4096  9月  7 15:45 blocks
drwx------ 2 root root   4096  9月  7 15:48 chainstate
drwx------ 2 root root      6  9月  7 15:48 database
-rw------- 1 root root      0  9月  7 15:25 db.log
-rw------- 1 root root 202776  9月  7 15:48 debug.log
-rw------- 1 root root  28534  9月  7 15:45 fee_estimates.dat
-rw------- 1 root root 707214  9月  7 15:45 peers.dat
-rw------- 1 root root  90112  9月  7 15:45 wallet.dat
```

# RPC確認

本家のリファレンス: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
日本語の記事参考: http://qiita.com/osada/items/39c63a146c203f4dc751

bitcoin-cliコマンドで確認する。
helpでヘルプが見れる。

```bash
[murata@bitcoin-core-test bitcoin-0.13.0]$ /opt/bitcoind/bin/bitcoin-cli -conf=/opt/bitcoind/etc/bitcoin.conf help
== Blockchain ==
getbestblockhash
getblock "hash" ( verbose )
getblockchaininfo
getblockcount
getblockhash index
getblockheader "hash" ( verbose )
getchaintips
getdifficulty
getmempoolancestors txid (verbose)
getmempooldescendants txid (verbose)
getmempoolentry txid
getmempoolinfo

~snip;
```

## getinfoで状態を確認する。

```bash
[murata@bitcoin-core-test bitcoin-0.13.0]$ /opt/bitcoind/bin/bitcoin-cli -conf=/opt/bitcoind/etc/bitcoin.conf getinfo
{
  "version": 130000,
  "protocolversion": 70014,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 66335,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 23.50125722290317,
  "testnet": false,
  "keypoololdest": 1473229556,
  "keypoolsize": 100,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
```

blocksが最新になるまで入出金はできないはず。まるまる1日か2日ぐらいかかる。回線の状態によってはもっと。
https://blockchain.info/
あたりで最新のブロックを確認できる。ブロック高ってのがソレ。

データサイズ的には2016/09/07現在で90Gほどある。
下記のようなコマンドで確認するとどのくらいDLできているかわかるかと。

```
[murata@bitcoin-core-test bitcoin-0.13.0]$ sudo du /opt/bitcoind/var/ -sh
967M    /opt/bitcoind/var/
```

## ウォレットにbitcoinアドレスを作成

まぁ送金してみたくなると思うので、作成してみる。

```
[murata@bitcoin-core-test bitcoin-0.13.0]$ /opt/bitcoind/bin/bitcoin-cli -conf=/opt/bitcoind/etc/bitcoin.conf getnewaddress dododo
1Hbe5TWjMW5dNLfVTD8rHCiwUxqNkEgDx2
```

こんな感じ。`1Hbe5TWjMW5dNLfVTD8rHCiwUxqNkEgDx2`のアドレス宛にどっかからwithdrawすればよろし。

## 停止

電気代の無駄なのでデーモンを停止したい場合。

```
[murata@bitcoin-core-test bitcoin-0.13.0]$ sudo /opt/bitcoind/bin/bitcoin-cli -conf=/opt/bitcoind/etc/bitcoin.conf stop
Bitcoin server stopping
```

# まとめ

- 自分のサーバですので、ウォレットのバックアップや管理は自分で行ってください。backupwallet などのコマンドでバックアップできます。
- 大量のコインをココに入れておくことはオススメしません。使わない分は必ずコールドウォレットに移しておくことをオススメします。
- 抜かれても私は何の責任も負いません。