Jackal Labs is een innovatief platform gespecialiseerd in het ontwikkelen van oplossingen voor blockchaintechnologieën en gedecentraliseerde toepassingen. Het bedrijf wil tools en middelen bieden om gedecentraliseerde netwerken te bouwen en te beheren, en biedt oplossingen om de schaalbaarheid, veiligheid en efficiëntie van blockchainprojecten te verbeteren.
Type node |
CPU |
RAM |
Opslag |
Testnet |
4 |
8 GB |
150GB |
Automatische installatie
wget -O jkltest https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/jkltest && chmod +x jkltest && ./jkltest
Server voorbereiding
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 installeren
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
Jackal bouwen
cd $HOME && mkdir $HOME/go/bin/
git clone https://github.com/JackalLabs/canine-chain && cd canine-chain
git checkout v4.0.0-beta.5
make install
canined version --long | head
Версия: 4.0.0-beta.5
Коммит: 05785bccff802e963d0c964434d38fc77833d4c3
Node initialisatie
canined init STAVR_guide --chain-id=lupulella-2
canined config chain-id lupulella-2
Een portemonnee maken/herstellen
canined keys add <walletname>
OR
canined keys add <walletname> --recover
Genesis laden
curl -s "https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/genesis.json" > ~/.canine/config/genesis.json
sha256sum $HOME/.canine/config/genesis.json
SHA256: 9701001c2188abf7c117f7192030bcbab358ac1d5b1a61594f443d3b206ab5a2
Minimale gasprijs en peering instellen
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = "0.0ujkl"/;" ~/.canine/config/app.toml
sed -i -e "s/^filter_peers *=.*/filter_peers = "true"/" $HOME/.canine/config/config.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = "$external_address:26656"/" $HOME/.canine/config/config.toml
peers=""
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$peers"/" $HOME/.canine/config/config.toml
seeds=""
sed -i.bak -e "s/^seeds =.*/seeds = "$seeds"/" $HOME/.canine/config/config.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.canine/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 50/g' $HOME/.canine/config/config.toml
Snoeien (optioneel)
pruning="custom"
pruning_keep_recent="1000"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = "$pruning"/" $HOME/.canine/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = "$pruning_keep_recent"/" $HOME/.canine/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = "$pruning_keep_every"/" $HOME/.canine/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = "$pruning_interval"/" $HOME/.canine/config/app.toml
Indexer (optioneel)
indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.canine/config/config.toml
Addrbook laden
wget -O $HOME/.canine/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/addrbook.json"
Aanmaken van een servicebestand
sudo tee /etc/systemd/system/canined.service > /dev/null <<EOF
[Unit]
Description=canined Testnet
After=network-online.target
[Service]
User=$USER
ExecStart=$(which canined) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
StateSync Jakhals Testnet
SNAP_RPC=https://jkl.rpc.t.stavr.tech:443
peers="80613772b20df144945801b42f327d0945a24374@jkltest.peer.stavr.tech:19126"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$peers"/" $HOME/.canine/config/config.toml
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height);
BLOCK_HEIGHT=$((LATEST_HEIGHT - 100));
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/.canine/config/config.toml
canined tendermint unsafe-reset-all --home /root/.canine
wget -O $HOME/.canine/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/addrbook.json"
systemctl restart canined && journalctl -u canined -f -o cat
SnapShot Mainnet elke 5 uur bijgewerkt
cd $HOME
apt install lz4
sudo systemctl stop canined
cp $HOME/.canine/data/priv_validator_state.json $HOME/.canine/priv_validator_state.json.backup
rm -rf $HOME/.canine/data
curl -o - -L https://jkltest.snapshot.stavr.tech/jackalt-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.canine --strip-components 2
mv $HOME/.canine/priv_validator_state.json.backup $HOME/.canine/data/priv_validator_state.json
wget -O $HOME/.canine/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/addrbook.json"
sudo systemctl restart canined && journalctl -u canined -f -o cat
sudo systemctl daemon-reload
sudo systemctl enable canined
sudo systemctl restart canined && sudo journalctl -u canined -f -o cat
canined tx staking create-validator
--amount 1000000ujkl
--from <walletName>
--commission-max-change-rate "0.1"
--commission-max-rate "0.2"
--commission-rate "0.1"
--min-self-delegation "1"
--pubkey $(canined tendermint show-validator)
--moniker STAVR_guide
--chain-id lupulella-2
--identity=""
--details=""
--website="" -y
sudo systemctl stop canined
sudo systemctl disable canined
rm /etc/systemd/system/canined.service
sudo systemctl daemon-reload
cd $HOME
rm -rf canine-chain
rm -rf .canine
rm -rf $(which canined)
Node-informatie:
canined status 2>&1 | jq .NodeInfo
canined status 2>&1 | jq .SyncInfo
canined status 2>&1 | jq .ValidatorInfo
Node logs bekijken:
sudo journalctl -fu canined -o cat
Servicestatus controleren:
sudo systemctl status canined
Service herstarten:
sudo systemctl restart canined
Service stoppen:
sudo systemctl stop canined
Service starten:
sudo systemctl start canined
Service bijwerken/uitschakelen/inschakelen:
sudo systemctl daemon-reload
sudo systemctl disable canined
sudo systemctl enable canined
Uw feest:
echo $(canined tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.canine/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Een sleutel maken of herstellen:
canined keys add Wallet_Name
Of herstellen
canined keys add Wallet_Name --recover
Alle sleutels controleren:
canined keys list
Saldo controleren:
canined query bank balances адрес_jkl…
Sleutel verwijderen:
canined keys delete Wallet_Name
Sleutel exporteren:
canined keys export wallet
Sleutel importeren:
canined keys import wallet wallet.backup
Validator bewerken:
canined tx staking edit-validator
--new-moniker "Your_Moniker"
--identity "Keybase_ID"
--details "Your_Description"
--website "Your_Website"
--security-contact "Your_Email"
--chain-id jackal-1
--commission-rate 0.05
--from Wallet_Name
--gas 350000 -y
Het adres van je validator:
canined keys show Wallet_Name --bech val
Het adres van je valcons:
canined tendermint show-address
Validator Informatie:
canined query staking validator valoper_address…
Gevangenis Informatie:
canined query slashing signing-info $(canined tendermint show-validator)
Ongevangenis:
canined tx slashing unjail --from Wallet_Name --chain-id jackal-1 --gas 350000 -y
Lijst van actieve validators:
canined q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " t " + .description.moniker' | sort -gr | nl
Lijst van inactieve validators:
canined q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " t " + .description.moniker' | sort -gr | nl
Controleer validatorsleutel:
VALOPER=Ваш_valoper
[[ $(canined q staking validator $VALOPER -oj | jq -r .consensus_pubkey.key) = $(canined status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "nYou winn" || echo -e "nYou losen"
Uitvoer alle beloningen:
canined tx distribution withdraw-all-rewards --from Wallet_Name --chain-id jackal-1 --gas 350000 -y
Uitvoeren validator commissie:
canined tx distribution withdraw-rewards valoper1... --from Wallet_Name --gas 350000 --chain-id=jackal-1 --commission -y
Delegatie van tokens:
canined tx staking delegate Your_valoper "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Opnieuw delegeren van tokens:
canined tx staking redelegate Your_valoper valoper_другого_валидатора "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
De-delegatie van tokens:
canined tx staking unbond Your_valoper "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Alle voorstellen bekijken:
canined query gov proposals
Bekijk een specifiek voorstel:
canined query gov proposal 1
Stem voor:
canined tx gov vote 1 yes --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Stem tegen:
canined tx gov vote 1 no --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Onthouding:
canined tx gov vote 1 abstain --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Stem Tegen met Veto:
canined tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
IBC Overdracht
Voorbeeld van een overdracht van Jackal naar Osmosis:
canined tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress "100000"ujkl --from Your_Jackal_Wallet_Name --gas 350000 --chain-id=jackal-1 -y