XION Testnetのvalidator nodeの建て方

素人プログラミングのメモなので自己責任でお願いします。

参照


まずはfull nodeを建てる

OSはUbuntu22.04
リポジトリ情報を更新&システムのパッケージを最新verにアップグレード
(リポジトリに新しいverがある場合インストール済みのパッケージをアップグレードする)

sudo apt update && sudo apt upgrade -y

必要(そう)なパッケージをインストール

sudo apt -qy install curl git jq lz4 build-essential

GO言語をインストール

sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.20.12.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)

xion(burunt-labs)のリポジトリをローカル環境に複製

git clone https://github.com/burnt-labs/xion.git

xionディレクトリができる(ここに複製されている)のでxionディレクトリに移動

cd xion

xionディレクトリ内で

make install

binaryファイルがbuildされる(/root/go/bin/xiondが作成される)

#xiondの場所を確認
which xiond
#xiondのバージョン確認
xiond version

初期化(my-awesome-monikerは任意の名前)

xiond init my-awesome-moniker --chain-id xion-testnet-1 --home /home/xion/.xiond

Genesis JSONファイルをダウンロード

set -euxo pipefail #docsにはあるが入力せず
curl https://files.xion-testnet-1.burnt.com/genesis.json -o /home/xiond/.xiond/config/genesis.json -s

※この時点で/home/xiond/.xiond/configにはapp.toml, client.toml, config.toml, genesis.json, node_key.json, priv_validator_key.jsonが存在

Specify the Seed node to discover peers

set -euxo pipefail #これは不要かも
SEED_NODE="7900d5f177228def24170f9631db76afab20278e@seed.xion-testnet-1.burnt.com:11656"
sed -i.bak -E "s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"$SEED_NODE\"|" /home/xiond/.xiond/config/config.toml

Download the Address Book JSON file
/home/xiond/.xiond/config/にaddbook.jsonが追加される

set -euxo pipefail #これは不要かも
ADDRBOOK_JSON="https://files.xion-testnet-1.burnt.com/addrbook.json"
curl ${ADDRBOOK_JSON} -o /home/xiond/.xiond/config/addrbook.json -s

Dawnload a Nod Snapshot(これは終わるまでしばらく放置:1時間かからないぐらい?)

set -euxo pipefail #これは不要かも
BASEDIR="/home/xiond/.xiond"
TAR_LZ4="https://files.xion-testnet-1.burnt.com/xion-testnet-1-latest.tar.lz4"

curl -o - -L ${TAR_LZ4} | lz4 -c -d - | tar -x -v -C ${BASEDIR}

node起動

xiond start --x-crisis-skip-assert-invariants --home /home/xiond/.xiond

Validator登録

最新ブロックまでsyncできていることが前提
xiond statusコマンドlatest_block_heightとブロックエクスプローラーhttps://explorer.burnt.com/xion-testnet-1/の最新ブロックを確認すればOK

新しくwalletを作成(既存walletのインストールはdocs参照)
※my-wallet-nameは任意の文字列

xiond keys add my-wallet-name --keyring-backend test --home /home/xiond/.xiond

XIONトークンを入手

docsによると上記から入手となっているが私は下記から入手した。

validator登録
copypaste.comは任意の文字列
my-wallet-nameは自分のwalletの名前

xiond tx staking create-validator --amount "50000uxion" --pubkey $(xiond tendermint show-validator --home /home/xiond/.xiond/) --moniker "copypaste.com" --identity "my-keybase-id" --chain-id "xion-testnet-1" --commission-rate "0.05" --commission-max-rate "0.25" --commission-max-change-rate "0.1" --min-self-delegation "1" --gas "auto" --gas-prices "0.025uxion" --gas-adjustment 1.2 --from my-wallet-name --keyring-backend test --home /home/xiond/.xiond

validatorがactiveかどうかの確認
(何か返ってこればOKなのですが、私のvalidatorはアクティブにはなっていないので何も返ってきませんでした。)

xiond query tendermint-validator-set | grep "$(xiond tendermint show-validator --home /home/xiond/.xiond/)"

ただ、下記サイトでinactiveのvalidatorを確認することで発見できたので、validator登録自体は成功していると思われます。

また何かあれば追記します。

追加delegate
(validator-addressは自身のvalidatorアドレス)

xiond tx staking delegate validator-address 100000uxion --chain-id "xion-testnet-1" --gas "auto" --gas-prices "0.025uxion" --gas-adjustment 1.2 --from my-wallet-name --keyring-backend test --home /home/xiond/.xiond


この記事が気に入ったらサポートをしてみませんか?