検証環境
- 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
指示に従いセットアップを続ける
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
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
4. Add CSC configuration to common.env
common.envはrootがオーナーになっているので注意
sudo nano common.env
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ブラウザから接続する
停止
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
/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
Metamask
にインポートし、接続してみる
Faucet Server
Subnetを利用するためのトークンを付与できる
実行
カレントディレクトリはgenerated/
であることに注意してください。
./scripts/faucet-server.sh
port開けなくてもいけちゃうなぁ・・・
止め方がよくわからない。。。
とりあえず、CTRL+C
を3回で止めます。
dockerコンテナが残ったままなので、次の起動に影響あるので止めておきます。
docker ps
CONTAINER ID
を確認して
docker stop <CONTAINER ID>
Metamaskで自分のネットワークのRPCでインポートするとちゃんと送金されていました。
Blockchain Explorer
必要なパッケージをインストール
sudo apt install docker-compose
git clone https://github.com/web3labs/chainlens-free
cd chainlens-free/docker-compose
docker-compose pull
ここの例ではPORT
8599でサービスをオープンする例
UFWでポートオープン
sudo ufw allow 8599
実行
NODE_ENDPOINT=http://<IP_ADDRESS>:8545 PORT=8599 docker-compose up -d
Webブラウザからhttp://<IP_ADDRESS>:8599
に接続
自分のSubnetのBlockchain Explorerができるそうです。
停止
docker-compose ps
docker-compose down
SubSwap