June 26, 2022

Kujira Incentivized Testnet - NodeX

source : opensea.io/azuki

about the project

Kujira aims to be the next step in DEFI's evolution. In fact, they claim on their website that they are "DEFI adults". They started their project, initially relying on the Terra blockchain, until the recent collapse and halt of the chain.

At that time, they had 2 options: build another L1 chain or create their own. They decided to take the stairs and build their own chain with the Cosmos SDK! They decided to go this route to have full control over the design of the protocol to avoid any pitfalls and limitations when working with other blockchains.

The fiasco with the Terra network caused problems not only for investors, but also for many developers. We are excited that the Kujira team decided to create their own L1 chain and we are very proud to be part of the validator pool from the first testnet phase!

👉 Twitter project: https://twitter.com/TeamKujira

👉 Project website: https://kujira.app/

👉 Project Discord: https://discord.gg/VmQvAfxc


equipment requirements

Developer hardware requirements

  • 4 processors; the higher the clock speed, the better
  • 4 GB RAM
  • Disk 200 GB
  • Permanent Internet connection (traffic will be minimal during the testnet, 10 Mbps will be enough - at least 100 Mbps is expected for the mainnet)

Node installation

Option 1 ( Automatic installation )

For a fully automatic installation of the node, use our script, you will be prompted to enter the name of the validator node (IMPORTANT - no spaces or special characters).

curl https://raw.githubusercontent.com/agonyp/Scripts-ALPHA-Noderunning/main/kujira-install.sh | bash

After executing the script, proceed to create a wallet

Option 2 ( Manual installation )

Set the moniker (Instead of YOUR moniker, insert the desired Name without spaces and special characters):

NODENAME = YOUR moniker

Set and import other variables

echo "export $NODENAME=NODENAME" >> $HOME/.bash_profile
echo "export WALLET=wallet" >> $HOME/.bash_profile
echo "export CHAIN_ID=harpoon-4" >> $HOME/.bash_profile
source $HOME/.bash_profile

Updating packages

sudo apt update && sudo apt upgrade -y

Installing the required applications

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

Installing GO

ver="1.18.2"
cd $HOME
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" >> ~/.bash_profile
source $HOME/.bash_profile
go version

Скачиваем и компилируем ноду

git clone https://github.com/Team-Kujira/core $HOME/kujira-core 
cd $HOME/kujira-core 
git checkout v0.4.0 
make install
kujirad version

Инициализируем ноду

kujirad init "${NODENAME}" --chain-id ${CHAIN_ID}

Качаем файл генезиса и адрессбук

wget https://raw.githubusercontent.com/Team-Kujira/networks/master/testnet/harpoon-4.json -O $HOME/.kujira/config/genesis.json
wget https://raw.githubusercontent.com/Team-Kujira/networks/master/testnet/addrbook.json -O $HOME/.kujira/config/addrbook.json

Настраиваем прунинг

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

Создаем сервисный файл и запускаем сервис

tee $HOME/kujirad.service > /dev/null <<EOF
[Unit]
Description=Kujira Daemon
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$(which kujirad) start --log_level error 
Restart=on-abort
[Install]
WantedBy=multi-user.target
[Service]
LimitNOFILE=65535 
EOF

Регистрируем и запускаем сервис

sudo mv $HOME/kujirad.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable kujirad
sudo systemctl restart kujirad

Wallet creation

Importing system variables

source $HOME/.bash_profile

Create a wallet

kujirad keys add  $ WALLET

After creating, be sure to save your wallet data, mnemonics and all other lines!

Wallet recovery by seed phrase (optional)

kujirad keys add $WALLET --recover

Saving wallet information in system variables

WALLET_ADDRESS=$(kujirad keys show $WALLET -a)
echo 'export WALLET_ADDRESS='${WALLET_ADDRESS} >> $HOME/.bash_profile

Importing variables into the system

source $HOME/.bash_profile

We ask for coins

curl -X POST https://faucet.kujira.app/${WALLET_ADDRESS}

Balance check

kujirad query bank balances $WALLET_ADDRESS

Validator and Delegation

Create a validator with the command

export  PUBKEY = $ ( kujirad tendermint show-validator )
kujirad tx staking create-validator --moniker="${NODENAME}" \
 --amount=1000000ukuji \
        --gas-prices=10000000ukuji \
        --pubkey=$PUBKEY \
         --from=$WALLET \
        --yes \
        --node=tcp://localhost:26657 \
        --chain-id=${CHAIN_ID} \
        --commission-max-change-rate=0.01 \
        --commission-max-rate=0.20 \
        --commission-rate=0.10 \
        --min-self-delegation=1

You can delegate tokens with a command (insert the size of the tokens you want, taking into account the gas in the network)

kujirad tx staking delegate $VALOPER_ADDRESS 10000000ukuji --from=$WALLET --chain-id=harpoon-3 --fees 1000ukuji

Checking a node in the list of validators

We check ourselves in the list of active or inactive through the explorer

https://kujira.explorers.guru/validators

Checking the validator through the terminal

kujirad query staking validators | grep details

Update

To update the node, run the following commands in order: (update on 06/14/22)

git clone https://github.com/Team-Kujira/core $HOME/kujira-core 
cd $HOME/kujira-core 
git checkout v0.4.0 
make install
rm $HOME/.kujira/config/genesis.json
wget https://raw.githubusercontent.com/Team-Kujira/networks/master/testnet/harpoon-4.json -O $HOME /.kujira/config/genesis.json
sudo systemctl restart kujirad
export CHAIN_ID=harpoon-4 
source $HOME/.bash_profile

Useful Commands

Check logs

kujira_log
journalctl -f -u kujirad -o cat

Synchronization check command

kujira_sync_stat
kujirad status 2 > & 1  | jq .SyncInfo

Stop service

sudo systemctl stop kujirad

start service

sudo systemctl start kujirad

Restart the service

sudo systemctl restart kujirad

Delete node

sudo systemctl stop kujirad
 rm -rf $ HOME /.kujira
 sudo systemctl disable kujirad
 sudo  rm /etc/systemd/system/kujirad.service

Credit by @nekiy_iz ❤️ @alphateam