Warden Protocol est une blockchain centrée sur les intentions et construite sur le SDK Cosmos.
Caractéristiques
Ses principales caractéristiques sont les suivantes
-
Intents : transactions orientées vers un objectif.
-
Chaînes de clés : gestion flexible des clés.
-
Support EVM et WASM pour les contrats intelligents.
Ces caractéristiques créent des opportunités intéressantes pour les développeurs et les utilisateurs de l'écosystème blockchain. Le protocole Warden encourage l'innovation ouverte et sans permission en permettant des interactions sécurisées entre les chaînes basées sur les intentions.
Le protocole s'appuie sur la modularité de Cosmos et d'IBC pour créer des solutions blockchain interopérables. L'accent est mis sur l'atténuation des risques liés à la perte de la gestion des actifs et sur la simplification de l'intégration de différentes solutions de gestion des clés, ce qui améliore considérablement la sécurité et le contrôle des utilisateurs sur les actifs numériques.
Exigences matérielles minimales :
|
Type de nœud |
CPU |
RAM |
Stockage |
|
Testnet |
4 |
8GB |
150GB |
Installation du protocole Warden
Installation automatique :
wget -O wardent https://raw.githubusercontent.com/111STAVR111/props/main/Warden/wardent && chmod +x wardent && ./wardent
Installation manuelle :
Préparation du serveur :
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 de 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
Build (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
Initialisation :
wardend init STAVR_guide
Création/restauration d'un portefeuille :
wardend keys add <walletname>
ИЛИ
wardend keys add <walletname> --recover
Téléchargement de Genesis :
wget -O $HOME/.warden/config/genesis.json http://135.181.210.171:29/genesis.json
sha256sum $HOME/.warden/config/genesis.json
Définition du prix minimum de l'essence, des pairs et des filtres :
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
Découpage des données (optionnel) :
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
Désactivation de l'indexeur (optionnel) :
indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.warden/config/config.toml
Téléchargement du carnet d'adresses :
wget -O $HOME/.warden/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Warden/addrbook.json"
Création d'un fichier de service :
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
Synchronisation de l'état du testnet Warden
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
Instantanés de Testnet (mis à jour toutes les 5 heures) :
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
Lancement :
sudo systemctl daemon-reload
sudo systemctl enable wardend
sudo systemctl restart wardend && sudo journalctl -u wardend -f -o cat
Création d'un validateur
Créez un nouveau validateur à l'aide de la commande suivante :
Obtenir la clé publique
wardend tendermint show-validator --home /root/.warden
Naviguer vers le répertoire personnel
cd $HOME
nano validator.json
Remplir le fichier validator.json avec ce qui suit :
{
"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"
}
Exécutez ensuite la commande pour créer le validateur :
wardend --home $HOME/.warden tx staking create-validator $HOME/validator.json --from WalletName --chain-id buenavista-1 --fees 500uward -y
Services et outils
Désinstallation d'un nœud
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)
Installation d'un instantané
Utilisez les commandes suivantes pour restaurer les données d'un instantané :
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
Outils utiles
-
EXPLORER-T:https://explorer.stavr.tech/Warden-Testnet Indexeur "ON" (activé)
-
RPC-T:https://warden.rpc.t.stavr.tech Intervalle entre les instantanés = 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
Script d'auto-installation-T
wget -O wardent https://raw.githubusercontent.com/111STAVR111/props/main/Warden/wardent && chmod +x wardent && ./wardent
MISE À JOUR 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
Commandes utiles
Informations
wardend status 2>&1 | jq .NodeInfo
wardend status 2>&1 | jq .SyncInfo
wardend status 2>&1 | jq .ValidatorInfo
Vérifier les journaux de nœuds
sudo journalctl -fu wardend -o cat
Statut du service
sudo systemctl status wardend
Redémarrage du service
sudo systemctl restart wardend
Arrêt du service
sudo systemctl stop wardend
Démarrage du service
sudo systemctl start wardend
Redémarrage/déconnexion/activation
sudo systemctl daemon-reload
sudo systemctl disable wardend
sudo systemctl enable wardend
Travailler avec des clés
Nouvelle clé ou récupération de clé
wardend keys add Wallet_Name
или
wardend keys add Wallet_Name --recover
Vérification de toutes les clés
wardend keys list
Vérification de l'équilibre
wardend query bank balances addressjkl1yjgn7z09ua9vms259j
Suppression d'une clé
wardend keys delete Wallet_Name
Exporter une clé
wardend keys export wallet
Importer une clé
wardend keys import wallet wallet.backup
Gestion des validateurs
Modifier le validateur
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
Votre adresse Valoper
wardend keys show Wallet_Name --bech val
Votre adresse Val##### Votre adresse Valcons
wardend tendermint show-address
Informations sur votre validateur
wardend query staking validator valoperaddress......
Informations sur la prison
wardend query slashing signing-info $(wardend tendermint show-validator)
Unjail
wardend tx slashing unjail --from Wallet_name --chain-id buenavista-1 --gas 350000 -y
Liste des validateurs actifs
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 des validateurs inactifs
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
Vérification de la correspondance entre votre clé et le validateur (Gagnant - Bon. Perdant - Mauvais)
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"
Afficher toutes les récompenses de tous les validateurs
wardend tx distribution withdraw-all-rewards --from Wallet_Name --chain-id buenavista-1 --gas 350000 -y
Récupérer les récompenses et les commissions de votre validateur
wardend tx distribution withdraw-rewards valoper1amxp0k0hg4edrxg85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --chain-id=buenavista-1 --commission -y
Délégation de jetons à votre validateur
wardend tx staking delegate Your_valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Délégation de jetons à un autre validateur
wardend tx staking delegate valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Réattribution de jetons à un autre validateur
wardend tx staking redelegate Your_valoper........ valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Lier des jetons de votre validateur ou d'un autre validateur
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
Transfert de jetons d'un portefeuille à un autre portefeuille
wardend tx bank send Your_address............ address........... "1000000000000000000"uward --gas 350000 --chain-id=buenavista-1 -y
Gestion des votes
Voir toutes les propositions
wardend query gov proposals
Voir une proposition spécifique
wardend query gov proposal 1
Voter en faveur d'une proposition ("Oui")
wardend tx gov vote 1 yes --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Voter contre une proposition ("Non")
wardend tx gov vote 1 no --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Voter "abstention" ("Abstain")
wardend tx gov vote 1 abstain --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Voter "Contre avec Veto" ("Non avec Veto")
wardend tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Transfert du BAC
Exemple - Warden -> Osmosis
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