0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XDC Subnet建ててみる

Last updated at Posted at 2024-11-15

検証環境

  • CPU: 4core
  • Memory: 8GB
  • Storage: 200GB
  • OS: Ubuntu 20.04

必要なパッケージのインストール

sudo apt update
sudo apt-get install apt-transport-https ca-certificates curl git software-properties-common gnupg ufw -y

docker インストール

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce -y

docker compose インストール

curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

dockerのインストールはXinfin-Nodeのsetup.shを参照
GitHub

dockerの権限付与

sudo usermod -aG docker $USER

権限の読み込みのため、一度ログオフして入り直す

ファイアウォールの設定

VPSで構築する場合、セットアップ時にWebブラウザから接続するのにポートの開放が必要なため。
ローカルマシン上で実施する場合は、ファイアウォールの設定は不要

ufwを設定する場合、必ずSSHのポートも開けておくこと。(デフォルトは22番)
これをしないと、ログオフしたら2度と接続できない。

sudo ufw status

Staus: inactiveの場合、ufwを有効化する

sudo ufw enable
sudo ufw allow 5210
確認
sudo ufw status verbose

SSHポートと5210ポートがオープンされていることを確認

Subnetセットアップ

curl -O https://raw.githubusercontent.com/XinFinOrg/XinFin-Node/master/subnet/deployment-generator/scripts/generate.sh
chmod +x generate.sh
./generate.sh
cd generated

スクリーンショット 2024-11-14 22.05.34.png
スクリーンショット 2024-11-14 22.05.47.png

セットアップメモ

  • Operating SystemはVPSでLinuxだったとしてもMacを選択
    Linuxはさらに値の入力が必要になり、Private IP/Public IPともに同じ値を入れてみたところ、後続でエラーになった。もしかするとこの値をちゃんとしてるとイイのかも
    スクリーンショット 2024-11-15 8.34.30.png

  • Parentnet Wallet PKは下のGenerate Addressにて取得。Private Keyの値を登録

  • Faucetサイトから作成したAddressに対してXDCを送金する。
    Testnet(Apothem) Faucetの場合は、Addressはxdc prefixでなければならないことに注意

Submitを押すと
Web画面はこんな感じ
スクリーンショット 2024-11-14 22.24.23.png

指示に従いセットアップを続ける

commands.txtを見ながら順番にコマンドを実行していく。

cd generated
cat commands.txt

以下は、commands.txtの内容

1. Deploy Subnet nodes

docker compose --env-file docker-compose.env --profile machine1 pull
docker compose --env-file docker-compose.env --profile machine1 up -d

2. After 60 seconds, confirm the Subnet is running correctly

./scripts/check-mining.sh

スクリーンショット 2024-11-15 8.37.22.png

3. Deploy Checkpoint Smart Contract (CSC)

docker pull xinfinorg/csc:v0.2.1
docker run --env-file contract_deploy.env  --network generated_docker_net  xinfinorg/csc:v0.2.1 full

スクリーンショット 2024-11-15 8.42.40.png
スクリーンショット 2024-11-15 8.42.47.png

4. Add CSC configuration to common.env

common.envはrootがオーナーになっているので注意

sudo nano common.env

スクリーンショット 2024-11-15 8.51.05.png

VPSで建てたので、下記も直しておく。(まずローカルでは接続できないので・・・)
スクリーンショット 2024-11-15 8.59.23.png
ufwでポートもオープン

sudo ufw allow 5213
sudo ufw allow 8545

5. Start services (relayer, backend, frontend)

docker compose --env-file docker-compose.env --profile services pull
docker compose --env-file docker-compose.env --profile services up -d

6. Confirm Subnet services through browser UI

Frontend: http://127.0.0.1:5214
Relayer: http://127.0.0.1:5215

VPSの場合は、URLは自身のIPに変換してWebブラウザから接続する

port:5214
スクリーンショット 2024-11-15 9.15.06.png
port:5215
スクリーンショット 2024-11-15 9.19.39.png

停止

docker compose --env-file docker-compose.env --profile services down 
docker compose --env-file docker-compose.env --profile machine1 down

