Nibiru public testnet phase 2 节点教程
Cosmos生态近期火热。Nibiru是一个基于Cosmos Sdk的DEFI Hub,为衍生品和现货交易提供动力。安全、无需许可、完全上链。其种子轮融资了750万美元,Tribe captital, Kraken, Republic Crypto,Guardian 创始人Strafach guardian参投,估值1亿美元。
近期其开放了公开测试网,目前为测试网的第二阶段,不是激励性测试网,目前开发者和节点运营者和用户可以参与。建议体验为主,为接下来的激励测试网做准备。
本教程仅供参考,请以官方教程为准。
官方教程
https://docs.nibiru.fi/run-nodes/testnet/#
最低要求
4CPU
8GB RAM
100GB of disk space (SSD)
安装基础环境
本教程使用的系统为Ubuntu20.04,其他系统的部分命令请自行调整。建议用国外的VPS。
安装go
sudo rm -rf /usr/local/go;
curl https://dl.google.com/go/go1.19.2.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 jq git -y;
下载源代码并编译
cd
git clone https://github.com/NibiruChain/nibiru
cd nibiru
git checkout v0.16.3
make install
安装完成后可以运行 nibid version
检查是否安装成功。
显示应为v0.16.3
运行节点
初始化节点
moniker=你的节点名
nibid init $moniker --chain-id=nibiru-testnet-2
nibid config chain-id nibiru-testnet-2
下载genesis文件
curl -s https://rpc.testnet-2.nibiru.fi/genesis | jq -r .result.genesis > $HOME/.nibid/config/genesis.json
设置peer和seed
PEERS="5eecfdf089428a5a8e52d05d18aae1ad8503d14c@65.108.141.109:19656,5c30c7e8240f2c4108822020ae95d7b5da727e54@65.108.75.107:19656"
seeds=""
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.nibid/config/config.toml
sed -i.bak -e "s/^seeds *=.*/seeds = \"$seeds\"/" ~/.nibid/config/config.toml
Pruning设置
pruning="custom" && \
pruning_keep_recent="100" && \
pruning_keep_every="0" && \
pruning_interval="10" && \
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.nibid/config/app.toml && \
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.nibid/config/app.toml && \
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.nibid/config/app.toml && \
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.nibid/config/app.toml
state-sync 快速同步
SNAP_RPC="https://rpc.nibiru-testnet-2.silentvalidator.com:443" \
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 500)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash); \
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH
#if there are no errors, then continue
peers="5eecfdf089428a5a8e52d05d18aae1ad8503d14c@65.108.141.109:19656,5c30c7e8240f2c4108822020ae95d7b5da727e54@65.108.75.107:19656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.nibid/config/config.toml
sed -i -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.nibid/config/config.toml
启动节点
sudo tee <<EOF >/dev/null /etc/systemd/system/nibid.service
[Unit]
Description=nibid daemon
After=network-online.target
[Service]
User=$USER
ExecStart=$(which nibid) start
Restart=on-failure
RestartSec=3
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && \
sudo systemctl enable nibid && \
sudo systemctl start nibid
查看日志
sudo journalctl -u nibid -f
检查同步状态
curl -s localhost:26657/status | jq .result | jq .sync_info
其中显示 "catching_up":
显示为false
即已经同步上。同步需要一段时间,可能一到两小时,如果一直没有开始同步一般是因为peer不够,可以考虑添加Peer或者使用别人的addrbook。
紧急升级
由于v0.16.2版本有Bug,如果你的nibid版本仍为v0.16.2,很有可能已经卡住。需要升级到新版本v0.16.3,升级办法如下
cd $HOME
cd nibiru
git pull
git checkout v0.16.3
make install
sudo systemctl restart nibid
更换addrbook
wget -O $HOME/.nibid/config/addrbook.json "https://raw.githubusercontent.com/BccNodes/Snapshot-Statesync/main/Nibiru%20Testnet-2/addrbook.json"
创建验证人
创建钱包
nibid keys add 钱包名
注意请保存助记词。若不保存,之后将无法恢复。
领取测试币
进入nibiru discord https://discord.gg/nsV3a5CdC9
在 #faucet 频道发送
$request 你的nibiru地址
之后可以用
nibid query bank balances 你的nibiru地址
查询测试币余额。
创建验证人
获取足够测试币,且节点完成同步后,可以创建验证人。只有质押量在前100的验证人才是活跃验证人。
daemon=nibid
denom=unibi
moniker=验证人名
chainid=nibiru-testnet-2
$daemon tx staking 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 \
--min-self-delegation=1000000 \
--fees 5000unibi \
--from=钱包名
之后可以去区块浏览器查看你的验证人是否创建成功。
更多信息
官网:
官方推特:
https://twitter.com/NibiruChain
官方文档: https://docs.nibiru.fi
欢迎关注 https://silentvalidator.com
其他常用命令
服务管理
检查日志
sudo journalctl -u nibid -f
运行/重启节点
sudo systemctl restart nibid
停止节点
sudo systemctl stop nibid
节点信息
同步信息
nibid status 2>&1 | jq .SyncInfo
验证人信息
nibid status 2>&1 | jq .ValidatorInfo
节点信息
nibid status 2>&1 | jq .NodeInfo
获取node id
nibid tendermint show-node-id
钱包操作
显示所有钱包
nibid keys list
恢复钱包
nibid keys add 你的钱包名 --recover
删除钱包
nibid keys delete 你的钱包名
查询余额
nibid query bank balances 接收者nibiru地址
发送代币
nibid tx bank send 你的钱包名 接收者nibiru地址 数量unibi --from 你的钱包名 -y --chain-id=nibiru-testnet-2 --fees 5000unibi
注意:1nibi=1000000unibi
投票
nibid tx gov vote 提案编号 投票选项 --from 你的钱包名 -y --chain-id=nibiru-testnet-2 --fees 5000unibi
投票选项包括yes/no/no_with_veto/abstain。大部分情况我们投yes就好。
质押,提取奖励
质押
nibid tx staking delegate 你要质押的验证人地址 数量unibi --from 你的钱包名 -y --chain-id=nibiru-testnet-2 --fees 5000unibi
解除质押
nibid tx staking unbond 你要解除质押的验证人地址 数量unibi --from 你的钱包名 -y --chain-id=nibiru-testnet-2 --fees 5000unibi
提取质押奖励和验证人佣金
nibid tx distribution withdraw-rewards 你的验证人地址 --commission --from 你的钱包名 -y --chain-id=nibiru-testnet-2 --fees 5000unibi
提取所有奖励
nibid tx distribution withdraw-all-rewards --from=你的钱包名 -y --chain-id=nibiru-testnet-2 --fees 5000unibi
验证人管理
修改验证人信息
nibid tx staking edit-validator \
--new-moniker=节点名 \
--identity=你的keybase id \
--website="你的网站" \
--details="你的验证人描述" \
--from=你的钱包名 \
--fees 5000unibi \
--chain-id=nibiru-testnet-2
假如你想在区块浏览器显示你的验证人logo。需要注册一个keybase账号,上传logo。在验证人信息中设置--identity=你的keybase id
,区块链浏览器中就会显示你的keybase logo作为验证人logo。
Unjail
nibid tx slashing unjail --from <你的钱包名> -y --chain-id=nibiru-testnet-2 --fees 5000unibi