Jackal Labs – блокчейн технологиялары мен орталықтандырылмаған қосымшалар саласындағы шешімдерді әзірлеуге маманданған инновациялық платформа. Компания орталықтандырылмаған желілерді құру және басқару үшін құралдар мен ресурстарды қамтамасыз етуге бағытталған және блокчейн жобаларының ауқымдылығын, қауіпсіздігін және тиімділігін жақсарту үшін шешімдер ұсынады.
Түйін түрі | CPU | Жедел Жадтау Құрылғысы | Сақтау |
Testnet | 4 | 8 ГБ | 150 ГБ |
Автоматты орнату
wget -O jkltest https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/jkltest && chmod +x jkltest && ./jkltest
Серверді дайындау
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 орнату
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
Сборка Шакал
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
Инициализация узла
canined init STAVR_guide --chain-id=lupulella-2 canined config chain-id lupulella-2
Создание/восстановление кошелька
canined keys add <walletname>
ИЛИ
canined keys add <walletname> --recover
Загрузка 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
Настройка минимальной цены газа и пирингов
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
Кесу (необязательно)
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="null" && sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.canine/config/config.toml
Загрузка adrbook
wget -O $HOME/.canine/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Jackal/Testnet/addrbook.json"
Создание файла службы
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 5 сағатқа созылады
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)
Ақпарат туралы ақпарат:
canined status 2>&1 | jq .NodeInfo canined status 2>&1 | jq .SyncInfo canined status 2>&1 | jq .ValidatorInfo
Просмотр логов узла:
sudo journalctl -fu canined -o cat
Қызмет күйін тексеру:
sudo systemctl status canined
Қызметті қайта іске қосу:
sudo systemctl restart canined
Қызметті тоқтату:
sudo systemctl stop canined
Қызметті іске қосыңыз:
sudo systemctl start canined
Қызметті жаңарту/өшіру/қосу:
sudo systemctl daemon-reload sudo systemctl disable canined sudo systemctl enable canined
Сіздің мерекеңіз:
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/".*//')
Кілтті жасау немесе қалпына келтіру:
canined keys add Wallet_Name
Немесе қалпына келтіру
canined keys add Wallet_Name --recover
Барлық кілттерді тексеріңіз:
canined keys list
Балансты тексеру:
canined query bank balances адрес_jkl…
Кілтті жою:
canined keys delete Wallet_Name
Экспорт кілті:
canined keys export wallet
Импорт кілті:
canined keys import wallet wallet.backup
Өңдеу валидаторы:
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
Сіздің валидатор мекенжайыңыз:
canined keys show Wallet_Name --bech val
Сіздің Valkons мекенжайыңыз:
canined tendermint show-address
Валидатор туралы ақпарат:
canined query staking validator valoper_address…
Түрме туралы ақпарат:
canined query slashing signing-info $(canined tendermint show-validator)
Түрмеден босату:
canined tx slashing unjail --from Wallet_Name --chain-id jackal-1 --gas 350000 -y
Белсенді валидаторлар тізімі:
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
Белсенді емес валидаторлар тізімі:
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
Валидатор кілтін тексеріңіз:
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"
Барлық сыйақыларды алып тастау:
canined tx distribution withdraw-all-rewards --from Wallet_Name --chain-id jackal-1 --gas 350000 -y
Валидатор комиссиясының нәтижесі:
canined tx distribution withdraw-rewards valoper1... --from Wallet_Name --gas 350000 --chain-id=jackal-1 --commission -y
Токен делегациясы:
canined tx staking delegate Your_valoper "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Токенді қайта жіберу:
canined tx staking redelegate Your_valoper valoper_другого_валидатора "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Токеннің мұрагерлігі:
canined tx staking unbond Your_valoper "100000000"ujkl --from Wallet_Name --gas 350000 --chain-id=jackal-1 -y
Барлық ұсыныстарды көру:
canined query gov proposals
Арнайы ұсынысты көру:
canined query gov proposal 1
«Қолдау» дауыс беру:
canined tx gov vote 1 yes --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
«қарсы» дауыс беру:
canined tx gov vote 1 no --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Воздержаться:
canined tx gov vote 1 abstain --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
Голосовать "против с вето":
canined tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --chain-id jackal-1 -y
IBC аударымы
Осмосқа шакал переводасының мысалы:
canined tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress "100000"ujkl --from Your_Jackal_Wallet_Name --gas 350000 --chain-id=jackal-1 -y