Crowd Control testnet
Знакомство
Crowd control представляет собой карточную игру. Проект построен на блокчене Cosmos и на данный момент проводит закрытый тестнет.
Суть проекта заключается в создании уникальной карточной игры на блокчейне, где каждый может внести собственный вклад в данный процесс. Здесь любой пользователь может создавать уникальные карты и участвовать в процессе балансировки игры путем голосований.
Системные требования
Минимальные требования - 2 CPU / 4 RAM / 100 SSD
Установка
Подготавливаем сервер:
# обновляем 'базу данных' и дистрибутив sudo apt update && sudo apt upgrade -y #cкачиваем необходимые зависимости 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 одной командой:
wget https://golang.org/dl/go1.18.1.linux-amd64.tar.gz; \ rm -rv /usr/local/go; \ tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz && \ rm -v go1.18.1.linux-amd64.tar.gz && \ echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile && \ source ~/.bash_profile && \ # проверяем версию go version
Устанавливаем бинарники:
curl https://get.ignite.com/DecentralCardGame/Cardchain@latest! | sudo bash sudo apt-get install jq # Проверяем версию Cardchain version --long | head # version: 0.81-5450b07d # commit: 5450b07df2b55448bac743d34ed0ba4537a6d401
version: latest-bf2b2b7b
commit: bf2b2b7b07a9fd32ae68f9b72f1d83f608735b5b
Инициализируем ноду:
Cardchain init <название> --chain-id Testnet3
upd. заменяем название вместе с <>, например:
Cardchain init cardex --chain-id Cardchain
Cкачиваем генезис:
wget -O $HOME/.Cardchain/config/genesis.json "https://raw.githubusercontent.com/DecentralCardGame/Testnet/main/genesis.json"
Сбрасываем данные (не обязательно если установка с 0)
Cardchain unsafe-reset-all --home $HOME/.Cardchain
Скачиваем адресник:
wget -O $HOME/.Cardchain/config/addrbook.json "https://raw.githubusercontent.com/obajay/nodes-Guides/main/Crowd%20Control/addrbook.json"
Настраиваем конфигурацию ноды:
Cardchain config chain-id Testnet3 SNAP_RPC="http://161.97.167.120:26657"; \ LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height) \ && BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)) \ && 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\"|" $HOME/.Cardchain/config/config.toml; \ wget -qO $HOME/.Cardchain/config/addrbook.json https://github.com/AlexToTheMoon/AM-Solutions/raw/main/addrbooks/addrbook-crowd.json
По желанию настраиваем прунинг и индексер:
pruning="custom" && \ pruning_keep_recent="100" && \ pruning_keep_every="0" && \ pruning_interval="10" && \ sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.Cardchain/config/app.toml && \ sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.Cardchain/config/app.toml && \ sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.Cardchain/config/app.toml && \ sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.Cardchain/config/app.toml
indexer="null" && \ sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.Cardchain/config/config.toml
Создаем сервисник:
sudo tee /etc/systemd/system/Cardchain.service > /dev/null <<EOF [Unit] Description=Cardchain After=network-online.target [Service] User=$USER ExecStart=$(which Cardchain) start Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload sudo systemctl enable Cardchain sudo systemctl restart Cardchain
sudo journalctl -u Cardchain -f -o
Создаем кошелек и валидатора
Настраиваем переменные окружения
echo export MONIKER_CARD=введи_свой_никнейм >> $HOME/.bash_profile && \ echo export WALLET_ADDRESS_CARD=введи_название_кошелька >> $HOME/.bash_profile # Применяем source $HOME/.bash_profile
Создаем или восстанавливаем кошелек
# создать кошелек (СОХРАНИ МНЕМОНИКУ!) Cardchain keys add $WALLET_ADDRESS_CARD # восстановить кошелек по мнемонике Cardchain keys add $WALLET_ADDRESS_CARD--recover
Проверяем статус синхронизации
Cardchain status 2>&1 | jq |grep catch
Вывод должен быть таким: "catching_up": false
Пополняем баланс
Cardchain keys list
* Запрашиваем токены в ветке token-faucet Discord канала:
$request <адрес кошелька>
* Так же токены разово можно получить на сайте
* Кроме этого можно фармить токены подключив кошелек и выполняя задания на сайте проекта:
Подключаем кошелек в правом верхнем углу, вводим мнемонику кошелька привязанного к ноде.
После создания переходим во вкладку Account и проверяем баланс и возможные награды задания (Claim airdrops)
После синхронизации проверяем баланс:
Cardchain q bank balances $(Cardchain keys show $WALLET_ADDRESS_CARD -a)
После полной синхронизации и пополнения кошелька создаем валидатора
Cardchain tx staking create-validator \ --amount 1000000ubpf \ --from $WALLET_ADDRESS_CARD\ --commission-max-change-rate "0.1" \ --commission-max-rate "0.2" \ --commission-rate "0.05" \ --min-self-delegation "1" \ --pubkey $(Cardchain tendermint show-validator) \ --moniker $MONIKER_CARD\ --fees 300ubpf \ --chain-id Testnet3 -y
Сохраняем priv_validator_key.json
Получить дополнительные токены:
Команда Dragon Dev и Noders готовы поддержать и делегировать дополнительные токены тем, кто напишет в чат свой адрес валидатора.
Обновление
systemctl stop Cardchain curl https://get.ignite.com/DecentralCardGame/[email protected]! | sudo bash Cardchain version --long | head # version: latest # commit: 64d870f21f258f1116570abc18470a8e558f0629 systemctl restart Cardchain && journalctl -u Cardchain -f -o cat
Полезные команды
# логи sudo journalctl -u Cardchain -f -o # статус синхронизации Cardchain status 2>&1 | jq |grep catch # статус Cardchain status 2>&1 | jq # Параметры сети Cardchain q staking params Cardchain q slashing params # проверка высоты блоков Cardchain status 2>&1 | jq ."SyncInfo"."latest_block_height" # количество пропущенных блоков Cardchain q slashing signing-info $(Cardchain tendermint show-validator)
# вывод списка кошельков Cardchain keys list # баланс кошелька Cardchain q bank balances $(Cardchain keys show $WALLET_ADDRESS_CARD-a) # удалить кошелек Cardchain keys delete $WALLET_ADDRESS_CARD # вывод ключа аккаунта Cardchain keys show $WALLET_ADDRESS_CARD--bech acc # вывод ключа консенсуса Cardchain keys show $WALLET_ADDRESS_CARD--bech cons
# вывод ключа валидатора Cardchain keys show $WALLET_ADDRESS_CARD --bech val # сохранить адрес валидатора в виде переменной окружения echo export VALIDATOR_ADDR_CARD=введите_адрес_валидатора >> $HOME/.bash_profile source $HOME/.bash_profile
Если не сохраняли адрес валидатора в виде переменной, то далее вместо $VALIDATOR_ADDR_CARD вводите свой адрес валидатора
# pubkey валидатора Cardchain tendermint show-validator # проверить валидатора Cardchain query staking validator $VALIDATOR_ADDR_CARD Cardchain query staking validators --limit 1000000 -o json | jq '.validators[] | select(.description.moniker=="<имя валидатора>")' | jq
# собрать комиссионные + реварды Cardchain tx distribution withdraw-rewards $VALIDATOR_ADDR_CARD --from $WALLET_ADDRESS_CARD --fees 500ubpf --commission -y # заделегировать себе в стейк еще (так отправляется 1 монетa) Cardchain tx staking delegate $VALIDATOR_ADDR_CARD 1000000ubpf --from $WALLET_ADDRESS_CARD --fees 500ubpf -y # ределегирование на другого валидатора Cardchain tx staking redelegate <src-validator-addr> <dst-validator-addr> 1000000ubpf --from $WALLET_ADDRESS_CARD --fees 500ubpf -y # unbond Cardchain tx staking unbond $VALIDATOR_ADDR_CARD 1000000ubpf --from $WALLET_ADDRESS_CARD --fees 500ubpf -y # отправить монеты на другой адрес Cardchain tx bank send $WALLET_ADDRESS_CARD $VALIDATOR_ADDR_CARD 1000000ubpf --fees 500ubpf -y # выбраться из тюрьмы Cardchain tx slashing unjail --from $WALLET_ADDRESS_CARD --fees 500ubpf -y
# список предложений Cardchain q gov proposals # посмотреть результат голосования Cardchain q gov proposals --voter <ADDRESS> # проголосовать за предложение Cardchain tx gov vote 1 yes --from $WALLET_ADDRESS_CARD --fees 555ubpf # внести депозит в предложение Cardchain tx gov deposit 1 1000000ubpf --from $WALLET_ADDRESS_CARD --fees 555ubpf # создать предложение Cardchain tx gov submit-proposal --title="Randomly reward" --description="Reward 10 testnet participants who completed more than 3 tasks" --type="Text" --deposit="11000000grain" --from=$WALLET_ADDRESS_CARD --fees 500grain
# проверка количества пиров curl -s http://localhost:26657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | split(":")[2])"' | wc -l # cписок моникеров подключенных пиров curl -s http://localhost:26657/net_info | jq '.result.peers[].node_info.moniker'
# удалить системник sudo systemctl stop Cardchain && \ sudo systemctl disable Cardchain && \ rm /etc/systemd/system/Cardchain.service && \ sudo systemctl daemon-reload # удалить файлы cd $HOME && \ rm -rf .Cardchain && \ rm -rf Cardchain && \ rm -rf $(which Cardchain) # удалить переменные окружения unset MONIKER_CARD && \ unset WALLET_ADDRESS_CARD && \ unset VALIDATOR_ADDR_CARD && \
Подписывайтесь!
Наш канал в телеграм: https://t.me/cardex_nodes
Наш канал в дискорд: https://discord.gg/mtDbNnAkk9