MENU

CELESTIA NODEの建て方

ハードウェア要件
メモリ: 8GB
CPU: Quad-Core
Disk: 250GBSSD
Bandwidth:1Gps for Download/100 Mbps for Uplaod

Ubuntu Linux 20.04 (LTS) x64を使用します。

おすすめサーバー
Linode 100ドル分の無料クーポン付き: https://linode.com
contabo: https://conatabo.com

このMamaki TestnetはCelstiaのインセンティブ付テストネットではありません

上から順番にコピペして実行します

#ubuntuはログインしたらまずこれを実行してください。
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential git make ncdu -y
#Celstia-appとCelestia NodeはGolangを使用しています。Golangをインストールする
cd $HOME
ver="1.18.3"
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
#Go が正しくインストールされているかどうかを確認するには、次のコマンドを実行します。
go version

Celestia Appをインストールします

#以下の手順では、後でノードを実行するために使用されるフォルダーcelestia-appd 内の名前のバイナリファイルを作成します。

cd $HOME
rm -rf celestia-app
git clone https://github.com/celestiaorg/celestia-app.git
cd celestia-app

#ここでcelestia-appd versionをv.0.6.0にしてないと後でエラーがでます。テストネットのサポートバージョンは0.6.0のため
git switch -c v.0.6.0
make install

少し待ちます

正常にコンパイルされたかどうかを確認する
#以下のコマンドを打つと役立つコマンド一覧が表示されます。
celestia-appd --help

#正常にインストールされたか以下のコマンドで確認します。
celestia-appd version
#次のファイルを実行してクローンを作成します。
git clone https://github.com/celestiaorg/networks

P2Pネットワークの設定をする

cd $HOME
rm -rf networks
git clone https://github.com/celestiaorg/networks.git
#以下を実行し、 NODE_NAMEとWALLET_NAMEを置き換えて変数を設定します。
#NODE_NAMEとWALLET_NAMEは自分の好きな名前に変更してください

CELESTIA_NODENAME= "NODE_NAME" 
CELESTIA_WALLET= "WALLET_NAME" 
CELESTIA_CHAIN="mamaki"
#上記で作成した変数を保存します。

echo 'export CELESTIA_CHAIN='$CELESTIA_CHAIN >> $HOME/.bash_profile 
echo 'export CELESTIA_NODENAME='${CELESTIA_NODENAME} >> $HOME/.bash_profile 
echo 'export CELESTIA_WALLET='${CELESTIA_WALLET} >> $HOME/.bash_profile 
source $HOME/.bash_profile

ネットワークを初期化するには以下を実行します。

celestia-appd init $CELESTIA_NODENAME --chain-id $CELESTIA_CHAIN

genesis.json ファイルをコピーします

cp $HOME/networks/mamaki/genesis.json $HOME/.celestia-app/config/

Validator Nodeの設定をしますFull Nodeの設定の場合はスキップします

sed -i 's/mode = \"full\"/mode = \"validator\"/g' $HOME/.celestia-app/config/config.toml

seedsとpeersの設定をします。

