ラズペリーパイでビットコインのフルノードを構築しました。
前回の記事でラズペリーパイへOS(Raspbian)をインストールするところまでを書きました。
今回は、Bitcoin Coreのインストールとブロックチェーンの同期までをまとめます。
Bitcoin Coreのインストール(Bitcoindのビルド)
手順は大石哲之氏の記事「【レポート053】ラズベリーパイによるビットコインフルノードの立て方(OSインストール及び設定、BITCOINDのビルド編)」 に従って行いました。
これはオンライサロンのビットコイン研究所に登録すると全文を読むことができます。
そのとおりに行い、エラーが出ることなくインストールできました。
ラズベリーパイはいろいろいじっているうちに、コマンドの入力方法などを覚えていき、SSH接続をしてMacのターミナル上で行いました。
なおBitcoindのバージョンは記事中では0.13.1と書いてあるところを最新の0.17.1に変えました。
/usr/local/binに
- bitcoind
- bitcoin-cli
- bitcoin-tx
- test_bitcoin
- bench_bitcoin
が無事インストールされました。
HDDの準備 USB給電式ではうまくいかず
現在のブロックチェーンの全データのサイズは200GBを超えるとBitcoin Coreのサイトにかかれています。
ラズペリーパイに刺したSDカードや、USBスティックメモリでも足りないことになります。
今後データはどんどん増えていくことを考えると、外付けHDDが必要となります。
最初はUSB給電式のTranscend ポータブルHDD 1TBを接続しました。
問題なくマウントできて、最初は問題ありませんでしたが、使用しているうちにブザーが鳴るようになりました。
やはりラズベリーパイからの給電では不十分なようです。
ラズペリーパイの給電にはAnker PowerPort 4 (40W 4ポート USB急速充電器) を使用していました。
これが問題かと思い、Raspberry Pi用電源セット(5V 3.0A)-Pi3フル負荷検証済に切り替えましたが変わりませんでした。
HDDの準備 別電源のものに切り替え
【Amazon.co.jp限定】BUFFALO 外付けハードディスク 2TBを購入し付け替えました。
思ったよりも小さく、静音でラズベリーパイにぴったりです。
給電は別電源なので問題なく動いています。
HDDのマウント
Raspberry Pi3で外付けHDDをマウントするという記事を参考に、ビットコインのデータ領域のhome/pi/.bitcoinにHDDをマウントしました。
Bitcoindの立ち上げ ブロックの同期
Bitcoindは下記コマンドで開始しています。
sudo bitcoind -datadir=/home/pi/.bitcoin -daemon
Bitcoin.confを設定せずに、立ち上げてしまったので、bitcoin-cliが動かせませんでした。
途中でbitcoind を一時停止して、bitcoin.confを作って、再度立ち上げし直しました。
ブロックの同期は途中から進みました。
Bitcoin.confを作った後からは、bitcoin-cliが使えるようになりました。
Bitcoin.confの作成は、ビットコイン研究所の「065 ビットコインフルノードを立ち上げよう!実践マニュアル」に従って行いました。
blocksの同期に1ヶ月かかった
4月10日にbitcoindを立ち上げ、4月18日にbitcoin.confを作成するまでblockの数は41万くらいで70%くらい終了していたのですが、bitcoin.confを作ってからはなぜかスピードが落ち、5月13日に同期が終了しました。
約1ヶ月かかったことになります。
まとめ
ラズベリーパイにbitcoindをビルドし、bitcoindを立ち上げて同期を完了させるまでをレポートしました。
2月にラズベリーパイを購入して以来、3ヶ月かかりましたが感慨深いものがあります。
一連の作業の中でlinuxのコマンドの知識が身につきました。
次回このフルノードの公開をレポートします。