💾Node Installation

Nibiru Mainnet guide

  • Minimum hardware requirements:

Node TypeCPURAMStorage

Mainnet

8

16GB

250GB

1) Auto_install script

wget -O nibidm https://raw.githubusercontent.com/111STAVR111/props/main/Nibiru/nibidm && chmod +x nibidm && ./nibidm

2) Manual installation

Preparing the server

sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y

GO 1.21.6

ver="1.21.6"
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 version

Build 02.07.24

cd $HOME && mkdir -p go/bin/
git clone https://github.com/NibiruChain/nibiru/
cd $HOME/nibiru/
git fetch --all
git checkout v1.5.0
make install

nibid version --long | grep -e commit -e version

  • version: v1.5.0

  • commit: a5279d1c3e2a907d21f7840d86c0dd49c747029f

Initiation

nibid init STAVR_guide --chain-id=cataclysm-1
nibid config chain-id cataclysm-1

Create/recover wallet

nibid keys add <walletname>
           OR
nibid keys add <walletname> --recover

Download Genesis

wget -L -O $HOME/.nibid/config/genesis.json "https://raw.githubusercontent.com/111STAVR111/props/main/Nibiru/genesis.json"

sha256sum $HOME/.nibid/config/genesis.json

  • 66c3bf943254a7d698849d201e0b7ae1ba7a94118b73f19916727742e26efd99

Set up the minimum gas price and Peers/Seeds/Filter peers/MaxPeers

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025unibi\"/;" ~/.nibid/config/app.toml
sed -i -e "s/^filter_peers *=.*/filter_peers = \"true\"/" $HOME/.nibid/config/config.toml
external_address=$(wget -qO- eth0.me) 
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.nibid/config/config.toml
peers=""
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.nibid/config/config.toml
seeds=""
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.nibid/config/config.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.nibid/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 50/g' $HOME/.nibid/config/config.toml

Pruning (optional)

pruning="custom"
pruning_keep_recent="1000"
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

Indexer (optional)

indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.nibid/config/config.toml

Download addrbook

wget -O $HOME/.nibid/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Nibiru/addrbook.json"

Create a service file

sudo tee /etc/systemd/system/nibid.service > /dev/null <<EOF
[Unit]
Description=nibiru
After=network-online.target

[Service]
User=$USER
ExecStart=$(which nibid) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

StateSync Nibiru Mainnet

SNAP_RPC=https://nibiru.rpc.m.stavr.tech:443
peers="c416d67c3dbb2d30b803611469e6d2634099292d@nibiru.seed.stavr.tech:11036"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.nibid/config/config.toml
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

sed -i.bak -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\"| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.nibid/config/config.toml
nibid tendermint unsafe-reset-all --home $HOME/.nibid
wget -O $HOME/.nibid/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Nibiru/addrbook.json"
systemctl restart nibid && journalctl -fu nibid -o cat

SnapShot Mainnet updated every 5 hours

cd $HOME
snap install lz4
sudo systemctl stop nibid
cp $HOME/.nibid/data/priv_validator_state.json $HOME/.nibid/priv_validator_state.json.backup
rm -rf $HOME/.nibid/data
curl -o - -L https://nibiru.snapshot.stavr.tech/nibid-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.nibid --strip-components 2
mv $HOME/.nibid/priv_validator_state.json.backup $HOME/.nibid/data/priv_validator_state.json
wget -O $HOME/.nibid/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Nibiru/addrbook.json"
sudo systemctl restart nibid && journalctl -fu nibid -o cat

Start

sudo systemctl daemon-reload
sudo systemctl enable nibid 
sudo systemctl restart nibid && sudo journalctl -fu nibid -o cat

Create validator

nibid tx staking create-validator \
--amount=1000000unibi \
--pubkey=$(nibid tendermint show-validator) \
--moniker=STAVR_guide \
--chain-id=cataclysm-1 \
--commission-rate="0.05" \
--commission-max-rate="0.2" \
--commission-max-change-rate="0.1" \
--min-self-delegation="1" \
--from=<walletname> \
--fees 5000unibi \
--identity="" \
--details="" \
--website="" -y

Monitoring

You can set up your node status alarm here - Monitoring

Security

You can create secure management of your wallet and your node by following this links.

TMKMS Wallet Security

Delete node

sudo systemctl stop nibid
sudo systemctl disable nibid
rm /etc/systemd/system/nibid.service
sudo systemctl daemon-reload
cd $HOME
rm -rf .nibid
rm -rf nibiru
rm -rf $(which nibid)

Last updated