Das Warden-Protokoll ist eine auf dem Cosmos SDK aufbauende Blockchain, die sich auf Intentionen konzentriert.
Merkmale
Zu den wichtigsten Merkmalen gehören:
-
Intents: zielgerichtete Transaktionen.
-
Keychains: flexible Schlüsselverwaltung.
-
EVM- und WASM-Unterstützung für intelligente Verträge.
Diese Funktionen schaffen attraktive Möglichkeiten sowohl für Entwickler als auch für Nutzer des Blockchain-Ökosystems. Das Warden-Protokoll fördert offene und erlaubnisfreie Innovationen, indem es sichere Intent-basierte Cross-Chain-Interaktionen ermöglicht.
Das Protokoll nutzt die Modularität von Cosmos und IBC, um interoperable Blockchain-Lösungen zu schaffen. Der Schwerpunkt liegt auf der Minderung der Risiken, die mit dem Verlust der Verwaltung von Vermögenswerten einhergehen, und der Vereinfachung der Integration verschiedener Schlüsselverwaltungslösungen, wodurch die Sicherheit und die Benutzerkontrolle über digitale Vermögenswerte erheblich verbessert werden.
Mindestanforderungen an die Hardware:
|
Node-Typ |
CPU |
RAM |
Speicher |
|
Testnet |
4 |
8GB |
150GB |
Installation des Warden-Protokolls
Automatische Installation:
wget -O wardent https://raw.githubusercontent.com/111STAVR111/props/main/Warden/wardent && chmod +x wardent && ./wardent
Manuelle Installation:
Server-Vorbereitung:
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
Go 1.21.6 Installation:
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
Aufbau (02.09.24):
cd $HOME && mkdir -p go/bin/
wget https://github.com/warden-protocol/wardenprotocol/releases/download/v0.4.2/wardend_Linux_x86_64.zip
unzip wardend_Linux_x86_64.zip
rm -rf wardend_Linux_x86_64.zip
chmod +x wardend
mv wardend $HOME/go/bin/wardend
wardend version --long | grep -e version -e commit
Initialisierung:
wardend init STAVR_guide
Erstellen/Wiederherstellen einer Brieftasche:
wardend keys add <walletname>
ИЛИ
wardend keys add <walletname> --recover
Herunterladen von Genesis:
wget -O $HOME/.warden/config/genesis.json http://135.181.210.171:29/genesis.json
sha256sum $HOME/.warden/config/genesis.json
Einstellen von Mindestgaspreis, Peers und Filtern:
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = "0.0025uward"/;" ~/.warden/config/app.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = "$external_address:26656"/" $HOME/.warden/config/config.toml
peers=""
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$peers"/" $HOME/.warden/config/config.toml
seeds=""
sed -i.bak -e "s/^seeds =.*/seeds = "$seeds"/" $HOME/.warden/config/config.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.warden/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 50/g' $HOME/.warden/config/config.toml
Daten trimmen (optional):
pruning="custom"
pruning_keep_recent="1000"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = "$pruning"/" $HOME/.warden/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = "$pruning_keep_recent"/" $HOME/.warden/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = "$pruning_keep_every"/" $HOME/.warden/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = "$pruning_interval"/" $HOME/.warden/config/app.toml
Deaktivieren des Indexers (optional):
indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.warden/config/config.toml
Herunterladen des Adressbuchs:
wget -O $HOME/.warden/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Warden/addrbook.json"
Erstellen einer Servicedatei:
sudo tee /etc/systemd/system/wardend.service > /dev/null <<EOF
[Unit]
Description=wardend
After=network-online.target
[Service]
User=$USER
ExecStart=$(which wardend) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
Warden Testnet-Status-Synchronisation
SNAP_RPC="https://warden.rpc.t.stavr.tech:443"
sed -i.bak -e "s/^seeds *=.*/seeds = "$SEEDS"/; s/^persistent_peers *=.*/persistent_peers = "$PEERS"/" $HOME/.warden/config/config.toml
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/.warden/config/config.toml;
wardend tendermint unsafe-reset-all --home $HOME/.warden
wget -O $HOME/.warden/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Warden/addrbook.json"
sudo systemctl restart wardend && journalctl -u wardend -f -o cat
Testnet-Schnappschüsse (alle 5 Stunden aktualisiert):
cd $HOME
apt install lz4
sudo systemctl stop wardend
cp $HOME/.warden/data/priv_validator_state.json $HOME/.warden/priv_validator_state.json.backup
rm -rf $HOME/.warden/data
curl -o - -L https://warden-t.snapshot.stavr.tech/warden-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.warden --strip-components 2
mv $HOME/.warden/priv_validator_state.json.backup $HOME/.warden/data/priv_validator_state.json
wget -O $HOME/.warden/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Warden/addrbook.json"
sudo systemctl restart wardend && journalctl -u wardend -f -o cat
Starten:
sudo systemctl daemon-reload
sudo systemctl enable wardend
sudo systemctl restart wardend && sudo journalctl -u wardend -f -o cat
Erstellen eines Validators
Erstellen Sie einen neuen Validator mit dem folgenden Befehl:
Abrufen des öffentlichen Schlüssels
wardend tendermint show-validator --home /root/.warden
Navigieren Sie zum Home-Verzeichnis
cd $HOME
nano validator.json
Füllen Sie die Datei validator.json mit den folgenden Angaben:
{
"pubkey": {"#pubkey"},
"amount": "1000000uward",
"moniker": "STAVR_guide",
"identity": "",
"website": "",
"security": "",
"details": "",
"commission-rate": "0.05",
"commission-max-rate": "0.2",
"commission-max-change-rate": "0.2",
"min-self-delegation": "1"
}
Führen Sie dann den Befehl aus, um den Validator zu erstellen:
wardend --home $HOME/.warden tx staking create-validator $HOME/validator.json --from WalletName --chain-id buenavista-1 --fees 500uward -y
Dienste und Tools
Deinstallation eines Knotens
sudo systemctl stop wardend
sudo systemctl disable wardend
rm /etc/systemd/system/wardend.service
sudo systemctl daemon-reload
cd $HOME
rm -rf wardenprotocol
rm -rf .warden
rm -rf $(which wardend)
Installieren eines Snapshots
Verwenden Sie die folgenden Befehle, um Daten aus einem Snapshot wiederherzustellen:
cd $HOME
apt install lz4
sudo systemctl stop wardend
cp $HOME/.warden/data/priv_validator_state.json $HOME/.warden/priv_validator_state.json.backup
rm -rf $HOME/.warden/data
curl -o - -L https://warden-t.snapshot.stavr.tech/warden-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.warden --strip-components 2
mv $HOME/.warden/priv_validator_state.json.backup $HOME/.warden/data/priv_validator_state.json
wget -O $HOME/.warden/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Warden/addrbook.json"
sudo systemctl restart wardend && journalctl -u wardend -f -o cat
Nützliche Tools
-
EXPLORER-T:https://explorer.stavr.tech/Warden-Testnet Indexer "EIN"
-
RPC-T:https://warden.rpc.t.stavr.tech Snapshot-Intervall = 100
Seed-T
f6fbded10338c1fed764c656a8968b648922b621@warden-t.seed.stavr.tech:23316
Addrbook-T
wget -O $HOME/.warden/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Warden/addrbook.json"
Genesis-T
wget -O $HOME/.warden/config/genesis.json http://135.181.210.171:29/genesis.json
Auto-Installations-Skript-T
wget -O wardent https://raw.githubusercontent.com/111STAVR111/props/main/Warden/wardent && chmod +x wardent && ./wardent
AKTUALISIERUNG 02.09.24
cd $HOME
wget https://github.com/warden-protocol/wardenprotocol/releases/download/v0.4.2/wardend_Linux_x86_64.zip
unzip wardend_Linux_x86_64.zip
rm -rf wardend_Linux_x86_64.zip
chmod +x wardend
mv wardend $(which wardend)
wardend version --long | grep -e commit -e version
#commit: 0bfb022a96b5da6e7cf5c348bdb17d0d4d62195b
#version: 0.4.2
sudo systemctl restart wardend && sudo journalctl -fu wardend -o cat
Nützliche Befehle
Informationen
wardend status 2>&1 | jq .NodeInfo
wardend status 2>&1 | jq .SyncInfo
wardend status 2>&1 | jq .ValidatorInfo
Knotenprotokolle prüfen
sudo journalctl -fu wardend -o cat
Status des Dienstes
sudo systemctl status wardend
Neustart des Dienstes
sudo systemctl restart wardend
Dienst stoppen
sudo systemctl stop wardend
Dienst starten
sudo systemctl start wardend
Neustart/Trennung/Aktivierung
sudo systemctl daemon-reload
sudo systemctl disable wardend
sudo systemctl enable wardend
Arbeiten mit Schlüsseln
Neuer Schlüssel oder Schlüsselwiederherstellung
wardend keys add Wallet_Name
или
wardend keys add Wallet_Name --recover
Alle Schlüssel prüfen
wardend keys list
Saldo-Prüfung
wardend query bank balances addressjkl1yjgn7z09ua9vms259j
Löschen eines Schlüssels
wardend keys delete Wallet_Name
Schlüssel exportieren
wardend keys export wallet
Schlüssel importieren
wardend keys import wallet wallet.backup
Validator-Verwaltung
Validator bearbeiten
wardend tx staking edit-validator
--new-moniker "Your_Moniker"
--identity "Keybase_ID"
--details "Your_Description"
--website "Your_Website"
--security-contact "Your_Email"
--chain-id buenavista-1
--commission-rate 0.05
--from Wallet_Name
--gas 350000 -y
Ihre Valoper-Adresse
wardend keys show Wallet_Name --bech val
Ihr Val##### Ihre Valcons-Adresse
wardend tendermint show-address
Informationen über Ihren Validator
wardend query staking validator valoperaddress......
Knast-Infos
wardend query slashing signing-info $(wardend tendermint show-validator)
Nicht inhaftieren
wardend tx slashing unjail --from Wallet_name --chain-id buenavista-1 --gas 350000 -y
Liste der aktiven Prüfer
wardend 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 inaktiven Prüfer
wardend 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, ob Ihr Schlüssel mit dem Validator übereinstimmt (Gewinnen - Gut. Verlieren - Schlecht)
VALOPER=Enter_Your_valoper_Here
[[ $(wardend q staking validator $VALOPER -oj | jq -r .consensus_pubkey.key) = $(wardend status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "nYou winn" || echo -e "nYou losen"
Ausgabe aller Rewards von allen Validierern
wardend tx distribution withdraw-all-rewards --from Wallet_Name --chain-id buenavista-1 --gas 350000 -y
Ausgabe von Rewards und Provisionen von Ihrem Prüfer
wardend tx distribution withdraw-rewards valoper1amxp0k0hg4edrxg85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --chain-id=buenavista-1 --commission -y
Delegieren von Token an Ihren Prüfer
wardend tx staking delegate Your_valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Delegieren von Token an einen anderen Prüfer
wardend tx staking delegate valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Neuzuweisung von Token an einen anderen Prüfer
wardend tx staking redelegate Your_valoper........ valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Anbinden von Token von Ihrem Validator oder einem anderen Validator
wardend tx staking unbond Your_valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
wardend tx staking unbond valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Übertragung von Token von einer Wallet zu einer anderen Wallet
wardend tx bank send Your_address............ address........... "1000000000000000000"uward --gas 350000 --chain-id=buenavista-1 -y
Verwaltung von Abstimmungen
Alle Vorschläge anzeigen
wardend query gov proposals
Einen bestimmten Vorschlag anzeigen
wardend query gov proposal 1
Für einen Vorschlag stimmen ("Ja")
wardend tx gov vote 1 yes --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Gegen einen Vorschlag stimmen ("Nein")
wardend tx gov vote 1 no --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Abstimmung "Enthaltung"
wardend tx gov vote 1 abstain --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Abstimmung mit "Nein mit Veto" ("No with Veto")
wardend tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
IBC-Übertragung
Beispiel - Aufseher -> Osmose
wardend tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress............ "100000"uward --from Warden_Wallet_Name ---gas 350000 --fees 7000"uward" --chain-id=buenavista-1 -y