見出し画像

”ラズパイ5”でAstar Node動かす②

※本記事は以下の記事の続きです。

この記事では、Ubuntu の起動イメージがインストールされた SDカードを Raspberry Pi 5 に挿入し、Ubuntu 起動から Astar Node を起動、初期起動するところまでを解説します。

注意:
この手順は、ITやパーソナルコンピューターに対しての基礎知識、および基本的な Linux オペレーションに精通した方向けとなっています。準備や設定の解説や操作については省略されている事がありますので、ご了承ください。


周辺デバイスの接続と Ubuntu の起動

起動する前に、Raspberry Pi 5 に電源ケーブルと外付けのポータブルHDD(2TB)をUSBセルフパワーハブ経由で接続します。
また、外部モニタとUSBキーボードを接続し直接操作できるようにします。

Raspberry Pi 5 に電力が供給されると、プロンプトが表示されるので Ubuntuのセットアップイメージを作るときに設定したユーザーでログインします。

補足:
ご自身の環境で WiFi のネットワークの情報(Rasbperry Pi の IP アドレス)がわかっていれば、Raspberry Pi へリモートコンピュータから ssh でリモートログインして操作することも可能です。

Ubuntu のアップデート

まず、Ubuntu OS のアップグレードと必要なパッケージのインストールを行います。以下では、OS のアップグレードをしているので一度再起動をしています。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt install -y adduser libfontconfig1

$ sync
$ sudo shutdown -r now

astar service の起動ユーザー・グループ作成

"astar" という名のユーザーとグループを作ります。

$ sudo useradd --no-create-home --shell /usr/sbin/nologin astar

外部ポータブルHDDのセットアップ

ブロックチェーンのデータベースを外部ポータブルHDD上に保存するため、ブロックデバイスとファイルシステムの構築をしてマウントをします。
基本的なOSの操作なので、以下は手順の概要だけ示します。

  • fdisk  or parted でパーティションを設定

  • mkfs.xfs でファイルシステム構築

  • /var/lib/astar を作成し、そこにマウント

  • /var/lib/astar のオーナー・グループを ”astar" 変更

  • OS 起動時に自動的にマウントするように /etc/fstab にエントリーを追加

astar-collator バイナリのダウンロード、展開

Raspberry Pi は、ARM で動いているので aarch64 アーキテクチャのバイナリをダウンロードし、展開します。

