Jackal logo

Jackal

mainnet
Chain ID
jackal-1
Node
v4.4.0

πŸ“š Node installation

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc lz4 gcc -y

Install Go

cd $HOME && \
ver="1.21.4" && \
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

The output should be: go version go1.21.4 linux/amd64

Download binary for work

git clone https://github.com/JackalLabs/canine-chain
cd canine-chain
git checkout v4.4.0
make install

Specify variables, for ease of work

echo 'export jackal_moniker="Validator_name"' >> $HOME/.profile
echo 'export jackal_wallet="Wallet_name"' >> $HOME/.profile
echo 'export jackal_port="111"' >> $HOME/.profile
source $HOME/.profile

Initialize the node

canined init $jackal_moniker --chain-id jackal-1

Set the settings

canined config chain-id jackal-1 && \
peers=13f2ec0c7ba5d1d7e65a2ad266043b3b1bf58baa@3.122.167.244:26626,4991ff4b1d4e231e23175a45a3a44d45e4ded2c8@37.27.59.245:36656,dd484ceaf441a407d0e78957bf480c6d6a003deb@51.81.49.59:17556,64e63f16bfb55f69ed226b383f2a3aba977b95c1@104.177.3.61:26656,66e542dfafc101a767f10ba4dd5bc839e7535007@37.27.113.72:26656,c857053242b51e3227c0fa560ae8186bccdf95e4@65.109.118.148:26656,5c4be82ac4d1d8856da2c55e2ac73642c230b596@146.59.47.210:21656,5069027f2e98feef9c9024ca0358ef8a2eef964a@65.109.101.136:26656,170397e75ca2b0f4e9f3b1bb5d0d23f9b10f01c7@5.9.74.187:30602,bdb9cc3833ecba797cd2275e0bd81c2a7fc410b1@168.119.90.246:17556,b715cebe0045c090047c3a9e52ba4db27152d8b2@89.245.24.155:46656,8ced08bce23faba742c7d3cddc142c29eba19b15@167.235.2.206:26856,4579467bfa4a532cf1e0c6e0829ea7079495df5d@144.217.158.127:26656,ce6a81c7dd5c151bfe14169f17cb2d458958d797@65.108.64.116:17556,e44e91665ad9d02cbd879219faaa04bc767ab41f@65.109.86.84:26656,c6929b2a26cf02c084951d1b634af385d750a9d3@65.21.95.15:44656,f97f535017164466095ad49dcb6d01c1a6559204@49.13.126.20:17556,f3a43b01a9108a87a4a2d3532d5f4d5b21977783@46.165.204.15:18656,713d202326eedaed41d467b26051aba62727febd@5.9.69.241:26656,4398bd773ac885b7365de3604eb487be10c54563@146.19.24.146:26906,adde0d153750c3ae19faa05d1f36f4b118f38b6e@185.16.36.147:26556,f256abc3eafd82ed1a763a3fa969bcf72a627f26@167.235.179.241:17556,af774f532cf4b53528b0c418d01dbec549207841@162.19.84.205:26656,c0b33353fb70d8d71dcb9c8848b3b4207bd56951@142.132.148.140:30603,34135f1a6585fa21ab313fb1be8fe537ff16e6bc@65.109.29.150:13756,0e17a4f90ea817ece937230ac284888681255d0c@83.149.100.41:26656,a2df344a42c185ce3eba176a565621edbc4ad7a1@89.58.12.187:26656,91dde47b429fbd1b27354a13c3f82d3e577fe668@65.109.113.228:36656,da6018b34f89b93dc7f9b59b7a0aa43abc006d54@65.21.233.188:17556,1a754fe099a23ccc972636d9d98890284fee7fc7@149.50.96.36:26256,619bce42804fdfb865b706ee3bd3beff4dac9ca1@65.21.46.90:26656,f54b77aa413019355f77caaff21c242222e67767@131.153.200.73:30656,f6aaf53be76e005f83376ceca6d26d30ac93d42c@46.4.81.204:33656,055bd4aa977c1f57fbd4f39fa47f355363a3f3d8@148.113.17.38:26656,ff30d87fdeee5079362951a84192e15f004ff656@85.237.193.34:26656,e272f855eb99975dbd23bfc52dce9ff9661596ff@65.109.60.54:37656,cd2843983b4fd32703a2e58cdf150394ac90d768@141.95.66.131:17556,a09f0ea3fca90fcaab5610c551ea2453f779a1dd@148.251.137.146:26656,e6c767e4aafb41c3d67d89ebc0c8257ec837ae50@79.13.81.213:26656,c4abbfb41a047e8a826ab0e25ba68110448947f0@108.209.99.65:26671,272b2dda49437eb55392e9b7153a44f881e1511c@167.235.9.223:26656,1735f425782c017a0f60afa9ac8ab4e5942f5af5@65.108.106.168:11126,b15c8d32e2ab76a21434a8e0cb1b94ca63e7da8a@65.21.167.185:17556,f6ffe91c468dcce5f387a8ed96fb8f151fdf1aea@51.15.19.175:26656,df384ce266856f44dc70a60045a5904a581b5455@65.109.80.158:14656,23e76540bea9b6851b92e280d7e0c123a0d49521@142.132.134.181:30604,04421bbb5c0bc1fe15ddef2c1be1ecf42cee1b80@86.33.22.194:16656,ef43b6453a8cef8027c584d1fa8774114b1a6648@195.201.175.156:17556,df63527414705c2e7f541d4f0c575f53d25c95f4@49.13.167.151:26656,751c1c50e803aee2c0fb698e2103ccafc30d619f@173.214.171.102:26696 && \
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.canine/config/config.toml && \
seeds="6b0ffcce9b59b91ceb8eea5d4599e27707e3604a@seeds.stakeup.tech:10217" && \
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.canine/config/config.toml

