Cosmos Ecosystem
October 24, 2022
Полезные команды CLI в Сosmos sdk
Значения $cli $address $to_address $amount $chain_id $denom $node_name $wallet_name $id_prop $valoper_address $tx_hash замените на свои !!!
Поиск Информации
# Посмотреть логи: journalctl -u $cli -f -o cat # Рестарт | стоп | статус ноды: systemctl restart $cli systemctl stop $cli systemctl status $cli # Проверить актуальную высоту блока: $cli status 2>&1 | jq ."SyncInfo"."latest_block_height" # Проверить синхронизирована ли нода, если результат false – значит нода синхронизирована curl -s localhost:26657/status | jq .result.sync_info.catching_up # Проверить показатели ноды: $cli status | jq # Проверить информацию по tx_hash (при отключении индексации tx_hash будут не найдены): $cli query tx $tx_hash # Параметры сети: $cli q staking params $cli q slashing params # Список валидаторов в Active set: $cli query staking validators --limit 2000 -o json | jq -r '.validators[] | select(.status=="BOND_STATUS_BONDED") | [.operator_address, .status, (.tokens|tonumber / pow(10; 6)), .description.moniker] | @csv' | column -t -s"," | sort -k3 -n -r # Список валидаторов в Inactive set: $cli query staking validators --limit 2000 -o json | jq -r '.validators[] | select(.status=="BOND_STATUS_UNBONDED") | [.operator_address, .status, (.tokens|tonumber / pow(10; 6)), .description.moniker] | @csv' | column -t -s"," | sort -k3 -n -r
Кошелёк
# Создание кошелька (ВСЕГДА СОХРАНЯЕМ СИД ФРАЗУ): $cli keys add $wallet_name # Восстановление кошелька используя сид фразу: $cli keys add $wallet_name --recover # Проверить баланс кошелька: $cli q bank balances $address # Список кошельков: $cli keys list # Отправить монеты на другой адрес: $cli tx bank send $address $to_address $amount$denom --chain-id $chain_id --fees $amount$denom -y # Показать ключ аккаунта: $cli keys show $wallet_name --bech acc # Показать ключ валидатора: $cli keys show $wallet_name --bech val # Показать ключ консенсуса: $cli keys show $wallet_name --bech cons # Удалить кошелек: $cli keys delete $wallet_name
Создание | редактирование валидатора
# Создать валидатора: $cli tx staking create-validator \ --moniker="$node_name" \ --amount=1000000$denom \ --fees=300$denom \ --pubkey=$($cli tendermint show-validator) \ --chain-id=$chain_id \ --commission-max-change-rate=0.01 \ --commission-max-rate=0.20 \ --commission-rate=0.10 \ --details="" \ --identity="" \ --security-contact="" \ --website "" \ --min-self-delegation=1 \ --from=$wallet_name \ --yes # Редактировать валидатора: $cli tx staking edit-validator \ --details="" \ --chain-id=$chain_id \ --from=$wallet_name --yes
Валидатор
# Узнать свой valoper адрес: $cli keys show $wallet_name --bech val -a # Проверить pubkey валидатора: $cli tendermint show-validator # Проверить информацию о валидаторе: $cli query staking validator $valoper_address # Проверить количество блоков, пропущенных валидатором и с какого блока активен: $cli q slashing signing-info $($cli tendermint show-validator) # Узнать tx_hash транзакции создания валидатора: $cli query txs --events='create_validator.validator=<<valoper_address>>' -o=json | jq .txs[0].txhash -r # Заделегировать токены (для того, чтобы увеличить свой стейк делегируйте на свой $valoper_address): $cli tx staking delegate $valoper_address $amount$denom --from $wallet_name --chain-id $chain_id --fees $amount$denom -y # Выйти из тюрьмы: $cli tx slashing unjail --chain-id $chain_id --from $wallet_name --fees $amount$denom -y # Перевести реварды и комиссию с валидатора на основной баланс кошелька: $cli tx distribution withdraw-rewards $valoper_address --from $wallet_name --chain-id $chain_id --commission --fees $amount$denom -y # Перевести все награды от делегирования со всех валидаторов, на которых вы стейкали свои токены: $cli tx distribution withdraw-all-rewards --chain-id $chain_id \ --from $wallet_name --gas=auto --gas-adjustment=1.5 --fees=$amount$denom # Unbond: $cli tx staking unbond $($cli keys show $wallet_name --bech val -a) $amount$denom \ --from $wallet_name \ --chain-id=$chain_id \ --gas=auto --gas-adjustment=1.5 \ --fees=$amount$denom
Peer & Rpc
# Узнать свой peer@ip:port:
PORTR=$(grep -A 3 "\[p2p\]" ~/.$cli/config/config.toml | egrep -o ":[0-9]+") && \
echo $($cli tendermint show-node-id)@$(curl ifconfig.me)$PORTR
# Узнать свой порт RPC:
echo -e "\033[0;32m$(grep -A 3 "\[rpc\]" ~/.$cli/config/config.toml | egrep -o ":[0-9]+")\033[0m"
# Проверить количество peers:
PORT=26657
curl -s http://localhost:$PORT/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | split(":")[2])"' | wc -l
# Список моникеров подключенных peers:
curl -s http://localhost:$PORT/net_info | jq '.result.peers[].node_info.moniker'
# Проверка Vote Power онлайн:
curl -s localhost:26657/consensus_state | jq '.result.round_state.height_vote_set[0].prevotes_bit_array'Proposls
# Cписок proposals: $cli q gov proposals # Голосовать за предложение: $cli tx gov vote 1 yes --from $wallet_name --chain-id $chain_id --fees $amount$denom -y # Создать предложение (простой пример): $cli tx gov submit-proposal --title="Text" \ --type="Text" \ --description="Text" \ --from $wallet_name \ --chain-id=$chain_id \ --gas=auto --gas-adjustment 1.5 --fees=$amount$denom # Внести депозит в предложение, для запуска голосования: $cli tx gov deposit $id_prop $amount$denom \ --from=$wallet_name \ --chain-id=$chain_id \ --gas=auto --gas-adjustment=1.5 --fees=$amount$denom