Sui FullNodeの建て方

1. 目的

SuiのFullNodeの構築方法を記載します 今後dockerもサポートするとのことですが、現時点ではSource CodeからのBuild方法を記載します

また、Suiにおいても報酬付きのテストネットが開かれる予定ですが、参加には開発者ネットでのFullNode構築が必須なので、ぜひノードを建ててみてください

1-1. 初心者の方

簡単にNodeを建てることができるinstaller作成しました 動作させるCodeはこちらです

[注意事項]

Node構築に際して、簡易なinstallerはSui以外にもよく見られます 多くの場合には、悪意のない人が善意で作成しているものです ただし、まれに悪意のあるコードを仕込んでいる人もいます できれば元のコードと公式のDocumentを比較して、あからさまに異なる箇所がないか確認する習慣をつけてください

https://github.com/qyeah98/sui-installer/blob/main/install-sui-fullnode.sh

1-2. エンジニアの方

公式のGithubに詳細手順があるため、そちらもぜひ確認してください

https://github.com/MystenLabs/sui/blob/main/doc/src/build/fullnode.md

post image

2. 手順

2-1. サーバの準備

サーバの準備が必要になります こちらの記事を参考にして、サーバを用意してください

サーバスペックや、セキュリティルールについては今回の要件にあわせてください

スペック

  • CPU : 2 cores

  • Memory : 8GiB RAM

  • Storage: 50GB

  • OS : Ubuntu version 18.04 (Bionic Beaver)より最新版

セキュリティルール

  • 8080 : HTTP

  • 9000 : Sui-JSON-RPC (必要あれば)

  • 9184 : Metircs (必要あれば)

サーバの建て方

https://mirror.xyz/0xFA72ba6a332B196fC62bC221E4D32Cd166D0a9aF/E_ZiVVBxade1BvikPXUxs-NyB46rSgQ3ixpykjFJlj4

https://mirror.xyz/0xFA72ba6a332B196fC62bC221E4D32Cd166D0a9aF/-V7iK5fG5b2qUK3GWrxAg7h8FCb7tcBysL6KzkWFVkE

2-2. Githubアカウントの準備

ノードを建てるためにGithubアカウントが必要になります。 Githubにアクセスして、作成してください。

厳密に言いますと、Githubアカウントがなくてもノードを建てることが可能です。 しかし、Suiの公式手順ではGithubアカウントからのFork手順が推奨されています。

FullNodeの構築は、テストネット参加のための条件にもなっているため、 Githubアカウントでの確認を実施される可能性もあるため作成することを推奨します

https://github.com/

2-3. Mystenlabs/suiレポジトリのFork

Mystenlabs/suiレポジトリにアクセス

https://github.com/MystenLabs/sui

右上のForkをクリック

post image

ForkしたRepositoryのURLをコピー インストールの際に使用するため、メモしておいてください

post image

2-4. Install方法

2-4-1. サーバにログインする

https://mirror.xyz/0xFA72ba6a332B196fC62bC221E4D32Cd166D0a9aF/83-FPa7t3SmuToOEV4iZsImzkK2AQPbcc5SrCjWZpY8

2-4-2. Rootユーザ (特権ユーザ)になる

sudo su -
cd $HOME

2-4-3. installerをダウンロード & 実行

wget -O install-sui-fullnode.sh https://raw.githubusercontent.com/qyeah98/sui-installer/main/install-sui-fullnode.sh
post image
chmod +x install-sui-fullnode.sh
./install-sui-fullnode.sh
post image

GithubのURL入力を求められるため、 先ほどCopyしたものを貼り付けてEnterを押してください

INPUT your github url: 

# 例
INPUT your github url: https://github.com/qyeah98/sui.git
post image

Sui-JSON-RPC-APIを公開するか確認されます 外部からのAPIを許可したい場合には、yを入力してください 許可したくない場合には、nを入力してください

post image

Sui Metrics Portを公開するか確認されます 外部からのMetricsを取得したい場合には、yを入力してください 許可したくない場合には、nを入力してください

post image

インストールが始まります インストールが完了するまで、10分程度かかりますのでお待ちください

post image

下記のような結果が出れば完了です

post image

sui node started !と表示されていればインストール正常に完了です これにて作業終了です サーバに接続しているターミナルはそのまま閉じてOKです

post image

2-5. Tips

Nodeのログの表示 ※ Ctrl c同時押しで停止します

journalctl -u suid -f -o cat

Nodeの停止方法

sudo systemctl stop suid

Nodeの再起動方法

Nodeの削除

sudo systemctl stop
suid sudo systemctl disable
suid rm -rf ~/sui /var/sui/
rm /etc/systemd/suid.service 

Nodeのアップデート

# Stop sui-node
sudo systemctl stop suid

# Remove old db
rm -rf /var/sui/db /var/sui/genesis.blob

# Fetch the source from the latest release
git checkout -B devnet --track upstream/devnet

# Reset your branch:
git fetch upstream

# Download latest genesis.blob
wget -O /var/sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob

# Restart your Sui fullnode
cargo build --release -p sui-node
mv ~/sui/target/release/sui-node /usr/local/bin/

sudo systemctl restart systemd-journald
sudo systemctl daemon-reload
sudo systemctl enable suid
sudo systemctl restart suid

以上となります。 ぜひSuiのFullNodeを建てて、テストネットに参加していきましょう!