Jackal Labs est une plateforme innovante spécialisée dans le développement de solutions pour les technologies blockchain et les applications décentralisées. L'entreprise vise à fournir des outils et des ressources pour construire et gérer des réseaux décentralisés, et propose des solutions pour améliorer l'évolutivité, la sécurité et l'efficacité des projets de blockchain.
Type de nœud |
CPU |
MÉMOIRE VIVE |
Stockage |
Testnet |
4 |
8GB |
150GB |
Auto-installation
wget -O jkltest https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/jkltest && chmod +x jkltest && ./jkltest
Préparation du serveur
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
Installation de 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
Construction de Jackal
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
Initialisation du nœud
canined init STAVR_guide --chain-id=lupulella-2
canined config chain-id lupulella-2
Création/restauration d'un portefeuille
canined keys add <walletname>
OU
canined keys add <walletname> --recover
Chargement de Genesis
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
Mise en place du prix minimum du gaz et du peering
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
Élagage (optionnel)
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
Indexation (facultatif)
indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.canine/config/config.toml
Chargement de addrbook
wget -O $HOME/.canine/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/addrbook.json"
Création d'un fichier de service
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 Jackal 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 mis à jour toutes les 5 heures
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)
Informations sur le nœud :
canined status 2>&1 | jq .NodeInfo
canined status 2>&1 | jq .SyncInfo
canined status 2>&1 | jq .ValidatorInfo
Consulter les journaux du nœud :
sudo journalctl -fu canined -o cat
Vérifier l'état du service :
sudo systemctl status canined
Redémarrer le service :
sudo systemctl restart canined
Arrêter le service :
sudo systemctl stop canined
Démarrer le service :
sudo systemctl start canined
Mettre à jour/désactiver/activer le service :
sudo systemctl daemon-reload
sudo systemctl disable canined
sudo systemctl enable canined
Votre festin :
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/".*//')
Créer ou restaurer une clé :
canined keys add Wallet_Name
Ou restaurer
canined keys add Wallet_Name --recover
Vérifier toutes les clés :
canined keys list
Vérifier le solde :
canined query bank balances адрес_jkl…
Supprimer une clé :
canined keys delete Wallet_Name
Clé d'exportation : Clé d'importation : Clé d'exportation : Clé d'exportation : Clé d'importation
canined keys export wallet
Importer la clé :
canined keys import wallet wallet.backup
Modifier le validateur :
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
L'adresse de votre validateur :
canined keys show Wallet_Name --bech val
L'adresse de votre validateur :
canined tendermint show-address
Informations sur le validateur :
canined query staking validator valoper_address…
Informations sur la prison :
canined query slashing signing-info $(canined tendermint show-validator)
Unjail :
canined tx slashing unjail --from Wallet_Name --chain-id jackal-1 --gas 350000 -y
Liste des validateurs actifs :
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
Liste des validateurs inactifs :
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
Vérifier la clé du validateur :
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"
Éditer toutes les récompenses :
canined tx distribution withdraw-all-rewards --from Wallet_Name --chain-id jackal-1 --gas 350000 -y
Sortie de la commission du validateur :
canined tx distribution withdraw-rewards valoper1... --from Wallet_Name --gas 350000 --chain-id=jackal-1 --commission -y
Délégation des jetons :
canined tx staking delegate Your_valoper "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Redélégation des jetons :
canined tx staking redelegate Your_valoper valoper_другого_валидатора "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Dé-délégation de jetons : Dé-délégation de jetons : Dé-délégation de jetons : Dé-délégation de jetons :
canined tx staking unbond Your_valoper "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Voir toutes les propositions :
canined query gov proposals
Voir une proposition spécifique :
canined query gov proposal 1
Voter pour :
canined tx gov vote 1 yes --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Voter contre :
canined tx gov vote 1 no --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
S'abstenir :
canined tx gov vote 1 abstain --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Voter contre avec droit de veto :
canined tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Transfert du BAC
Exemple de transfert de Jackal à 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