Jackal Labs, blok zinciri teknolojileri ve merkezi olmayan uygulamalar için çözümler geliştirme konusunda uzmanlaşmış yenilikçi bir platformdur. Şirket, merkezi olmayan ağlar kurmak ve yönetmek için araçlar ve kaynaklar sağlamayı amaçlamakta ve blok zinciri projelerinin ölçeklenebilirliğini, güvenliğini ve verimliliğini artırmak için çözümler sunmaktadır.
Düğüm tipi |
CPU |
RAM |
Depolama |
Testnet |
4 |
8GB |
150GB |
Otomatik kurulum
wget -O jkltest https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/jkltest && chmod +x jkltest && ./jkltest
Sunucu hazırlığı
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 yükleniyor
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
Çakal yapısı
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
Düğüm başlatma
canined init STAVR_guide --chain-id=lupulella-2
canined config chain-id lupulella-2
Cüzdan oluşturma/restore etme
canined keys add <walletname>
VEYA
canined keys add <walletname> --recover
Genesis yükleniyor
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
Asgari gaz fiyatının ve peering'in belirlenmesi
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
Budama (isteğe bağlı)
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
Dizinleyici (isteğe bağlı)
indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.canine/config/config.toml
Addrbook yükleniyor
wget -O $HOME/.canine/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/addrbook.json"
Servis dosyası oluşturma
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 Çakal Test Ağı
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 her 5 saatte bir güncellenir
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)
Düğüm Bilgileri:
canined status 2>&1 | jq .NodeInfo
canined status 2>&1 | jq .SyncInfo
canined status 2>&1 | jq .ValidatorInfo
Düğüm günlüklerini görüntüleyin:
sudo journalctl -fu canined -o cat
Hizmet durumunu kontrol edin:
sudo systemctl status canined
Hizmeti yeniden başlatın:
sudo systemctl restart canined
Hizmeti durdur:
sudo systemctl stop canined
Hizmeti başlatın:
sudo systemctl start canined
Hizmeti güncelleyin/devre dışı bırakın/etkinleştirin:
sudo systemctl daemon-reload
sudo systemctl disable canined
sudo systemctl enable canined
Senin ziyafetin:
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/".*//')
Bir anahtar oluşturun veya geri yükleyin:
canined keys add Wallet_Name
Veya geri yükle
canined keys add Wallet_Name --recover
Tüm anahtarları kontrol edin:
canined keys list
Bakiyeyi kontrol edin:
canined query bank balances адрес_jkl…
Silme tuşu:
canined keys delete Wallet_Name
Dışa aktar tuşu:
canined keys export wallet
Anahtarı içe aktarın:
canined keys import wallet wallet.backup
Doğrulayıcıyı Düzenle:
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
Doğrulayıcınızın adresi:
canined keys show Wallet_Name --bech val
Valcons'unuzun adresi:
canined tendermint show-address
Doğrulayıcı Bilgileri:
canined query staking validator valoper_address…
Hapishane Bilgileri:
canined query slashing signing-info $(canined tendermint show-validator)
Unjail:
canined tx slashing unjail --from Wallet_Name --chain-id jackal-1 --gas 350000 -y
Aktif doğrulayıcıların listesi:
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
Etkin olmayan doğrulayıcıların listesi:
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
Doğrulayıcı Anahtarını Kontrol Et:
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"
Tüm ödüllerin çıktısını al:
canined tx distribution withdraw-all-rewards --from Wallet_Name --chain-id jackal-1 --gas 350000 -y
Doğrulayıcı komisyonu çıktısı:
canined tx distribution withdraw-rewards valoper1... --from Wallet_Name --gas 350000 --chain-id=jackal-1 --commission -y
Belirteçlerin delegasyonu:
canined tx staking delegate Your_valoper "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Belirteçlerin yeniden devredilmesi:
canined tx staking redelegate Your_valoper valoper_другого_валидатора "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Belirteçlerin devredilmesi:
canined tx staking unbond Your_valoper "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Tüm teklifleri görüntüleyin:
canined query gov proposals
Belirli bir teklifi görüntüleyin:
canined query gov proposal 1
Lehte oy verin:
canined tx gov vote 1 yes --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Karşı Oy Verin:
canined tx gov vote 1 no --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Çekimser oy verin:
canined tx gov vote 1 abstain --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Veto ile Karşı Oy Kullanın:
canined tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
IBC Transferi
Jackal'dan Osmosis'e transfer örneği:
canined tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress "100000"ujkl --from Your_Jackal_Wallet_Name --gas 350000 --chain-id=jackal-1 -y