BOOTSTRAP_PEERS=$(curl -sL https://raw.githubusercontent.com/celestiaorg/networks/master/mamaki/bootstrap-peers.txt | tr -d '\n')

正常に完了してるかどうかの確認

echo $BOOTSTRAP_PEERS

こちらを設定します。

sed -i.bak -e "s/^bootstrap-peers *=.*/bootstrap-peers = \"$BOOTSTRAP_PEERS\"/" $HOME/.celestia-app/config/config.toml

次にこちらを設定します

sed -i 's/timeout-commit = ".*/timeout-commit = "25s"/g' $HOME/.celestia-app/config/config.toml
sed -i 's/peer-gossip-sleep-duration *=.*/peer-gossip-sleep-duration = "2ms"/g' $HOME/.celestia-app/config/config.toml

P2P構成オプションを設定します

max_num_inbound_peers=40 
max_num_outbound_peers=10 
max_connections=50

次にこちらを実行します

sed -i -e "s/^use-legacy *=.*/use-legacy = false/;\
s/^max-num-inbound-peers *=.*/max-num-inbound-peers = $max_num_inbound_peers/;\
s/^max-num-outbound-peers *=.*/max-num-outbound-peers = $max_num_outbound_peers/;\
s/^max-connections *=.*/max-connections = $max_connections/" $HOME/.celestia-app/config/config.toml

pruningとsnapshotの設定

#pruningの設定
pruning_keep_recent="100" 
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/;\
s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/;\
s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.celestia-app/config/app.toml

snapshotを設定します

sed -i 's/snapshot-interval *=.*/snapshot-interval = 0/' $HOME/.celestia-app/config/app.toml

リセット
これにより、すべてのデータフォルダが削除されるため、最初からやり直すことができます

celestia-appd tendermint unsafe-reset-all — home $HOME/.celestia-app

クライアントの構成

celestia-appd config chain-id $CELESTIA_CHAIN
celestia-appd config keyring-backend test

サービスの作成と実行

tee $HOME/celestia-appd.service > /dev/null <<EOF
[Unit]
 Description=celestia-appd Cosmos daemon
 After=network-online.target
[Service]
 User=$USER
 ExecStart=$(which celestia-appd) start
 Restart=on-failure
 RestartSec=3
 LimitNOFILE=65535
[Install]
 WantedBy=multi-user.target
EOF
sudo mv $HOME/celestia-appd.service /etc/systemd/system/
sudo systemctl enable celestia-appd
sudo systemctl daemon-reload
sudo systemctl restart celestia-appd && journalctl -u celestia-appd -f -o cat

戻るにはCTRL+Cを押します

新しいキーを作成する(または古いキーを復元する)Fullnodeの場合はスキップします

スクショ取り忘れましたーー。。。が下記を参考におこなってください。

# 新しくキーを作成する
celestia-appd keys add $CELESTIA_WALLET


# 出力されたサンプル
# - address: celestiaxxxxxxxxxxxxxxxxxxxxx
#  name: MY_WALLET
#  pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}'
#  type: local
#
# **Important** write this mnemonic phrase in a safe place.
# It is the only way to recover your account if you ever forget your password.
#
# twelve dad crucial eye eye spoon curtain hurt ring buddy mosquito secret dwarf sell image season curve member skin begin alarm unfair frequent
# 

#出力部分をメモ帳に保存してください(重要)


# addr と valoper を vars に保存
CELESTIA_ADDR=$(celestia-appd keys show $CELESTIA_WALLET -a)
echo $CELESTIA_ADDR
echo 'export CELESTIA_ADDR='${CELESTIA_ADDR} >> $HOME/.bash_profile

CELESTIA_VALOPER=$(celestia-appd keys show $CELESTIA_WALLET --bech val -a)
echo $CELESTIA_VALOPER
echo 'export CELESTIA_VALOPER='${CELESTIA_VALOPER} >> $HOME/.bash_profile
source $HOME/.bash_profile




Validatorを作成します(Validator nodeの場合のみ)。Fullnodeの場合はスキップします

#Discordのチャンネルの #mamaki-faucetでリクエストします
#wallet addressの取得方法 celestia-appd keys list
$request celestiaxxxXXXXXXXXXXXXXXXXXXXXXXX

ネットワークが完全に同期しているか確認します

#ネットワークの同期確認
curl -s localhost:26657/status | grep block_height

下記のmy blockがlast blockの追いつくまで待ちましょう
#"latest_block_height": "47897", my block
#"earliest_block_height": "1",
#"max_peer_block_height": "283665", last block

validatorの作成

# balanceの確認
celestia-appd q bank balances $CELESTIA_ADDR

# 出力サンプル
# balances:
# - amount: "10000000"
#   denom: utia
# pagination:
#   next_key: null
#   total: "0"

# varsの確認
echo $CELESTIA_NODENAME $CELESTIA_CHAIN $CELESTIA_WALLET

# validatorの作成

celestia-appd tx staking create-validator \
 --amount=9000000utia \
 --pubkey=$(celestia-appd tendermint show-validator) \
 --moniker=$CELESTIA_NODENAME \
 --chain-id=$CELESTIA_CHAIN \
 --commission-rate=0.1 \
 --commission-max-rate=0.2 \
 --commission-max-change-rate=0.01 \
 --min-self-delegation="1" \
 --from=$CELESTIA_WALLET


# validatorの確認
celestia-appd q staking validator $CELESTIA_VALOPER



# こちらをダウンロードして保存します 
#"$HOME/.celestia-app/config/priv_validator_key.json" 



# outputのアクティブ設定
celestia-appd q staking validators --limit=3000 -oj \
 | jq -r '.validators[] | select(.status=="BOND_STATUS_BONDED") | [(.tokens|tonumber / pow(10;6)), .description.moniker] | @csv' \
 | column -t -s"," | tr -d '"'| sort -k1 -n -r | nl

# 必要があればアバターを作成します
celestia-appd tx staking edit-validator --identity "YOUR_KEYBASE_ID" --from $CELESTIA_WALLET

*nodeを停止して全てのデータを削除するには?

(validator) rm -rf .celestia-app
(light) rm -rf .celestia-light
(bridge) rm -rf .celestia-bridge
(full) rm -rf .celestia-full
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次
閉じる