No. of CPUs: 4
Memory: 8GB
Disk: 150GB
OS: Ubuntu 22.04 LTS
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
version="1.19.3" \
&& cd $HOME \
&& wget "https://golang.org/dl/go$version.linux-amd64.tar.gz" \
&& sudo rm -rf /usr/local/go \
&& sudo tar -C /usr/local -xzf "go$version.linux-amd64.tar.gz" \
&& rm "go$version.linux-amd64.tar.gz" \
&& echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile \
&& source $HOME/.bash_profile
cd $HOME
git clone https://github.com/JackalLabs/canine-chain
cd canine-chain
git checkout v23.01-beta
make install
UPDATE 28.01.23
cd $HOME/canine-chain
git fetch --all
git checkout v23.01-beta
make install
canined version
#23.01-beta
sudo systemctl restart canined && sudo journalctl -u canined -f -o cat
canined init <MONIKER> --chain-id lupulella-2
canined config chain-id lupulella-2
Replace <MONIKER> To your moniker
canined keys add <walletname>
canined keys add <walletname> --recover
when creating, do not forget to write down the seed phrase
cd $HOME
wget -O $HOME/.canine/config/genesis.json "https://raw.githubusercontent.com/JackalLabs/jackal-chain-assets/main/testnet/genesis.json"
Memory optimization. Removes unused data from the database. | ONE COMMAND
CONFIG=.canine
indexer="null" && \ snapshot_interval="100" && \ pruning="custom" && \ pruning_keep_recent="100" && \ pruning_keep_every="0" && \ pruning_interval="10" && \ min_retain_blocks="1" && \ inter_block_cache="false" && \ sed -i.bak -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/$CONFIG/config/config.toml && \ sed -i.bak -e "s/^snapshot-interval *=.*/snapshot-interval = \"$snapshot_interval\"/" $HOME/$CONFIG/config/app.toml && \ sed -i.bak -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/$CONFIG/config/app.toml && \ sed -i.bak -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/$CONFIG/config/app.toml && \ sed -i.bak -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/$CONFIG/config/app.toml && \ sed -i.bak -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/$CONFIG/config/app.toml && \ sed -i.bak -e "s/^min-retain-blocks *=.*/min-retain-blocks = \"$min_retain_blocks\"/" $HOME/$CONFIG/config/app.toml && \ sed -i.bak -e "s/^inter-block-cache *=.*/inter-block-cache = \"$inter_block_cache\"/" $HOME/$CONFIG/config/app.toml
Here is a script for you to update persistent_peers setting with these peers in config.toml.
PEERS=5eedbfbe64b942f4ab54db3842acf3bfab034c24@161.97.74.88:46656
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.canine/config/config.toml
wget -O $HOME/.canine/config/addrbook.json "https://raw.githubusercontent.com/obajay/nodes-Guides/main/Jakal/Jackal-Testnet/addrbook.json"
Create a service file
sudo tee /etc/systemd/system/canined.service > /dev/null <<EOF
[Unit]
Description=Jackal Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which canined) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable canined
sudo systemctl restart canined
sudo journalctl -u canined -f -o cat
After your node is synced , Create your mainnet validator
canined tx staking create-validator \
--amount=1000000ujkl \
--pubkey=$(canined tendermint show-validator) \
--moniker="<Moniker>" \
--identity="" \
--details="" \
--website="" \
--chain-id="lupulella-2" \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.1" \
--min-self-delegation="1" \
--fees 500ujkl \
--from=<wallet> -y
Replace <Moniker> With your moniker and replace <wallet> with your wallet name
Service management
Check logs
journalctl -fu canined -o cat
Start service
sudo systemctl start canined
Stop service
sudo systemctl stop canined
Restart service
Synchronization info
canined status 2>&1 | jq .SyncInfo
Validator info
canined status 2>&1 | jq .ValidatorInfo
Node info
canined status 2>&1 | jq .NodeInfo
Show node id
canined tendermint show-node-id
List of wallets
canined keys list
Recover wallet
canined keys add <wallet> --recover
Delete wallet
canined keys delete <wallet>
Get wallet balance
canined query bank balances <address>
Transfer funds
canined tx bank send <FROM ADDRESS> <TO_jackal_WALLET_ADDRESS> 10000000ujkl
canined tx gov vote 1 yes --from <wallet> --chain-id=lupulella-2
Delegate stake
canined tx staking delegate <jackal valoper> 10000000ujkl --from=<wallet> --chain-id=lupulella-2 --gas=auto
Redelegate stake from validator to another validator
canined tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 10000000ujkl --from=<wallet> --chain-id=lupulella-2 --gas=auto
Withdraw all rewards
canined tx distribution withdraw-all-rewards --from=<wallet> --chain-id=lupulella-2 --gas=auto
Withdraw rewards with commision
canined tx distribution withdraw-rewards <jackal valoper> --from=<wallet> --commission --chain-id=lupulella-2
Edit validator
canined tx staking edit-validator \
--moniker=<moniker> \
--identity=<your_keybase_id> \
--website="<your_website>" \
--details="<your_validator_description>" \
--chain-id=lupulella-2 \
--from=<wallet>
Unjail validator
canined tx slashing unjail \
--broadcast-mode=block \
--from=<wallet> \
--chain-id=lupulella-2 \
--gas=auto
This comlambs will completely remove node from server. Use at your own risk!
sudo systemctl stop canined
sudo systemctl disable canined
sudo rm /etc/systemd/system/canined* -rf
sudo rm $(which canined) -rf
sudo rm $HOME/.canined* -rf
sudo rm $HOME/canine-chain -rf
sed -i '/JACKAL_/d' ~/.bash_profile

