BitcoinSVクライアントのインストールとチェーン同期

前回の記事のSVバージョンです。何でこんなことしているかとかの背景とかは前回の記事を参照して貰えばわかると思う。

bitcoin-svのインストール

以前、BitcoinCoreをインストールした時もソースコードからmakeしているので、今回も同じようにソースコードからmakeします。

まずはソースコードを保存しておくフォルダに移動し、git cloneでソースコードをダウンロード。SVのリポジトリはここです。

$ git clone https://github.com/bitcoin-sv/bitcoin-sv.git

ダウンロードしたフォルダに移動。

$ cd bitcoin-sv/

makeの前に…

makeを実行する前に、必要なライブラリなどはUNIX BUILD NOTES等を参考に準備しましょう。もし、BitcoinABCのmakeを実施したことがあるなら、そのままで大丈夫です。ABCを元に構成されているからね。

makeを実行してインストールする。

$ ./autogen.sh
$ ./configure --without-gui --program-suffix=-sv
$ make -j2

configureのオプション “–without-gui” はGUIなし。”–program-suffix=-sv” はインストールプログラムの後ろに “-sv” を付与する。でも、もう前回のABCのインストールでCore、ABC、SVの同時立ち上げはできないことがわかったので、今回は “make install” コマンドは実行しません。サフィックスは間違ってインストールをしてしまった時に判別がつくようにつけた。

bitcoin.confを準備

デフォルトではホームディレクトリ直下の “.bitcoin” にconfファイルを配置する必要がある。

$ mkdir $HOME/.bitcoin
$ touch $HOME/.bitcoin/bitcoin.conf
$ vim $HOME/.bitcoin/bitcoin.conf

# 以下を記述
datadir=/media/hdd/.bitcoin-sv
rpcuser=hoge
rpcpassword=hogehoge
txindex=1

“datadir”は指定しなければconfファイルと同じ場所にデータが格納されるだけなので、不要であれば外してください。”txindex”はトランザクションの全インデックスを取得するかの設定で、指定した場合は同期に時間がかかるため、目的に応じて設定してください。

チェーンの同期をする

confファイルが準備できたらあとは起動するだけ…何だけど、今回はチェーン同期を早めるためにABCで同期ずみのチェーンを使いまわします。

なので同期前にチェーンデータのディレクトリをコピーします。僕の環境では “/media/hdd/.bitcoin-abc” にチェーンデータを置いてあるので、それをディレクトリごとコピー。

$ cp -r /media/hdd/.bitcoin-abc /media/hdd/.bitcoin-sv

163GiBあったからそれなりに時間がかかる…正確に測っていないけど4、5時間かかった。

コピーが終わったらチェーン同期をしてみる。今回はインストールをしてないので、bitcoin-svのフォルダのモジュールを直接叩く。

# パスが通っていないのでバイナリが置いてあるフォルダに行きます
$ cd [bitcoin-svのフォルダ]

# bitcoin-svクライアント起動
$ src/bitcoind -daemon

止めるときは以下のコマンドで止める。

# パスが通っていないのでバイナリが置いてあるフォルダに行きます
$ cd [bitcoin-svのフォルダ]

# bitcoin-svクライアント停止
$ src/bitcoin-cli stop

コピーしたチェーンデータで同期はできるのか?

ABCのチェーンデータを丸々コピーしてチェーンの同期を始めたら、エラーは出ていないものの、最初10分くらいは新しいブロックが同期されなくて(通常は1分もかからず同期が始まる)「もしかしてダメなのか?」と思ったけど、ちゃんと同期されました(∩・∀・)∩

なかなか同期しない間は、以下のようなログが出ていてどうやらSV以外のノードとは同期しないようになっている?と思われる。

この辺はあまり詳しくないけど、予想通りではあるけど無事に同期できてよかったー(。・ω・)ノ゙