Create wallet

canined keys add $jackal_wallet

Save the wallet. Or restore if there is a mnemonic:

canined keys add $jackal_wallet --recover

Download Genesis

wget -O genesis.json "https://snapshots.stakeup.tech/jackal/genesis.json" --inet4-only
mv genesis.json ~/.canine/config

Optional Settings

Memory optimization
cd $HOME/.canine/config && \
indexer="null" && \
snapshot_interval="0" && \
pruning="custom" && \
pruning_keep_recent="1000" && \
pruning_interval="50" && \
sed -i.bak -e "s/^indexer *=.*/indexer = \"$indexer\"/" config.toml && \
sed -i.bak -e "s/^snapshot-interval *=.*/snapshot-interval = \"$snapshot_interval\"/" app.toml && \
sed -i.bak -e "s/^pruning *=.*/pruning = \"$pruning\"/" app.toml && \
sed -i.bak -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" app.toml && \
sed -i.bak -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" app.toml
Change port
cd $HOME/.canine/config && \
sed -i.bak \
    -e "s/:\s*26656/:${jackal_port}56/g" \
    -e "s/:\s*26657/:${jackal_port}57/g" \
    -e "s/:\s*26658/:${jackal_port}58/g" \
    -e "s/:\s*26660/:${jackal_port}59/g" \
    -e "s/:\s*6060/:${jackal_port}61/g" \
    config.toml

sed -i.bak \
    -e "s/:\s*1317/:${jackal_port}17/g" \
    -e "s/:\s*8080/:${jackal_port}80/g" \
    -e "s/:\s*9090/:${jackal_port}90/g" \
    -e "s/:\s*9091/:${jackal_port}91/g" \
    app.toml && \
echo 'export jackal_node=http://localhost:${jackal_port}57' >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
canined config node $jackal_node

Create a service file

sudo tee /etc/systemd/system/canined.service > /dev/null <<EOF
[Unit]
Description=jackal
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