$ wget $(curl -s https://api.github.com/repos/AstarNetwork/Astar/releases/latest | grep "tag_name" | awk '{print "https://github.com/AstarNetwork/Astar/releases/download/" substr($2, 2, length($2)-3) "/astar-collator-v" substr($2, 3, length($2)-4) "-ubuntu-aarch64.tar.gz"}')
$ tar -xvf astar-collator*.tar.gz

astar-collator の配置

$ sudo chown astar:astar astar-collator
$ sudo mv ./astar-collator /usr/local/bin
$ sudo chmod +x /usr/local/bin/astar-collator

ファイルスワップの作成

今回利用する Raspberry Pi 5 のモデルは8GBのメモリーを搭載しているので、この操作を省略しています。

astar-collator の サービス設定

astar-collator を systemd で起動するため専用の Unit 定義ファイルを作成します。

ファイル:
 /etc/systemd/system/astar.service
変更部分:
 --name でノード名を指定(ここでは”RasPi5_TK")

[Unit]
Description=Astar Archive node

[Service]
User=astar
Group=astar

ExecStart=/usr/local/bin/astar-collator \
  --pruning archive \
  --rpc-cors all \
  --name RasPi5_TK \
  --chain astar \
  --base-path /var/lib/astar \
  --rpc-external \
  --rpc-methods Safe \
  --rpc-max-request-size 1 \
  --rpc-max-response-size 1 \ 
  --telemetry-url 'wss://telemetry.polkadot.io/submit/ 0'

Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

astar-collator サービスの有効化と起動

$ sudo systemctl enable astar.service
$ sudo systemctl start astar.service

起動および同期確認

起動直後は以下のようなログが出力されます。

$ journalctl -f -u astar.service -n100
2024-07-07T16:58:40.959082+09:00 astar systemd[1]: Started astar.service - Astar Archive node.
2024-07-07T16:58:41.026890+09:00 astar astar-collator[2113]: 2024-07-07 16:58:40 Astar Collator
2024-07-07T16:58:41.027057+09:00 astar astar-collator[2113]: 2024-07-07 16:58:40 ✌️  version 5.41.0-2f9d53639ad
2024-07-07T16:58:41.027102+09:00 astar astar-collator[2113]: 2024-07-07 16:58:40 ❤️  by Stake Technologies <devops@stake.co.jp>, 2019-2024
2024-07-07T16:58:41.027136+09:00 astar astar-collator[2113]: 2024-07-07 16:58:40 📋 Chain specification: Astar
2024-07-07T16:58:41.027172+09:00 astar astar-collator[2113]: 2024-07-07 16:58:40 🏷  Node name: RasPi5_TK
2024-07-07T16:58:41.027206+09:00 astar astar-collator[2113]: 2024-07-07 16:58:40 👤 Role: FULL
2024-07-07T16:58:41.027255+09:00 astar astar-collator[2113]: 2024-07-07 16:58:40 💾 Database: RocksDb at /var/lib/astar/chains/astar/db/full
2024-07-07T16:58:41.027288+09:00 astar astar-collator[2113]: 2024-07-07 16:58:41 Parachain id: Id(2006)
2024-07-07T16:58:41.027322+09:00 astar astar-collator[2113]: 2024-07-07 16:58:41 Parachain Account: 5Ec4AhPW97z4ZyYkd3mYkJrSeZWcwVv4wiANES2QrJi1x17F
2024-07-07T16:58:41.027366+09:00 astar astar-collator[2113]: 2024-07-07 16:58:41 Is collating: no

少ししてから同期が始まります。

2024-07-07T17:02:05.730515+09:00 astar astar-collator[2113]: 2024-07-07 17:02:05 [Relaychain] 🔍 Discovered new external address for our node: /ip4/203.114.26.103/tcp/30334/ws/p2p/12D3KooWS3vcSUpdopZVXUhewDfzR7XgNLntaLiB4L5X69cQ6YpJ
2024-07-07T17:02:09.585488+09:00 astar astar-collator[2113]: 2024-07-07 17:02:09 [Relaychain] ⚙️  Syncing, target=#21539908 (5 peers), best: #940162 (0xe68e…89ad), finalized #940032 (0xb31b…e5f3), ⬇ 126.0kiB/ ⬆ 48.4kiB/s
2024-07-07T17:02:09.735273+09:00 astar astar-collator[2113]: 2024-07-07 17:02:09 [Parachain] ⚙️  Syncing, target=#6550362 (8 peers), best: #4113601 (0xc5f0…2c2f), finalized #4063303 (0xb320…194d), ⬇ 2.4MiB/s  7.5kiB/s
2024-07-07T17:02:14.594076+09:00 astar astar-collator[2113]: 2024-07-07 17:02:14 [Relaychain] ⚙️  Syncing 76.4 bps, target=#21539909 (6 peers), best: #940544 (0x79d8…89f3), finalized #940544 (0x79d8…89f3), ⬇ 52.5kiB/s ⬆ 118.3kiB/s
2024-07-07T17:02:14.743802+09:00 astar astar-collator[2113]: 2024-07-07 17:02:14 [Parachain] ⚙️  Syncing  0.0 bps, target=#6550362 (8 peers), best: #4113601 (0xc5f0…2c2f), finalized #4063303 (0xb320…194d), ⬇ .5MiB/s ⬆ 0.4kiB/s
2024-07-07T17:02:19.600718+09:00 astar astar-collator[2113]: 2024-07-07 17:02:19 [Relaychain] ⚙️  Syncing 32.2 bps, target=#21539910 (7 peers), best: #940705 (0x4071…63e2), finalized #940544 (0x79d8…89f3), ⬇ 25.6kiB/s ⬆ 24.3kiB/s
2024-07-07T17:02:19.750589+09:00 astar astar-collator[2113]: 2024-07-07 17:02:19 [Parachain] ⚙️  Syncing  0.0 bps, target=#6550362 (9 peers), best: #4113601 (0xc5f0…2c2f), finalized #4063303 (0xb320…194d), ⬇ 92.6kiB/s ⬆ 3.7kiB/s
2024-07-07T17:02:24.657499+09:00 astar astar-collator[2113]: 2024-07-07 17:02:24 [Relaychain] ⚙️  Syncing 104.4 bps, target=#21539910 (10 peers), best: #941236 (0x17d8…6b0b), finalized #941056 (0xd0b0…038c),  353.5k

ログの確認は journalctl コマンドか、syslog で可能です。

$ journalctl -f -u astar.service -n 100

同期が始まった後、下記のテレメトリーサイトで自分で設定したノード名が出ているかを確認できます。

初めて起動する場合、ブロックが最新状態までたどり着くまでにはかなりの時間を要します。そのため、できるだけすぐに最新状態に追いつけるようにスナップショットを使う事ができます。次回はその方法について解説します。

参考


この記事が気に入ったらサポートをしてみませんか?