Raspberry Pi 4 ビットコイン フルノード構築で挫折した所を説明
ラズパイ+フルノードといえばUmbrelだと思いますがLinuxの勉強も兼ねてBitcoin Coreで構築しました、挫折しましたがなんとか同期終わり現在は元気に動いてくれてます。
ブロックチェーンデータが350GBくらいあるので外付けSSDにブロックチェーンデータを入れます。
Bitcoin Coreのビルドやセットアップはビットコイン研究所の記事を参考にしました。
※有料オンラインサロンの記事です
https://www.facebook.com/groups/bitcoinlab/permalink/1287950104634661
セットアップ方法は他にもググると出ます、ラズパイOSのインストールやSSH接続の方法もここでは説明は省きます。
外付けSSDを使った前提での説明です。
色々と素人なので用語の使い方とか違和感あるかもしれません。
途中ネットショップの商品リンクを貼っていますがアフィじゃないのでご安心をw
自分の環境
ラズパイ4 8GB
SSD:Crucial SSD 1000GB MX500
macOS10.15.7からSSH接続
ケースはこちらを使ってます、ヒートシンクつき
https://www.amazon.co.jp/dp/B07H2WKYBF/ref=cm_sw_r_tw_dp_VZP1N84CV2NHKFJPG4N4?_encoding=UTF8&psc=1
挫折ポイント①:ビットコインコアが動いてるのかわからない
デーモン起動後、bitcoin server starting...って表示されたら
sudo tail -f debug.log
をすると動いてるのを確認できます。
挫折ポイント②:SSDのフォーマット方法がわからない
フォーマット方法はこちらの記事を参考にしました。
https://qiita.com/ats030/items/65c5585c5c701841525e
https://iot-plus.net/make/raspi/extend-strage-using-ssd-to-store-bigdata/
fstabは設定しなくても動きます。
デバイスの確認
sudo fdisk -l
Device Start End Sectors Size Type
/dev/sda1 40 409639 409600 200M EFI System
/dev/sda2 411648 1953525134 1953113487 931.3G Linux filesystem
パーティションを作成
sudo fdisk /dev/sda
- d パーティションを削除
- n 新しいパーティションを作成
- 色々聞かれるけどEnter押しまくる
- p 状態を確認
- wを押して終了
/dev/sda2をフォーマット
sudo mkfs.ext4 /dev/sda2
マウントポイントを作成
ディレクトリを作ります、名前は例です
sudo mkdir /mnt/bitcoin
マウントされてるか確認
sudo mount -t ext4 /dev/sda2 /mnt/bitcoin
df -h |grep bitcoin
/dev/sda2 916G 376G 494G 44% /mnt/bitcoin
※ 376GB使用中になってますがブロックチェーン同期が終わったあとに実行したコマンドなので、通常は容量数MBだと思います
fstabは設定しなくても動きます
挫折ポイント③:外付けSSDにブロックチェーンデータをダウンロードさせたい
nanoとかでbitcoin.confを開いて一番下にこれを記入
datadir=/mnt/bitcoin
念の為にこちらも記入
maxmempool=100
デーモン起動時のコマンド
bitcoind -datadir=/mnt/bitcoin -daemon
挫折ポイント④:同期中に止まる・マウント解除される
ここが一番苦労しました。
結論:SATA-USB変換アダプタで接続すれば安定します
OWL-PCSPS3U3U2 を使いました。ACアダプタ付きにしましょう。
ブロックチェーンの同期は3日くらいかかりました、ラズパイなので結構かかります。
(iMac 2019でフルノード作った時は1日くらいで終わりました)
症状
2013年くらいまで同期が終わるとエラー吐いてマウント解除されます
ラズパイをGUIで操作している場合、マウスカーソルも動かなくなりました
- LevelDB read failure:Corruption:truncated block read:/mnt/bitcoin/chainstate/001637.Idb
- Fatal LevelDB error:Corruption:truncated block read:/mnt/bitcoin/chainstate/001637.Idb
- Error: Error reading from database, shutting down.Error reading from database:Fatal LevelDB error:Corruption:truncated block read:/mnt/bitcoin/chainstate/001637.Idbl
データベースエラーでなんちゃらかんちゃら・・・
GUI操作は不安定なのでSSH接続にして有線LAN・外付けSSD以外のデバイスは全部切ってもダメでした
原因はラズパイの電源供給不足みたいです。
試したけどダメだったこと
- ACアダプタをニンテンドースイッチ用のを使う
- SSDケースに入れて直接接続
- セルフパワーのUSBハブ経由で接続
※白いケーブルは有線LANです
おわりに
フルノードに限った話じゃないですが技術関連の日本語情報は少なくて苦労しましたw
おかげでLinuxコマンドいろいろ覚えましたw
今のところ不具合なく動いてます!次はライトニングノードを構築してみたい!