<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>MalonPie</title>
        <link>https://paragraph.com/@malonpie</link>
        <description>Love Sui
Builder and Node Operator

Running Validator
- Ethereum
- Avalanche</description>
        <lastBuildDate>Sat, 15 Aug 2026 23:36:02 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>MalonPie</title>
            <url>https://storage.googleapis.com/papyrus_images/cce8099c40e937852981b7e283258f5fa1dcfad2000a12cc515fd319f5fd0079.png</url>
            <link>https://paragraph.com/@malonpie</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Sui Testnet Wave2 Fullnodeの建て方]]></title>
            <link>https://paragraph.com/@malonpie/sui-testnet-wave2-fullnode</link>
            <guid>06PZPq5qtkLFqnS9Grkd</guid>
            <pubDate>Fri, 27 Jan 2023 01:04:13 GMT</pubDate>
            <description><![CDATA[1. 目的SuiのDockerでのFullNodeの構築方法を記載します Source Codeでの構築方法もありますが、時間を要する & Build時にCPU / RAMリソースを消費するため、Node OperationとしてはDockerでの構築方法を推奨します 今回のTestnetでは、報酬は付与されないですが、誰でもFullNodeを建てれるので練習のために構築して運用経験を積んでおくことをお勧めします2. Server要件Serverの準備が必要になります AWS, Google Cloud, AzureなどのCloud Providerや OVH, Vultr, HetznerなどのDedicated Server ProviderでServerを用意してください Contaboや自宅PC、またUS / EUより遠い場所にNodeを建てるとValidatorとの遅延が大きくSyncに問題が発生する可能性があります 上記のProviderでUS / EU RegionでServerを準備することを推奨します Serverスペックや、ファイアーウォールルールについては今...]]></description>
            <content:encoded><![CDATA[<h2 id="h-1" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1. 目的</h2><p>SuiのDockerでのFullNodeの構築方法を記載します Source Codeでの構築方法もありますが、時間を要する &amp; Build時にCPU / RAMリソースを消費するため、Node OperationとしてはDockerでの構築方法を推奨します</p><p>今回のTestnetでは、報酬は付与されないですが、誰でもFullNodeを建てれるので練習のために構築して運用経験を積んでおくことをお勧めします</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/719adab3cb09dcac7b4da5c3cc1c44c4d7b94b3800fe13995077ee02de1172f1.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h2 id="h-2-server" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2. Server要件</h2><p>Serverの準備が必要になります AWS, Google Cloud, AzureなどのCloud Providerや OVH, Vultr, HetznerなどのDedicated Server ProviderでServerを用意してください</p><p>Contaboや自宅PC、またUS / EUより遠い場所にNodeを建てるとValidatorとの遅延が大きくSyncに問題が発生する可能性があります</p><p>上記のProviderでUS / EU RegionでServerを準備することを推奨します</p><p>Serverスペックや、ファイアーウォールルールについては今回の要件にあわせてください</p><p><strong>スペック</strong></p><ul><li><p>CPU : 10 cores</p></li><li><p>Memory : 32 GB RAM</p></li><li><p>Storage: 1 TB NVMe</p></li><li><p>OS : Ubuntu version 18.04 (Bionic Beaver)より最新版</p></li></ul><p><strong>ファイアーウォールルール</strong></p><p>下記のPortを0.0.0.0/0, ::/0向けに開ける</p><ul><li><p>8080 : HTTP</p></li><li><p>9000 : Sui JSON RPC</p></li><li><p>9001 : Sui Event Websocket (任意)</p></li><li><p>9184 : Metrics</p></li></ul><h2 id="h-3-fullnode" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">3. Fullnodeの建て方</h2><p>本手順はSui公式の手順を参照して作成しています</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.sui.io/devnet/build/fullnode">https://docs.sui.io/devnet/build/fullnode</a></p><h3 id="h-3-1" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">3-1. 初心者向け</h3><p><strong>3-1-1. Rootユーザ (特権ユーザ)になる</strong></p><pre data-type="codeBlock" text="sudo su -

cd $HOME
"><code>sudo su -

<span class="hljs-built_in">cd</span> <span class="hljs-variable">$HOME</span>
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3e8ebcd391cbb8fa2a909398d3bafba5ed252aa13d52f446f9406cb5acb8d94b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>3-1-2. installerをダウンロード</strong></p><pre data-type="codeBlock" text="wget -O install-sui-fullnode-wave2.sh https://raw.githubusercontent.com/malonpie/sui-node/main/install-sui-fullnode-wave2.sh
"><code>wget <span class="hljs-operator">-</span>O install<span class="hljs-operator">-</span>sui<span class="hljs-operator">-</span>fullnode<span class="hljs-operator">-</span>wave2.sh https:<span class="hljs-comment">//raw.githubusercontent.com/malonpie/sui-node/main/install-sui-fullnode-wave2.sh</span>
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bc79d75ad97420d681c7bfe37e9c43835d69f6a532fa06af1b8b97b42f8c9acd.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>3-1-3. installerを実行</strong></p><pre data-type="codeBlock" text="chmod +x install-sui-fullnode-wave2.sh

./install-sui-fullnode-wave2.sh
"><code>chmod <span class="hljs-operator">+</span>x install<span class="hljs-operator">-</span>sui<span class="hljs-operator">-</span>fullnode<span class="hljs-operator">-</span>wave2.sh

./install<span class="hljs-operator">-</span>sui<span class="hljs-operator">-</span>fullnode<span class="hljs-operator">-</span>wave2.sh
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3c2e8d1ba2f512383583a64429a3afbd3eee35511849c7212a1fb6059c68e4b5.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>3-1-4. Fullnode起動完了</strong></p><p>無事Installerが動作すれば、自動でFullnodeが起動されます 下記のような画面になればOKです</p><p>・Node TPSが、0以上であること</p><p>・Sui Node Versionが、0.22.0であること</p><p>・IP Info: の箇所にIP情報が出てくること 　※ 下記の画像の例では、54.178.169.50です 　　Node checkerサイトでは、このIPを入れてください</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f1325d1876cb9ba43de494881532ecf534c81d1abde5ba5502e0609a7735bc10.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>3-1-5. 動作の確認</strong></p><p>SuiのCommunityメンバー (公式メンバーではない有志)が作成したNode checkerサイトがあります こちらに、NodeのIPを入れて確認してみてください (Installerの一番最後に表示されているものが、NodeのIPです)</p><p>同期するのに時間を要するため、Sync Statusが100%になるまで時間がかかります そのため、Node構築後すぐの確認観点としては、Average Sync Speedが50tps以上であれば問題ありません</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.scale3labs.com/check/sui">https://www.scale3labs.com/check/sui</a></p><p>・Node URL or IPに、先ほど表示されたIPを入れる</p><p>・RPC Portを9000で設定</p><p>・Networksを、Testnetに設定</p><p>・Checkを押す</p><p>※ 結果が表示されるまで、10秒くらいかかります</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ee127e02f2ac180db178ab866a8308a7d4f0ddc6491e4c745a605c37c03f5ca2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-3-2-engineer" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">3-2. Engineer向け</h3><p>初心者向けのInstallerでやっている手順をStep by Stepで実施していきます 初心者向け手順を実施済みの人はSkipしてください 基本的にはCopy and Pasteで建てれるため、そこまで難しくないと思います</p><p><strong>3-2-1. Rootユーザ (特権ユーザ)になる</strong></p><pre data-type="codeBlock" text="sudo su -
cd $HOME
"><code>sudo su -
<span class="hljs-built_in">cd</span> <span class="hljs-variable">$HOME</span>
</code></pre><p><strong>3-2-2. 依存関係のUpdate</strong></p><pre data-type="codeBlock" text="sudo apt update -y
sudo apt upgrade -y
sudo apt install jq -y
"><code>sudo apt update <span class="hljs-operator">-</span>y
sudo apt upgrade <span class="hljs-operator">-</span>y
sudo apt install jq <span class="hljs-operator">-</span>y
</code></pre><p><strong>3-2-3. DockerのInstall</strong></p><pre data-type="codeBlock" text="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 &quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io -y
"><code>sudo apt<span class="hljs-operator">-</span>get install ca<span class="hljs-operator">-</span>certificates curl gnupg lsb<span class="hljs-operator">-</span>release wget <span class="hljs-operator">-</span>y

curl <span class="hljs-operator">-</span>fsSL https:<span class="hljs-comment">//download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg</span>

echo <span class="hljs-string">"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"</span> <span class="hljs-operator">|</span> sudo tee <span class="hljs-operator">/</span>etc<span class="hljs-operator">/</span>apt<span class="hljs-operator">/</span>sources.list.d/docker.list <span class="hljs-operator">></span> <span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null

sudo apt<span class="hljs-operator">-</span>get update

sudo apt<span class="hljs-operator">-</span>get install docker<span class="hljs-operator">-</span>ce docker<span class="hljs-operator">-</span>ce<span class="hljs-operator">-</span>cli containerd.io <span class="hljs-operator">-</span>y
</code></pre><p><strong>3-2-4. Docker composeのInstall</strong></p><pre data-type="codeBlock" text="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
"><code>sudo mkdir <span class="hljs-operator">-</span>p <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.docker/cli<span class="hljs-operator">-</span>plugins<span class="hljs-operator">/</span>

sudo curl <span class="hljs-operator">-</span>SL https:<span class="hljs-comment">//github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose</span>

sudo chmod <span class="hljs-operator">+</span>x <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.docker/cli<span class="hljs-operator">-</span>plugins<span class="hljs-operator">/</span>docker<span class="hljs-operator">-</span>compose

sudo chown $USER <span class="hljs-operator">/</span><span class="hljs-keyword">var</span><span class="hljs-operator">/</span>run<span class="hljs-operator">/</span>docker.sock
</code></pre><p><strong>3-2-5. フォルダ作成</strong></p><pre data-type="codeBlock" text="mkdir -p $HOME/testnet

cd $HOME/testnet
"><code><span class="hljs-built_in">mkdir</span> -p <span class="hljs-variable">$HOME</span>/testnet

<span class="hljs-built_in">cd</span> <span class="hljs-variable">$HOME</span>/testnet
</code></pre><p><strong>3-2-6. 必要なファイルのDownload</strong></p><ul><li><p>**docker-compose.yaml **起動するsui-nodeのdockerファイル</p></li><li><p><strong>fullnode-template.yaml</strong> fullnodeの設定ファイル、portの変更などはここで指定する</p></li><li><p><strong>genesis.blob</strong> Validator nodeに接続するために必要になる起動ファイル</p></li></ul><pre data-type="codeBlock" text="wget -O docker-compose.yaml https://raw.githubusercontent.com/MystenLabs/sui/main/docker/fullnode/docker-compose.yaml

IMAGE=&quot;mysten/sui-node:2698314d139a3018c2333ddaa670a7cb70beceee&quot;
sed -i.bak &quot;s|image:.*|image: $IMAGE|&quot; $HOME/sui/docker-compose.yaml

wget -O fullnode-template 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
"><code>wget <span class="hljs-operator">-</span>O docker<span class="hljs-operator">-</span>compose.yaml https:<span class="hljs-comment">//raw.githubusercontent.com/MystenLabs/sui/main/docker/fullnode/docker-compose.yaml</span>

IMAGE<span class="hljs-operator">=</span><span class="hljs-string">"mysten/sui-node:2698314d139a3018c2333ddaa670a7cb70beceee"</span>
sed <span class="hljs-operator">-</span>i.bak <span class="hljs-string">"s|image:.*|image: $IMAGE|"</span> $HOME<span class="hljs-operator">/</span>sui<span class="hljs-operator">/</span>docker<span class="hljs-operator">-</span>compose.yaml

wget <span class="hljs-operator">-</span>O fullnode<span class="hljs-operator">-</span>template https:<span class="hljs-comment">//raw.githubusercontent.com/MystenLabs/sui/main/crates/sui-config/data/fullnode-template.yaml</span>

wget <span class="hljs-operator">-</span>O genesis.blob https:<span class="hljs-comment">//github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob</span>
</code></pre><p><strong>3-2-7. Fullnodeの起動</strong></p><pre data-type="codeBlock" text="docker compose up -d
"><code>docker compose up <span class="hljs-operator">-</span>d
</code></pre><p><strong>3-2-8. Nodeの確認</strong></p><pre data-type="codeBlock" text="# Logの確認
docker compose logs -f

# Sui-node versionの確認
curl --location --request POST 127.0.0.1:9000 \
--header &apos;Content-Type: application/json&apos; \
--data-raw &apos;{ &quot;jsonrpc&quot;:&quot;2.0&quot;, &quot;method&quot;:&quot;rpc.discover&quot;,&quot;id&quot;:1}&apos; 2&gt;/dev/null | jq -r .result.info

# SyncしたTxsの確認
curl --location --request POST 127.0.0.1:9000 \
--header &apos;Content-Type: application/json&apos; \
--data-raw &apos;{ &quot;jsonrpc&quot;:&quot;2.0&quot;, &quot;method&quot;:&quot;sui_getTotalTransactionNumber&quot;,&quot;id&quot;:1}&apos; 2&gt;/dev/null | jq .result
"><code># Logの確認
docker compose logs <span class="hljs-operator">-</span>f

# Sui<span class="hljs-operator">-</span>node versionの確認
curl <span class="hljs-operator">-</span><span class="hljs-operator">-</span>location <span class="hljs-operator">-</span><span class="hljs-operator">-</span>request POST <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>:<span class="hljs-number">9000</span> \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>header <span class="hljs-string">'Content-Type: application/json'</span> \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>data<span class="hljs-operator">-</span>raw <span class="hljs-string">'{ "jsonrpc":"2.0", "method":"rpc.discover","id":1}'</span> <span class="hljs-number">2</span><span class="hljs-operator">></span><span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null <span class="hljs-operator">|</span> jq <span class="hljs-operator">-</span>r .result.info

# SyncしたTxsの確認
curl <span class="hljs-operator">-</span><span class="hljs-operator">-</span>location <span class="hljs-operator">-</span><span class="hljs-operator">-</span>request POST <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>:<span class="hljs-number">9000</span> \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>header <span class="hljs-string">'Content-Type: application/json'</span> \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>data<span class="hljs-operator">-</span>raw <span class="hljs-string">'{ "jsonrpc":"2.0", "method":"sui_getTotalTransactionNumber","id":1}'</span> <span class="hljs-number">2</span><span class="hljs-operator">></span><span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null <span class="hljs-operator">|</span> jq .result
</code></pre><h2 id="h-4-nodeupgrade" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">4. NodeのUpgrade方法</h2><p>SuiはTestnetのため、逐次Updateがあります UpdateしないとFullnodeとしては、Txsの同期やRPCとしてのEndpointとして機能しないためVersionをあげる必要があります</p><p><strong>4-1. Rootユーザ (特権ユーザ)になる</strong></p><pre data-type="codeBlock" text="sudo su -

cd $HOME
"><code>sudo su -

<span class="hljs-built_in">cd</span> <span class="hljs-variable">$HOME</span>
</code></pre><p><strong>4-2. Nodeの停止</strong></p><pre data-type="codeBlock" text="docker compose down -v
"><code>docker compose down <span class="hljs-operator">-</span>v
</code></pre><p><strong>4-3. 新しいDockerファイルの更新</strong></p><pre data-type="codeBlock" text="IMAGE=&quot;mysten/sui-node:&lt;Discordの「node-announcements」で記載のあるVersion&gt;&quot;

sed -i.bak &quot;s|image:.*|image: $IMAGE|&quot; $HOME/sui/docker-compose.yaml
"><code>IMAGE<span class="hljs-operator">=</span><span class="hljs-string">"mysten/sui-node:&#x3C;Discordの「node-announcements」で記載のあるVersion>"</span>

sed <span class="hljs-operator">-</span>i.bak <span class="hljs-string">"s|image:.*|image: $IMAGE|"</span> $HOME<span class="hljs-operator">/</span>sui<span class="hljs-operator">/</span>docker<span class="hljs-operator">-</span>compose.yaml
</code></pre><p><strong>4-4. 新しいDocker imageのDownload</strong></p><pre data-type="codeBlock" text="docker compose pull
"><code></code></pre><p><strong>4-5. Fullnodeの起動</strong></p><pre data-type="codeBlock" text="docker compose up -d
"><code>docker compose up <span class="hljs-operator">-</span>d
</code></pre><p>以上となります。 ぜひSuiのFullNodeを建てて、テストネットに参加していきましょう！</p><p>また、引き続きSuiでの開発者向けの記事も書いていきます！！</p>]]></content:encoded>
            <author>malonpie@newsletter.paragraph.com (MalonPie)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/6634493d285d1ec8611a7163a3838ba36b585c82f95795852f0e584bcd76eaa4.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Sui Devnet Fullnodeの建て方]]></title>
            <link>https://paragraph.com/@malonpie/sui-devnet-fullnode</link>
            <guid>h5i1MzvzjOPxV1m8KPPd</guid>
            <pubDate>Fri, 30 Dec 2022 10:56:03 GMT</pubDate>
            <description><![CDATA[1. 目的SuiのDockerでのFullNodeの構築方法を記載します Source Codeでの構築方法もありますが、時間を要する & Build時にCPU / RAMリソースを消費するため、Node OperationとしてはDockerでの構築方法を推奨します また、Suiにおいても報酬付きのテストネット (Wave1) が開かれるましたが、その際にもFullnodeの登録が必須でした Wave2は2023年上旬予定ですが、参加には開発者ネットでのFullNode構築が必須になると想定されますので、ぜひノードを建ててみてください2. Server要件Serverの準備が必要になります AWS, Google Cloud, AzureなどのCloud Providerや OVH, Vultr, HetznerなどのDedicated Server ProviderなどでServerを用意してください Serverスペックや、ファイアーウォールルールについては今回の要件にあわせてください スペックCPU : 10 coresMemory : 32 GB RAMStorage:...]]></description>
            <content:encoded><![CDATA[<h2 id="h-1" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1. 目的</h2><p>SuiのDockerでのFullNodeの構築方法を記載します Source Codeでの構築方法もありますが、時間を要する &amp; Build時にCPU / RAMリソースを消費するため、Node OperationとしてはDockerでの構築方法を推奨します</p><p>また、Suiにおいても報酬付きのテストネット (Wave1) が開かれるましたが、その際にもFullnodeの登録が必須でした Wave2は2023年上旬予定ですが、参加には開発者ネットでのFullNode構築が必須になると想定されますので、ぜひノードを建ててみてください</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/be08777ee56b0e9ae77a8250b6474bb8a3c57a574df7e23bb6864f5a17def5fc.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h2 id="h-2-server" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2. Server要件</h2><p>Serverの準備が必要になります AWS, Google Cloud, AzureなどのCloud Providerや OVH, Vultr, HetznerなどのDedicated Server ProviderなどでServerを用意してください</p><p>Serverスペックや、ファイアーウォールルールについては今回の要件にあわせてください</p><p><strong>スペック</strong></p><ul><li><p>CPU : 10 cores</p></li><li><p>Memory : 32 GB RAM</p></li><li><p>Storage: 1 TB NVMe</p></li><li><p>OS : Ubuntu version 18.04 (Bionic Beaver)より最新版</p></li></ul><p><strong>ファイアーウォールルール</strong></p><p>下記のPortを0.0.0.0/0, ::/0向けに開ける</p><ul><li><p>8080 : HTTP</p></li><li><p>9000 : Sui JSON RPC</p></li><li><p>9184 : Metrics</p></li></ul><h2 id="h-3-fullnode" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">3. Fullnodeの建て方</h2><p>本手順はSui公式の手順を参照して作成しています</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.sui.io/devnet/build/fullnode">https://docs.sui.io/devnet/build/fullnode</a></p><h3 id="h-3-1" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">3-1. 初心者向け</h3><p><strong>3-1-1. Rootユーザ (特権ユーザ)になる</strong></p><pre data-type="codeBlock" text="sudo su -
cd $HOME
"><code>sudo su -
<span class="hljs-built_in">cd</span> <span class="hljs-variable">$HOME</span>
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0edc9e1fd43d71c39967167519aa08c796d9599d8a1fa08d266a925473b4de31.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>3-1-2. installerをダウンロード</strong></p><pre data-type="codeBlock" text="wget -O install-sui-fullnode.sh https://raw.githubusercontent.com/malonpie/sui-node/main/install-sui-fullnode.sh
"><code>wget <span class="hljs-operator">-</span>O install<span class="hljs-operator">-</span>sui<span class="hljs-operator">-</span>fullnode.sh https:<span class="hljs-comment">//raw.githubusercontent.com/malonpie/sui-node/main/install-sui-fullnode.sh</span>
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cce5096437ed8d6f78813ae7d5a8b438353390a02bba489955ccbd0ffa4104f2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>3-1-3. installerを実行</strong></p><pre data-type="codeBlock" text="chmod +x install-sui-fullnode.sh
./install-sui-fullnode.sh
"><code>chmod <span class="hljs-operator">+</span>x install<span class="hljs-operator">-</span>sui<span class="hljs-operator">-</span>fullnode.sh
./install<span class="hljs-operator">-</span>sui<span class="hljs-operator">-</span>fullnode.sh
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/205cc3205dbd2799faa880bf0d268f099fd41361982f7d25d8efeb2ce226053f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>3-1-4. Fullnode起動完了</strong></p><p>無事Installerが動作すれば、自動でFullnodeが起動されます 下記のような画面になればOKです</p><p>Sui Node Versionは、SuiのDiscordにある #devnet-updatesチャネルに記載のある最新Versionと同じ数字であることを確認ください</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c8824713990540d276ef602249f8fd3aaf97b9061ca977f1cda6273c87836a89.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>3-1-5. 動作の確認</strong></p><p>SuiのCommunityメンバー (公式メンバーではない有志)が作成したNode checkerサイトがあります こちらに、NodeのIPを入れて確認してみてください (Installerの一番最後に表示されているものが、NodeのIPです)</p><p>同期するのに時間を要するため、Sync Statusが100%になるまで時間がかかります そのため、Node構築後すぐの確認観点としては、Average Sync Speedが50tps以上であれば問題ありません</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.scale3labs.com/check/sui">https://www.scale3labs.com/check/sui</a></p><h3 id="h-3-2-engineer" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">3-2. Engineer向け</h3><p>初心者向けのInstallerでやっている手順をStep by Stepで実施していきます 初心者向け手順を実施済みの人はSkipしてください 基本的にはCopy and Pasteで建てれるため、そこまで難しくないと思います</p><p><strong>3-2-1. Rootユーザ (特権ユーザ)になる</strong></p><pre data-type="codeBlock" text="sudo su -
cd $HOME
"><code>sudo su -
<span class="hljs-built_in">cd</span> <span class="hljs-variable">$HOME</span>
</code></pre><p><strong>3-2-2. 依存関係のUpdate</strong></p><pre data-type="codeBlock" text="sudo apt update -y
sudo apt upgrade -y
sudo apt install jq -y
"><code>sudo apt update <span class="hljs-operator">-</span>y
sudo apt upgrade <span class="hljs-operator">-</span>y
sudo apt install jq <span class="hljs-operator">-</span>y
</code></pre><p><strong>3-2-3. DockerのInstall</strong></p><pre data-type="codeBlock" text="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 &quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io -y
"><code>sudo apt<span class="hljs-operator">-</span>get install ca<span class="hljs-operator">-</span>certificates curl gnupg lsb<span class="hljs-operator">-</span>release wget <span class="hljs-operator">-</span>y

curl <span class="hljs-operator">-</span>fsSL https:<span class="hljs-comment">//download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg</span>

echo <span class="hljs-string">"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"</span> <span class="hljs-operator">|</span> sudo tee <span class="hljs-operator">/</span>etc<span class="hljs-operator">/</span>apt<span class="hljs-operator">/</span>sources.list.d/docker.list <span class="hljs-operator">></span> <span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null

sudo apt<span class="hljs-operator">-</span>get update

sudo apt<span class="hljs-operator">-</span>get install docker<span class="hljs-operator">-</span>ce docker<span class="hljs-operator">-</span>ce<span class="hljs-operator">-</span>cli containerd.io <span class="hljs-operator">-</span>y
</code></pre><p><strong>3-2-4. Docker composeのInstall</strong></p><pre data-type="codeBlock" text="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
"><code>sudo mkdir <span class="hljs-operator">-</span>p <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.docker/cli<span class="hljs-operator">-</span>plugins<span class="hljs-operator">/</span>

sudo curl <span class="hljs-operator">-</span>SL https:<span class="hljs-comment">//github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose</span>

sudo chmod <span class="hljs-operator">+</span>x <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.docker/cli<span class="hljs-operator">-</span>plugins<span class="hljs-operator">/</span>docker<span class="hljs-operator">-</span>compose

sudo chown $USER <span class="hljs-operator">/</span><span class="hljs-keyword">var</span><span class="hljs-operator">/</span>run<span class="hljs-operator">/</span>docker.sock
</code></pre><p><strong>3-2-5. フォルダ作成</strong></p><pre data-type="codeBlock" text="mkdir -p $HOME/devnet

cd $HOME/devnet
"><code><span class="hljs-built_in">mkdir</span> -p <span class="hljs-variable">$HOME</span>/devnet

<span class="hljs-built_in">cd</span> <span class="hljs-variable">$HOME</span>/devnet
</code></pre><p><strong>3-2-6. 必要なファイルのDownload</strong></p><ul><li><p><strong>docker-compose.yaml</strong></p><p>起動するsui-nodeのdockerファイル</p></li><li><p><strong>fullnode.yaml</strong> fullnodeの設定ファイル、portの変更などはここで指定する</p></li><li><p><strong>genesis.blob</strong> Validator nodeに接続するために必要になる起動ファイル</p></li></ul><pre data-type="codeBlock" text="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
"><code>wget https:<span class="hljs-comment">//raw.githubusercontent.com/MystenLabs/sui/main/docker/fullnode/docker-compose.yaml</span>

wget <span class="hljs-operator">-</span>O fullnode.yaml https:<span class="hljs-comment">//raw.githubusercontent.com/MystenLabs/sui/main/crates/sui-config/data/fullnode-template.yaml</span>

wget <span class="hljs-operator">-</span>O genesis.blob https:<span class="hljs-comment">//github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob</span>
</code></pre><p><strong>3-2-7. Fullnodeの起動</strong></p><pre data-type="codeBlock" text="docker compose up -d
"><code>docker compose up <span class="hljs-operator">-</span>d
</code></pre><p><strong>3-2-8. Nodeの確認</strong></p><pre data-type="codeBlock" text="# Logの確認
docker compose logs -f

# Sui-node versionの確認
curl --location --request POST 127.0.0.1:9000 \
--header &apos;Content-Type: application/json&apos; \
--data-raw &apos;{ &quot;jsonrpc&quot;:&quot;2.0&quot;, &quot;method&quot;:&quot;rpc.discover&quot;,&quot;id&quot;:1}&apos; 2&gt;/dev/null | jq -r .result.info

# SyncしたVersionの確認
curl --location --request POST 127.0.0.1:9000 \
--header &apos;Content-Type: application/json&apos; \
--data-raw &apos;{ &quot;jsonrpc&quot;:&quot;2.0&quot;, &quot;method&quot;:&quot;sui_getTotalTransactionNumber&quot;,&quot;id&quot;:1}&apos; 2&gt;/dev/null | jq .result
"><code># Logの確認
docker compose logs <span class="hljs-operator">-</span>f

# Sui<span class="hljs-operator">-</span>node versionの確認
curl <span class="hljs-operator">-</span><span class="hljs-operator">-</span>location <span class="hljs-operator">-</span><span class="hljs-operator">-</span>request POST <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>:<span class="hljs-number">9000</span> \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>header <span class="hljs-string">'Content-Type: application/json'</span> \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>data<span class="hljs-operator">-</span>raw <span class="hljs-string">'{ "jsonrpc":"2.0", "method":"rpc.discover","id":1}'</span> <span class="hljs-number">2</span><span class="hljs-operator">></span><span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null <span class="hljs-operator">|</span> jq <span class="hljs-operator">-</span>r .result.info

# SyncしたVersionの確認
curl <span class="hljs-operator">-</span><span class="hljs-operator">-</span>location <span class="hljs-operator">-</span><span class="hljs-operator">-</span>request POST <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>:<span class="hljs-number">9000</span> \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>header <span class="hljs-string">'Content-Type: application/json'</span> \
<span class="hljs-operator">-</span><span class="hljs-operator">-</span>data<span class="hljs-operator">-</span>raw <span class="hljs-string">'{ "jsonrpc":"2.0", "method":"sui_getTotalTransactionNumber","id":1}'</span> <span class="hljs-number">2</span><span class="hljs-operator">></span><span class="hljs-operator">/</span>dev<span class="hljs-operator">/</span>null <span class="hljs-operator">|</span> jq .result
</code></pre><h2 id="h-4-nodeupgrade" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">4. NodeのUpgrade方法</h2><p>SuiはDevnetのため、逐次Updateがあります UpdateしないとFullnodeとしては、Txsの同期やRPCとしてのEndpointとして機能しないため、Versionをあげる必要があります</p><p><strong>4-1. Rootユーザ (特権ユーザ)になる</strong></p><pre data-type="codeBlock" text="sudo su -
cd $HOME
"><code>sudo su -
<span class="hljs-built_in">cd</span> <span class="hljs-variable">$HOME</span>
</code></pre><p><strong>4-2. Nodeの停止</strong></p><pre data-type="codeBlock" text="docker compose down -v
"><code>docker compose down <span class="hljs-operator">-</span>v
</code></pre><p><strong>4-3. 古いgenesisファイルの削除</strong></p><pre data-type="codeBlock" text="rm genesis.blob
"><code>rm genesis.blob
</code></pre><p><strong>4-4. 新しいgenesisファイルのDownload</strong></p><pre data-type="codeBlock" text="wget -O genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
"><code>wget <span class="hljs-operator">-</span>O genesis.blob https:<span class="hljs-comment">//github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob</span>
</code></pre><p><strong>4-5. 新しいDocker imageのDownload</strong></p><pre data-type="codeBlock" text="docker compose pull
"><code></code></pre><p><strong>4-6. Fullnodeの起動</strong></p><pre data-type="codeBlock" text="docker compose up -d
"><code>docker compose up <span class="hljs-operator">-</span>d
</code></pre><p>以上となります。 ぜひSuiのFullNodeを建てて、テストネットに参加していきましょう！</p><p>また、引き続きSuiでの開発者向けの記事も書いていきます！！</p>]]></content:encoded>
            <author>malonpie@newsletter.paragraph.com (MalonPie)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/5ea13e5f99cfd2999bfd4ed70fb3409700ff38eb07966b73e2af913d53b9fe45.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>