Zahlungsmethoden Abuse

Crowd Control: Installation und Arbeit mit einem Knoten

25.09.2024, 15:45

Crowd Control ist ein Blockchain-Spiel mit Sammelkarten, bei dem die Spieler ihre eigenen Karten erstellen und mit anderen Mitgliedern des Ökosystems interagieren können. Dieser Artikel enthält detaillierte Anweisungen zur Installation und Konfiguration eines Knotens für das Crowd Control-Testnetz.

Minimale Systemanforderungen

  • Knotentyp: Testnet.
  • CPU: 4.
  • RAM: 8gb.
  • Speicherplatz: 150gb.

Automatische Knoteninstallation

Ein Autoskript kann verwendet werden, um den Installationsprozess zu vereinfachen:

wget -O crowd https://raw.githubusercontent.com/111STAVR111/props/main/Crowd/crowd && chmod +x crowd && ./crowd

Manuelle Knoteninstallation

Vorbereitung des Servers

Zuerst müssen Sie alle notwendigen Pakete auf dem Server aktualisieren und installieren:

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 chrony liblz4-tool -y

Installation von 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

Cardchaind 11.07.24 bauen.

cd $HOME && mkdir -p go/bin/
git clone https://github.com/DecentralCardGame/Cardchain
wget -O Cardchaind https://github.com/DecentralCardGame/Cardchain/releases/download/v0.16.0/cardchaind
chmod +x Cardchaind
mv $HOME/Cardchaind /usr/local/bin
Cardchaind version --long | grep -e commit -e version

Version prüfen:

version: 0.16.0
commit: be4d9f600b2274bf9dce0ec944c3ba175fa7db8e

Initialisierung

Initialisieren Sie den Knoten, indem Sie den Namen und die Netzwerk-ID angeben:

Cardchaind init <your_node_name> --chain-id cardtestnet-12
Cardchaind config chain-id cardtestnet-12

Erstellen oder Wiederherstellen einer Brieftasche

Cardchaind keys add <walletname>
Cardchaind keys add <walletname> --recover

Genesis herunterladen

Laden Sie die Genesis-Datei herunter, um sie mit dem Netzwerk zu synchronisieren:

wget -O $HOME/.cardchaind/config/genesis.json "https://cardchain.crowdcontrol.network/files/genesis.json"
sha256sum $HOME/.cardchaind/config/genesis.json

Prüfen Sie den Hash:

1aedb68136b19f16edfe9c7e4e73a38f0fbc93cb13c555ca29b3493b40facc58

Konfigurieren Sie die minimalen Gaskosten, Peers und andere Einstellungen

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:26656"/" $HOME/.cardchaind/config/config.toml
peers="86b643ba743ccc78e6e086120d43c96f85872601@202.61.225.157:20656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$peers"/" $HOME/.cardchaind/config/config.toml

Pruning konfigurieren (optional)

Pruning kann konfiguriert werden, um die Datenspeicherung zu optimieren:

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

Indexer (optional)

indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.cardchaind/config/config.toml

addrbook herunterladen

wget -O $HOME/.cardchaind/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Crowd/addrbook.json"

Erstellen einer Servicedatei

Erstellen Sie eine Servicedatei, um den Knoten automatisch zu starten:

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

StateSync Crowd Testnet

SNAP_RPC=https://crowd.rpc.t.stavr.tech:443
PEERS="ec585d7fb38b67619dcb79aad90722f0eaf0faa3@crowd.peer.stavr.tech:21206"
sed -i.bak -e "s/^seeds *=.*/seeds = "$SEEDS"/; s/^persistent_peers *=.*/persistent_peers = "$PEERS"/" $HOME/.cardchaind/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"|" $HOME/.cardchaind/config/config.toml; 
Cardchaind tendermint unsafe-reset-all
wget -O $HOME/.cardchaind/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Crowd/addrbook.json"
sudo systemctl restart Cardchaind && journalctl -u Cardchaind -f -o cat

SnapShot Testnet wird alle 5 Stunden aktualisiert

cd $HOME
apt install lz4
sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|1false|" ~/.cardchaind/config/config.toml
sudo systemctl stop Cardchaind
cp $HOME/.cardchaind/data/priv_validator_state.json $HOME/.cardchaind/priv_validator_state.json.backup
rm -rf $HOME/.cardchaind/data
curl -o - -L http://crowd.snapshot.stavr.tech:1013/crowd/crowd-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.cardchaind --strip-components 2
mv $HOME/.cardchaind/priv_validator_state.json.backup $HOME/.cardchaind/data/priv_validator_state.json
wget -O $HOME/.cardchaind/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Crowd/addrbook.json"
sudo systemctl restart Cardchaind && journalctl -u Cardchaind -f -o cat

Starten Sie den Knoten

Nun können Sie den Knoten starten und seinen Status überwachen:

sudo systemctl daemon-reload
sudo systemctl enable Cardchaind 
sudo systemctl restart Cardchaind && sudo journalctl -u Cardchaind -f -o cat

Erstellen eines Validators

Wenn der Knoten synchronisiert ist, erstellen Sie einen Prüfer:

Cardchaind tx staking create-validator 
--amount 1000000ubpf 
--from <walletName> 
--commission-max-change-rate "0.2" 
--commission-max-rate "1" 
--commission-rate "0.1" 
--min-self-delegation "1" 
--details="" 
--identity="" 
--pubkey  $(Cardchaind tendermint show-validator) 
--moniker <validator_name> 
--fees 300ubpf 
--chain-id cardtestnet-12 -y

