# Sui Devnet Fullnodeの建て方

By [MalonPie](https://paragraph.com/@malonpie) · 2022-12-30

---

1\. 目的
------

SuiのDockerでのFullNodeの構築方法を記載します Source Codeでの構築方法もありますが、時間を要する & Build時にCPU / RAMリソースを消費するため、Node OperationとしてはDockerでの構築方法を推奨します

また、Suiにおいても報酬付きのテストネット (Wave1) が開かれるましたが、その際にもFullnodeの登録が必須でした Wave2は2023年上旬予定ですが、参加には開発者ネットでのFullNode構築が必須になると想定されますので、ぜひノードを建ててみてください

![](https://storage.googleapis.com/papyrus_images/be08777ee56b0e9ae77a8250b6474bb8a3c57a574df7e23bb6864f5a17def5fc.png)

2\. Server要件
------------

Serverの準備が必要になります AWS, Google Cloud, AzureなどのCloud Providerや OVH, Vultr, HetznerなどのDedicated Server ProviderなどでServerを用意してください

Serverスペックや、ファイアーウォールルールについては今回の要件にあわせてください

**スペック**

*   CPU : 10 cores
    
*   Memory : 32 GB RAM
    
*   Storage: 1 TB NVMe
    
*   OS : Ubuntu version 18.04 (Bionic Beaver)より最新版
    

**ファイアーウォールルール**

下記のPortを0.0.0.0/0, ::/0向けに開ける

*   8080 : HTTP
    
*   9000 : Sui JSON RPC
    
*   9184 : Metrics
    

3\. Fullnodeの建て方
----------------

本手順はSui公式の手順を参照して作成しています

[https://docs.sui.io/devnet/build/fullnode](https://docs.sui.io/devnet/build/fullnode)

### 3-1. 初心者向け

**3-1-1. Rootユーザ (特権ユーザ)になる**

    sudo su -
    cd $HOME
    

![](https://storage.googleapis.com/papyrus_images/0edc9e1fd43d71c39967167519aa08c796d9599d8a1fa08d266a925473b4de31.png)

**3-1-2. installerをダウンロード**

    wget -O install-sui-fullnode.sh https://raw.githubusercontent.com/malonpie/sui-node/main/install-sui-fullnode.sh
    

![](https://storage.googleapis.com/papyrus_images/cce5096437ed8d6f78813ae7d5a8b438353390a02bba489955ccbd0ffa4104f2.png)

**3-1-3. installerを実行**

    chmod +x install-sui-fullnode.sh
    ./install-sui-fullnode.sh
    

![](https://storage.googleapis.com/papyrus_images/205cc3205dbd2799faa880bf0d268f099fd41361982f7d25d8efeb2ce226053f.png)

**3-1-4. Fullnode起動完了**

無事Installerが動作すれば、自動でFullnodeが起動されます 下記のような画面になればOKです

Sui Node Versionは、SuiのDiscordにある #devnet-updatesチャネルに記載のある最新Versionと同じ数字であることを確認ください

![](https://storage.googleapis.com/papyrus_images/c8824713990540d276ef602249f8fd3aaf97b9061ca977f1cda6273c87836a89.png)

**3-1-5. 動作の確認**

SuiのCommunityメンバー (公式メンバーではない有志)が作成したNode checkerサイトがあります こちらに、NodeのIPを入れて確認してみてください (Installerの一番最後に表示されているものが、NodeのIPです)

同期するのに時間を要するため、Sync Statusが100%になるまで時間がかかります そのため、Node構築後すぐの確認観点としては、Average Sync Speedが50tps以上であれば問題ありません

[https://www.scale3labs.com/check/sui](https://www.scale3labs.com/check/sui)

### 3-2. Engineer向け

初心者向けのInstallerでやっている手順をStep by Stepで実施していきます 初心者向け手順を実施済みの人はSkipしてください 基本的にはCopy and Pasteで建てれるため、そこまで難しくないと思います

**3-2-1. Rootユーザ (特権ユーザ)になる**

    sudo su -
    cd $HOME
    

**3-2-2. 依存関係のUpdate**

    sudo apt update -y
    sudo apt upgrade -y
    sudo apt install jq -y
    

**3-2-3. DockerのInstall**

    sudo apt-get install ca-certificates curl gnupg lsb-release wget -y
    
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt-get update
    
    sudo apt-get install docker-ce docker-ce-cli containerd.io -y
    

**3-2-4. Docker composeのInstall**

    sudo mkdir -p ~/.docker/cli-plugins/
    
    sudo curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
    
    sudo chmod +x ~/.docker/cli-plugins/docker-compose
    
    sudo chown $USER /var/run/docker.sock
    

**3-2-5. フォルダ作成**

    mkdir -p $HOME/devnet
    
    cd $HOME/devnet
    

**3-2-6. 必要なファイルのDownload**

*   **docker-compose.yaml**
    
    起動するsui-nodeのdockerファイル
    
*   **fullnode.yaml** fullnodeの設定ファイル、portの変更などはここで指定する
    
*   **genesis.blob** Validator nodeに接続するために必要になる起動ファイル
    

    wget https://raw.githubusercontent.com/MystenLabs/sui/main/docker/fullnode/docker-compose.yaml
    
    wget -O fullnode.yaml https://raw.githubusercontent.com/MystenLabs/sui/main/crates/sui-config/data/fullnode-template.yaml
    
    wget -O genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
    

**3-2-7. Fullnodeの起動**

    docker compose up -d
    

**3-2-8. Nodeの確認**

    # Logの確認
    docker compose logs -f
    
    # Sui-node versionの確認
    curl --location --request POST 127.0.0.1:9000 \
    --header 'Content-Type: application/json' \
    --data-raw '{ "jsonrpc":"2.0", "method":"rpc.discover","id":1}' 2>/dev/null | jq -r .result.info
    
    # SyncしたVersionの確認
    curl --location --request POST 127.0.0.1:9000 \
    --header 'Content-Type: application/json' \
    --data-raw '{ "jsonrpc":"2.0", "method":"sui_getTotalTransactionNumber","id":1}' 2>/dev/null | jq .result
    

4\. NodeのUpgrade方法
------------------

SuiはDevnetのため、逐次Updateがあります UpdateしないとFullnodeとしては、Txsの同期やRPCとしてのEndpointとして機能しないため、Versionをあげる必要があります

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

    sudo su -
    cd $HOME
    

**4-2. Nodeの停止**

    docker compose down -v
    

**4-3. 古いgenesisファイルの削除**

    rm genesis.blob
    

**4-4. 新しいgenesisファイルのDownload**

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

**4-5. 新しいDocker imageのDownload**

**4-6. Fullnodeの起動**

    docker compose up -d
    

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

また、引き続きSuiでの開発者向けの記事も書いていきます！！

---

*Originally published on [MalonPie](https://paragraph.com/@malonpie/sui-devnet-fullnode)*
