edo1z blog

プログラミングなどに関するブログです

bitcoindのブロック保存先ディレクトリを指定する

ここにbitcoindが作成するデータ構造が書いてある。ホームディレクトリに勝手につくって、そこにブロックのデータも入れるらしいので、勝手につくるディレクトリパスを変更できればいいのかなーと思ったけど、分からない。bitcoin.confで設定できるかもなので調べてみる。

こんなのを発見した。 Bitcoin Core Config Generator (compatible with Bitcoin Core 0.14+)

datadirを設定したらできるらしい。といっても、そもそもbitcoin.confがホームディレクトリ内の.bitcoinにある。

$ bitcoind --helpとやると、オプションの説明が沢山でてきて、confというのもあった。confで設定ファイルのパスを指定すれば良さそうなんだけど、ホームディレクトリ外にあると、どうもbitcoin-cliでgetinfoできないっぽいので、~/.bitcoin/bitcoin.confに設定ファイルを作って、そのファイルでdatadirを指定しておいて、普通に$ bitcoind -testnet -daemonとやったらdatadirに指定したディレクトリにtestnet3フォルダが作られてそこにブロックデータが蓄積されるようになった。あらかじめ、datadirで指定したパスにディレクトリをつくっておかないと、start bitcoind...とかいいながらスタートしない。

$ vim ~/.bitcoin/bitcoin.conf

bitcoin.conf

rpcuser=root
rpcpassword=bitroot

HOST=localhost

server=1
txindex=1

rpcport=18332
testnet=3

datadir=/mnt/mydisk/bitcoin
$ bitcoind -testnet -daemon
$ bitcoin-cli getinfo
{
  "version": 140100,
  "protocolversion": 70015,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 520705,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 1287.193631917138,
  "testnet": true,
  "keypoololdest": 1494747675,
  "keypoolsize": 100,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}
$ la /mnt/mydisk/bitcoin/testnet3
total 133M
-rw------- 1 root root   37 May 14 16:41 banlist.dat
-rw------- 1 root root    6 May 14 16:41 bitcoind.pid
drwx------ 3 root root 4.0K May 14 17:04 blocks
drwx------ 2 root root 4.0K May 14 17:05 chainstate
drwx------ 2 root root 4.0K May 14 16:41 database
-rw------- 1 root root    0 May 14 16:41 db.log
-rw------- 1 root root 133M May 14 17:04 debug.log
-rw------- 1 root root    0 May 14 16:41 .lock
-rw------- 1 root root 333K May 14 16:56 peers.dat
-rw------- 1 root root  88K May 14 17:01 wallet.dat