ログのローテーション設定をしておく

ログがやばそうなので念の為
他にもログが出てるかもしれないので、順次アップデート

sudo nano /etc/logrotate.d/xdcsubnet-logs
/etc/logrotate.d/xdcsubnet-logs
/home/Doraemon/XDCSubnet/generated/stats-service/logs/*/*.log
/home/Doraemon/XDCSubnet/generated/xdcchain*/xdc.log
        {
            size 100M
            rotate 10
            copytruncate
            daily
            missingok
            notifempty
            compress
            delaycompress
            sharedscripts
            postrotate
                    invoke-rc.d rsyslog rotate >/dev/null 2>&1 || true
            endscript
        }
ログローテーション実行
sudo /usr/sbin/logrotate -f /etc/logrotate.d/xdcsubnet-logs 

Management

port:5214

スクリーンショット 2024-11-15 16.16.29.png
grandmasterで接続すると何か起きるらしい

grandmasterの情報はここにある

subnetを構築したディレクトリ
 └ generated/
    └ keys.json  ←これ!
cat keys.json

スクリーンショット 2024-11-15 16.23.17.png

Metamaskにインポートし、接続してみる

スクリーンショット 2024-11-15 16.26.36.png
スクリーンショット 2024-11-15 20.11.49.png
いろいろ出てきた。
これからゆっくり情報収集。

Faucet Server

Subnetを利用するためのトークンを付与できる

実行

カレントディレクトリはgenerated/であることに注意してください。

./scripts/faucet-server.sh

スクリーンショット 2024-11-16 20.40.18.png

port開けなくてもいけちゃうなぁ・・・

送金に失敗しました。
スクリーンショット 2024-11-16 20.50.05.png
原因はRPCno接続に失敗。
URLがローカルIPアドレスになっているのがダメっぽい?
プログラムを見ると、common.envを見てるみたいなので、編集する。

sudo nano common.env

スクリーンショット 2024-11-16 20.55.43.png

faucet用のdockerが上がったままになっているので、停止
スクリーンショット 2024-11-16 21.04.01.png

docker stop <CONTAINER ID>
新しいSUBNET_URLで再実行
./scripts/faucet-server.sh

スクリーンショット 2024-11-16 21.09.42.png
成功しました。

止め方がよくわからない。。。
とりあえず、CTRL+Cを3回で止めます。
dockerコンテナが残ったままなので、次の起動に影響あるので止めておきます。

docker ps

CONTAINER IDを確認して

docker stop <CONTAINER ID>

Metamaskで自分のネットワークのRPCでインポートするとちゃんと送金されていました。
スクリーンショット 2024-11-16 21.29.28.png

Blockchain Explorer

必要なパッケージをインストール

sudo apt install docker-compose
git clone https://github.com/web3labs/chainlens-free
cd chainlens-free/docker-compose
docker-compose pull

ここの例ではPORT8599でサービスをオープンする例

UFWでポートオープン

sudo ufw allow 8599

実行

NODE_ENDPOINT=http://<IP_ADDRESS>:8545 PORT=8599 docker-compose up -d

Webブラウザからhttp://<IP_ADDRESS>:8599に接続
スクリーンショット 2024-11-16 18.46.29.png

しばらくして画面を更新すると
スクリーンショット 2024-11-16 18.49.15.png
スクリーンショット 2024-11-16 18.51.28.png

自分のSubnetのBlockchain Explorerができるそうです。

先ほどfaucetで送金したトランザクションも表示されました。(更新はちょっと遅い)
スクリーンショット 2024-11-16 21.34.05.png
スクリーンショット 2024-11-16 21.36.44.png

停止

一覧
docker-compose ps

スクリーンショット 2024-11-16 18.56.48.png

停止
docker-compose down

スクリーンショット 2024-11-16 18.59.07.png

SubSwap

スクリーンショット 2024-11-20 20.46.39.png

RPC URLはhttpsでなければなりません。
スクリーンショット 2024-11-20 21.07.49.png

httpsの準備をしたら(だいぶ省略)
スクリーンショット 2024-11-23 14.38.50.png
スクリーンショット 2024-11-23 14.39.28.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?