Silent ⚛| validator

發布於 2024-05-14到 Mirror 閱讀

Initia节点激励测试网中文教程

Initia是Binance Labs孵化的Cosmos生态模块化L1, 种子轮融资了750万美元。

近期,其开启了节点激励测试网。无门槛,完成任务有积分。

官方博客:

https://medium.com/@initiafdn/the-validator-initiation-a-guide-to-initias-incentivized-testnet-for-validators-b6ddd2eff632

详细规则

https://initia-xyz.notion.site/The-Initiation-Validator-Tasks-6d88ab0034644473907435662f9285b3

每周验证者会有不同的任务,现在是Pre-phase,任务是创建验证者发布initia测试网启动和你对initia的愿望的推文

第一周任务

官方教程

https://docs.initia.xyz/run-initia-node/running-initia-node

最低配置

  • 4核 CPU

  • 16 GB RAM

  • 1 TB SSD Storage

安装基础环境

安装go

sudo rm -rf /usr/local/go;
curl https://dl.google.com/go/go1.22.1.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf - ;
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.profile

安装完成后运行以下命令查看版本

go version

安装其他必要的环境

sudo apt-get update -y && sudo apt-get upgrade -y;
sudo apt-get install curl build-essential make gcc jq git -y;

下载源代码并编译

cd
git clone https://github.com/initia-labs/initia.git
cd initia
git checkout  v0.2.15
make install

安装完成后可以运行 initiad version检查是否安装成功。

显示应为v0.2.14

运行节点

初始化节点

moniker=<你的节点名>
initiad init $moniker --chain-id=initiation-1
initiad config set client chain-id initiation-1

下载Genesis 文件

curl -s https://initia.s3.ap-southeast-1.amazonaws.com/initiation-1/genesis.json >  ~/.initia/config/genesis.json

设置peer和seed

PEERS="[email protected]:26656,[email protected]:25756,[email protected]:29656,[email protected]:26656,[email protected]:17956,[email protected]:26656,[email protected]:27656,[email protected]:26606,[email protected]:26656,[email protected]:26656,[email protected]:27656,[email protected]:26656,[email protected]:26656,[email protected]:27656,[email protected]:26656,[email protected]:27656,[email protected]:26656,[email protected]:26656,[email protected]:14656,[email protected]:26656,[email protected]:14656,[email protected]:17956,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:36656,[email protected]:15656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:27656,[email protected]:27656,[email protected]:17956,[email protected]:26656,[email protected]:27656,[email protected]:26656,[email protected]:26656,[email protected]:15656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:35656,[email protected]:26656,[email protected]:26656,[email protected]:14656,[email protected]:10656,[email protected]:26656,[email protected]:26656,[email protected]:28656,[email protected]:36656,[email protected]:15656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:29656,[email protected]:26656,[email protected]:47656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:27656,[email protected]:14656,[email protected]:50156,[email protected]:26656,[email protected]:26656,[email protected]:53456,[email protected]:53456,[email protected]:26656,[email protected]:26656,[email protected]:27656,[email protected]:15656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:50156,[email protected]:26656,[email protected]:14656,[email protected]:11656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:15656,[email protected]:26656,[email protected]:26656,[email protected]:26656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.initia/config/config.toml
sed -i.bak -e "s/^seeds *=.*/seeds = \"$seeds\"/" ~/.initia/config/config.toml

自定义端口(可选)

可以修改端口(避免和其他cosmos节点冲突)。

portrange=27
sed -i "s/:6060/:${portrange}060/g" ~/.initia/config/config.toml 
sed -i "s/:26657/:${portrange}657/g" ~/.initia/config/config.toml 
sed -i "s/:26656/:${portrange}656/g" ~/.initia/config/config.toml 
sed -i "s/:26660/:${portrange}660/g" ~/.initia/config/config.toml 
sed -i "s/:9090/:${portrange}090/g" ~/.initia/config/app.toml 
sed -i "s/:9091/:${portrange}091/g" ~/.initia/config/app.toml 
sed -i "s/:1317/:${portrange}317/g" ~/.initia/config/app.toml 
sed -i "s/:8545/:${portrange}545/g" ~/.initia/config/app.toml 
sed -i "s/:8546/:${portrange}546/g" ~/.initia/config/app.toml 

这里我们把rpc端口设置成了27657,grpc端口设置成了27090(默认为9090)这2个端口后面有用

Pruning设置

pruning="custom" && \
pruning_keep_recent="100" && \
pruning_keep_every="0" && \
pruning_interval="10" && \
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.initia/config/app.toml && \
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.initia/config/app.toml && \
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.initia/config/app.toml && \
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.initia/config/app.toml

下载快照

最新快照见

https://polkachu.com/testnets/initia/snapshots

cd
sudo apt install lz4 -y
wget -O initia_187918.tar.lz4 https://snapshots.polkachu.com/testnet-snapshots/initia/initia_187918.tar.lz4 --inet4-only
initiad tendermint unsafe-reset-all --home $HOME/.initia --keep-addr-book

