ラズパイでSymbolノードを建てる(失敗)
おもむろにラズパイでSymbolのノードを建ててみたいと思って挑戦したので、備忘録を残します。
ちなにみにラズパイのアーキテクチャはarmですので通常のsymbol-bootstrapの築城手順ではノードが建てれません。。
結果からお知らせすると現在のところラズパイ3ではSymbolノードは建てれませんでした。
このTwitterの報告を見る限りラズパイ4でならいけるかもしれません、が手元にラズパイ3しかないので、、
(アマゾンでラズパイ4をポチったけど、届くのはしばらく先になりそう。。)
環境
機材:RaspberryPi3
OS:
Linux rasperrypi 5.10.92-v8+ aarch64
Linux rasperrypi 5.10.92-v7+ armv7l
ubuntu server 21.10 ubuntu 5.13.0-1008raspi aarch64
上記、3つで試しました。
結果
いずれのOS(アーキテクチャ)も失敗しました(ライズパイ3だからなのか??)
それでは以下より、行った手順を説明します。
OSをSDカードに焼く
各OSは公式のRaspberry Pi Imagerを使いSDカードに焼きました。
(OSインストールの手順は省略します)
各ソフトウェアのインストール
SDカードをラズパイにセットした後の手順です。
パッケージのアップデート
sudo apt-get update
nodejs、npmのインストール
sudo apt-get install nodejs npm
Symbol-bootstrapのインストール
sudo npm install -g symbol-bootstrap
Dockerのインストール
ラズパイは通常の手順ではDockerをインストール出来ないので下記のスクリプトを使います。
(これは公式にも載っています。https://docs.docker.com/engine/install/debian/)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
piユーザーでもdockerが使えるように設定
sudo usermod -aG docker pi
docker-composeのインストール
sudo pip3 install docker-compose
※ubuntu版にはpip3が入っていないので下記のコマンドでインストールが必要です。
sudo apt install python3-pip
ネットワークモージュールのインストール
※ネットワークモジュールのインストールはubuntu server 21.10を使った場合のみです。
sudo apt install linux-modules-extra-raspi
設定ファイルの書き換え
通常のSymbol-bootstrapはlinux/amd64しかサポートしていません。
https://hub.docker.com/layers/symbol-server/symbolplatform/symbol-server/gcc-10-1.0.3.3/images/sha256-21706ccb37148ab46ccc79f7a44a1761c01c0b3376cdc7eb320fff70c65fad05?context=explore
symbol-bootstrapで使用するdocker imageは下記(67行目付近)で確認出来ます。
https://github.com/fboucquez/symbol-bootstrap/blob/dev/presets/shared.yml
ちなみに、ここからはかなり力技なのですが、、npmでインストールしたsymbol-bootstrapの設定ファイルを書き換えます。
まず、symbol-bootstrapのインストールで参照される設定ファイルを探します。基本的にnpm install -g ~ でインストールしたパッケージは
/usr/local/bin以下に入っていると思います。
今回、設定ファイルは下記にありますので、これを編集します。
/usr/local/lib/node_modules/symbol-bootstrap/presets/shared.yml
...
- symbolServerImage: symbolplatform/symbol-server:gcc-10-1.0.3.3
+ symbolServerImage: bekirdag/symbol:gcc-1.0.0.0@sha256:4595e4b54173bf117080673d45c2edc01b68f168c006c4f280f19771925a7bf3
- symbolRestImage: symbolplatform/symbol-rest:2.4.0
+ symbolRestImage: bekirdag/symbol:rest@sha256:1519c26afab2c7387e1d9eda80274b5a6a33922b8ac683f0400eb6bf2541ceb6
symbolExplorerImage: symbolplatform/symbol-explorer:1.1.1-alpha-202110290945
symbolFaucetImage: symbolplatform/symbol-faucet:1.0.1-alpha-202110131930
mongoImage: mongo:4.4.3-bionic
...
今回、下記Dockerリポジトリを見つけたのでこちらに変更します。
このDockerイメージは、
linux/arm/v7
linux/arm/v6
linux/arm64
をサポートしています。
設定ファイルを書き換えた後は、通常通りsymbol-bootstrapのコマンドを実行します。
symbol-bootstrap config -p testnet -a api
standard_init_linux.go:228: exec user process caused: exec format error
このエラーはアーキテクチャの問題などで出るようです。(詳しくはわかってない。。)
最後に
ただ、残念ながら今回はどのディストリビューションを使用しても上記のようにエラーになって実行はできませんでした。
現在、アマゾンでライズパイ4を注文しているので、届き次第再チャレンジしてみたいと思います。
また、今回使用したserver、restイメージはいずれも古いバージョン(restはそうでもないかもしれない)なので、Dockerのイメージをlinux/amd64からlinux/arm64等に変更出来る方法を現在模索中です。(公式がlinux/arm64のイメージも作成してくれたらいいんですけど。。。)
知ってる人が入れば教えて下さい。。。
Author And Source
この問題について(ラズパイでSymbolノードを建てる(失敗)), 我々は、より多くの情報をここで見つけました https://qiita.com/ishidad2/items/eddda91c9c0f275c6d0d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .