Nibiru public testnet phase 2 节点教程

Cosmos生态近期火热。Nibiru是一个基于Cosmos Sdk的DEFI Hub,为衍生品和现货交易提供动力。安全、无需许可、完全上链。其种子轮融资了750万美元,Tribe captital, Kraken, Republic Crypto,Guardian 创始人Strafach guardian参投,估值1亿美元。

近期其开放了公开测试网,目前为测试网的第二阶段,不是激励性测试网,目前开发者和节点运营者和用户可以参与。建议体验为主,为接下来的激励测试网做准备

Nibiru 第二阶段测试网
Nibiru 第二阶段测试网

本教程仅供参考,请以官方教程为准。

官方教程

最低要求

  • 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://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
Subscribe to Silent ⚛| validator
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.