lz4 -c -d initia_187918.tar.lz4  | tar -x -C $HOME/.initia

启动节点

sudo tee <<EOF >/dev/null /etc/systemd/system/initia.service
[Unit]
Description=initia daemon
After=network-online.target
[Service]
User=$USER
ExecStart=$(which initiad) start
Restart=on-failure
RestartSec=3
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && \
sudo systemctl enable initia && \
sudo systemctl restart initia

查看日志

sudo journalctl -u initia -f

检查同步状态

curl -s localhost:27657/status | jq .result | jq .sync_info

这里的27657是根据你之前设置的rpc端口27657。

同步需要一段时间,其中显示 "catching_up":显示为false

并且latest_block_height 和区块浏览器高度差不多,即同步上了。

如果一直没有开始同步一般是因为peer不够,可以考虑添加Peer或者使用别人的addrbook。

创建验证人

创建钱包

initiad keys add <钱包名>

注意请保存助记词。若不保存,之后将无法恢复。

查看钱包

initiad keys list 

领取测试币

https://faucet.testnet.initia.xyz/

节点同步之后可以用

initiad query bank balances  你的initia地址

查询测试币余额。

修改client默认的rpc

这里的27657是你之前设置的rpc端口27657(如果没有修改过端口,默认是26657)

initiad config set client node tcp://127.0.0.1:27657

创建验证人

获取足够测试币,且节点完成同步后,可以创建验证人。

daemon=initiad
denom=uinit
moniker=验证人名
chainid=initiation-1
$daemon tx mstaking create-validator \
    --amount=1000000$denom \
    --pubkey=$($daemon tendermint show-validator) \
    --moniker=$moniker \
    --chain-id=$chainid \
    --commission-rate=0.05 \
    --commission-max-rate=0.2 \
    --commission-max-change-rate=0.1 \
    --from=钱包名 --gas 500000 --fees 300000$denom

之后可以去区块浏览器 https://scan.testnet.initia.xyz/initiation-1 查看验证者是否创建成功。如果能查到,你就完成了创建验证者任务

(目前只有质押前30的节点才是活跃节点,活跃与否应该不影响任务)

创建完验证者建议备份~/.initia/config/priv_validator_key.json

创建成功后需要填表,注意地址是initvaloper开头那个,如何获取下面的内容有说。

此表格将于 UTC 时间 5 月 19 日 14:59 截止

https://forms.gle/LtxqGcJPNYXwwkxP9

更新:新表格

正确填写才有分数 Friday, May 24th 00:00 UTC 截止

https://forms.gle/HqLFePaka2NLmzY98

其他验证者相关的命令

获取你的验证者地址

initiad debug addr 你的钱包地址

返回的Bech32 Val地址就是验证者地址

质押

initiad tx mstaking delegate 你要质押的验证人地址 数量uinit --from 你的钱包名 -y --fees 200000uinit --gas 500000

Unjail (如果被jail了才需要)

initiad tx slashing unjail  --from 你的钱包名 --gas 500000 --fees 200000uinit 

给验证者在浏览器添加图标

我们需要注册

https://keybase.io/

得到一个16位id,并设置你的keybase profile头像。这个头像将在区块浏览器上显示

接下来运行命令

 initiad tx mstaking edit-validator --from test --identity 你的keybase16位id --from 你的钱包名  --gas 500000 --fees 200000uinit 

一段时间后,头像就会在浏览器显示,例如我的

运行预言机(这是第二周的任务,暂时不用做)

cd
git clone https://github.com/skip-mev/slinky.git
cd slinky
# checkout proper version
git checkout v0.4.3
make build

创建预言机服务,注意下面的27090要和你之前设置的gprc端口一致(如果没有修改端口,默认是9090)

sudo tee /etc/systemd/system/slinky.service > /dev/null <<EOF
[Unit]
Description=slinky
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/slinky 
ExecStart=$HOME/slinky/build/slinky --oracle-config-path ./config/core/oracle.json --market-map-endpoint 0.0.0.0:27090
StandardOutput=syslog
StandardError=syslog
Restart=always
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable  slinky.service
sudo systemctl start slinky.service

修改initia节点的config,以启动预言机

sed -i -e 's/^enabled = "false"/enabled = "true"/' \
       -e 's/^oracle_address = ""/oracle_address = "127.0.0.1:8080"/' \
       -e 's/^client_timeout = "2s"/client_timeout = "500ms"/' \
       -e 's/^metrics_enabled = "false"/metrics_enabled = "false"/' \           
       $HOME/.initia/config/app.toml 

重启initia节点

sudo systemctl restart initia
sleep 20

查看节点日志

sudo journalctl -u  initia -f

查看预言机日志

sudo journalctl -u  slinky -f

其他命令

停止节点

sudo systemctl stop initia

本教程还会持续更新,欢迎关注

https://twitter.com/EthExploring

Recommended Reading