Crowd Control - это коллекционная карточная игра на блокчейне Cosmos, где вы можете создавать свои собственные карты, а ваш голос определяет баланс игры. Минимальные системные требования:CPU - Core x2RAM - 4Gb;Storage - 100Gb.OS - Ubuntu 22.04Explorer: 1 2Network Chain ID: cardtestnet-10Хостинги с беспроблемной оплатой в РФ, мои рефералки:FirstvdsPQ.hostingAezaНачинаем установкуПодготавливаем сервер:sudo apt update && sudo apt upgrade -yУстанавливаем набор утилит:sudo apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -yУстанавливаем Go 1.21.3 одной командой:ver="1.21.3" 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Устанавливаем бинарник:git clone https://github.com/DecentralCardGame/Cardchain wget https://github.com/DecentralCardGame/Cardchain/releases/download/v0.14.2/Cardchaind chmod +x Cardchaind mv $HOME/Cardchaind /usr/local/binПроверяем версию:Cardchaind version --long | grep -e commit -e versionВывод должен быть таким:version: 0.14.2Создание/восстановление кошелькаДля первичной установки:Cardchaind keys add <walletname>- вместо <walletname> напишите свое название кошелька без скобок, например - TestWallet. Сохраните адрес кошелька и мнемоник фразу, никому ее не показывайте! Для восстановления кошелька:Cardchaind keys add <walletname> --recover- для первичной установки не требуется.Инициализируем ноду:Cardchaind init <name_moniker> --chain-id cardtestnet-10 Cardchaind config chain-id cardtestnet-10- вместо <name_moniker> напишите свое название своего валидатора без скобок.Скачиваем Genesis:wget http://45.136.28.158:3000/genesis.json -O $HOME/.cardchaind/config/genesis.jsonСкачиваем адресбук:wget -O $HOME/.cardchaind/config/addrbook.json "https://github.com/DecentralCardGame/Testnet/blob/main/addrbook.json"Задаем минимальное значение газа, пиры и сиды:sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0ubpf\"/;" ~/.cardchaind/config/app.toml external_address=$(wget -qO- eth0.me) sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:20056\"/" $HOME/.cardchaind/config/config.toml peers="ab88b326851e26cf96d1e4634d08ca0b8d812032@202.61.225.157:20056" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.cardchaind/config/config.toml seeds="" sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.cardchaind/config/config.tomlНастраиваем прунинг одной командой (опционально) для экономии места:pruning="custom" && pruning_keep_recent="1000" && pruning_keep_every="0" && pruning_interval="10" && sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.cardchaind/config/app.toml && sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.cardchaind/config/app.toml && sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.cardchaind/config/app.toml && sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.cardchaind/config/app.tomlВыключаем индексер (по желанию) для экономии места:ndexer="null" && \ sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.cardchaind/config/config.tomlСоздаём сервисный файлsudo tee <<EOF >/dev/null /etc/systemd/system/Cardchaind.service [Unit] Description=Cardchain Daemon After=network-online.target [Service] User=$USER ExecStart=$(which Cardchaind) start Restart=always RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOFЗапуск нодыЗапускаем наш сервис и ждем синхронизацииsudo systemctl daemon-reload sudo systemctl enable Cardchaind sudo systemctl restart CardchaindПосмотреть логи:sudo journalctl -u Cardchaind -f -o catЖдем пока нода синхронизируется. Проверяем состояние так:curl -s localhost:26657/status- если результат true - значит синхронизация еще идет, если false - значит все готово.- проверить состояние ноды синхронизировалась она или нет - команды аналогичные.После синхронизации получаем тестовые монеты и создаем валидаторДля этого переходим на сайт:1. Жмем Add New Wallet и импортируем свой кошелек с помощью мнемоник фразыПосле того как вы импортировали на сайт свой кошелек и прошли капчу, вам автоматически начислят 300 тестовых монет - 300bpf.Проверить баланс кошелька Cardchaind q bank balances <address>- вместо <address> вставить свой адрес без <скобок>Далее создаем своего валидатора:Cardchaind tx staking create-validator \ --amount 1000000ubpf \ --from <walletName> \ --commission-max-change-rate "0.1" \ --commission-max-rate "0.2" \ --commission-rate "0.05" \ --min-self-delegation "1" \ --details="" \ --identity="" \ --pubkey $(Cardchaind tendermint show-validator) \ --moniker <name_moniker> \ --fees 300ubpf \ --chain-id cardtestnet-10 -y- вместо <walletname> и <name_moniker> вписать свои имена без <скобок>После успешного проведения команды, валидатор будет запущен, он будет отображаться в эксплоререПолезные командыПосмотреть логи можно следующей командойsudo journalctl -u Cardchaind -f -o catОстановить нодуsudo systemctl stop CardchaindРестарт нодыsudo systemctl restart Cardchaind && sudo journalctl -u Cardchaind -f -o catВыбраться из тюрьмыCardchaind tx slashing unjail --from <name_wallet> --fees 500ubpf -yПроверить баланс кошелькаCardchaind q bank balances <address>Проверить валидатораCardchaind query staking validators --limit 1000000 -o json | jq '.validators[] | select(.description.moniker=="<name_moniker>")' | jq- вместо <name_moniker> - указать свое имя валидатора без <скобок>Делегировать 1 монетуCardchaind tx staking delegate <valoper_address> 1000000ubpf --from <name_wallet> --fees 500ubpf -y- <valoper_address> - это адрес кошелька валидатораСобрать комиссионные + ревардыCardchaind tx distribution withdraw-rewards <valoper_address> --from <name_wallet> --fees 500ubpf --commission -yГОВЕРНАНСсписок proposalsCardchaind q gov proposalsПроголосовать за предложение:Cardchaind tx gov vote <1> yes --from <name_wallet> --fees 555ubpf- вместо <1> - указать номер активного proposals без <скобок>Посмотреть результат голосования:Cardchaind q gov proposals --voter <name_wallet>Удаление нодыsudo systemctl stop Cardchaind sudo rm /etc/systemd/system/Cardchaind.service sudo rm -rf $HOME/.cardchaind/ sudo rm -rf Testnet sudo rm -rf $(which Cardchaind)Ссылки:YouTubeТелеграм#indiegame #gamedev #крипта #blockchain #cosmos_ноды