Knoten löschen

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)

Nützliche Befehle

Knotenstatus prüfen:

Cardchaind status 2>&1 | jq .NodeInfo
Cardchaind status 2>&1 | jq .SyncInfo
Cardchaind status 2>&1 | jq .ValidatorInfo

Knotenprotokolle prüfen:

sudo journalctl -fu Cardchaind -o cat

Dienststatus prüfen:

sudo systemctl status Cardchaind 

Dienst neu starten:

sudo systemctl restart Cardchaind 

Dienst anhalten:

sudo systemctl stop Cardchaind 

Dienst starten:

sudo systemctl start Cardchaind 

Neu starten/deaktivieren/aktivieren/aktivieren

sudo systemctl daemon-reload
sudo systemctl disable Cardchaind 
sudo systemctl enable Cardchaind 

Ihr Peer

echo $(Cardchaind tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.cardchaind/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')

Arbeiten mit Schlüsseln

Neuer Schlüssel oder Schlüsselwiederherstellung

Cardchaind keys add Wallet_Name

ODER

Cardchaind keys add Wallet_Name --recover

Alle Schlüssel prüfen

Cardchaind keys list

Saldo prüfen

Cardchaind query bank balances cc...addressjkl1yjgn7z09ua9vms259j

Schlüssel löschen

Cardchaind keys delete Wallet_Name

Schlüssel exportieren

Cardchaind keys export wallet

Schlüssel importieren

Cardchaind keys import wallet wallet.backup

Mit Validator arbeiten

Validator bearbeiten

Cardchaind tx staking edit-validator 
--new-moniker "Your_Moniker" 
--identity "Keybase_ID" 
--details "Your_Description" 
--website "Your_Website" 
--security-contact "Your_Email" 
--chain-id cardtestnet-11 
--commission-rate 0.05 
--from Wallet_Name 
--gas 350000 -y

Ihre Valoper-Adresse

Cardchaind keys show Wallet_Name --bech val

Ihre Valcon-Adresse

Cardchaind tendermint show-address

Informationen über Ihren Validator

Cardchaind query staking validator ccvaloperaddress......

Gefängnis-Informationen

Cardchaind query slashing signing-info $(Cardchaind tendermint show-validator)

Gefängnis aufheben

Cardchaind tx slashing unjail --from Wallet_name --chain-id cardtestnet-11 --gas 350000 -y

Liste der aktiven Prüfer

Cardchaind 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

Liste der deaktivierten Prüfer

Cardchaind 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

Prüfen Sie, ob Ihr Schlüssel mit dem Validator übereinstimmt(Gewinnen - gut, Verlieren - schlecht)

VALOPER=Enter_Your_valoper_Here
[[ $(Cardchaind q staking validator $VALOPER -oj | jq -r .consensus_pubkey.key) = $(Cardchaind status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "nYou winn" || echo -e "nYou losen"

Alle Belohnungen von allen Prüfern ausgeben

Cardchaind tx distribution withdraw-all-rewards --from Wallet_Name --chain-id cardtestnet-11 --gas 350000 -y

Alle Provisionen von Ihrem Prüfer abziehen

Cardchaind tx distribution withdraw-rewards ccvaloper1a........ --from Wallet_Name --gas 350000 --chain-id=cardtestnet-11--commission -y

Delegieren Sie Token an Ihren Prüfer

Cardchaind tx staking delegate ccvalpoer........ "100000000"ubpf --from Wallet_Name --gas 350000 --chain-id=cardtestnet-11 -y

Delegieren Sie Token an einen anderen Prüfer

Cardchaind tx staking delegate ccvalpoer........ "100000000"ubpf de --from Wallet_Name --gas 350000 --chain-id=cardtestnet-11 -y

Token an einen anderen Prüfer übertragen

Cardchaind tx staking redelegate ccvalpoer........ ccvalpoer........ "100000000"ubpf --from Wallet_Name --gas 350000  --chain-id=cardtestnet-11 -y

Entkoppeln Sie Token von Ihrem Validator oder einem anderen Validator

Cardchaind tx staking unbond ccvalpoer........ "100000000"ubpf --from Wallet_Name --gas 350000 --chain-id=cardtestnet-11 -y
Cardchaind tx staking unbond ccvalpoer........ "100000000"ubpf --from Wallet_Name --gas 350000 --chain-id=cardtestnet-11 -y

Übertragung von Token zwischen Wallets

Cardchaind tx bank send ccaddress............ ccaddress........... "1000000000"ubpf --gas 350000 --chain-id=cardtestnet-11 -y

Verwaltung

Alle Angebote anzeigen

Cardchaind query gov proposals

Einen bestimmten Vorschlag anzeigen

Cardchaind query gov proposal 1

Für den Vorschlag stimmen

Cardchaind tx gov vote 1 yes --from Wallet_Name --gas 350000  --chain-id=cardtestnet-11 -y

Dagegen stimmen

Cardchaind tx gov vote 1 no --from Wallet_Name --gas 350000  --chain-id=cardtestnet-11 -y

Enthaltung

Cardchaind tx gov vote 1 abstain --from Wallet_Name --gas 350000  --chain-id=cardtestnet-11 -y

Dagegen stimmen (mit Veto)

Cardchaind tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000  --chain-id=cardtestnet-11 -y

IBC-Übertragung

Cardchaind tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress............ "100000"ubpf --from Your_Crowd_Wallet_Name ---gas 350000 --chain-id=cardtestnet-11 -y