Warden Protocol, Cosmos SDK üzerine inşa edilmiş amaç merkezli bir blok zinciridir.
Özellikler
Temel özellikleri arasında şunlar yer almaktadır:
-
Niyetler: hedef odaklı işlemler.
-
Anahtar zincirleri: esnek anahtar yönetimi.
-
Akıllı sözleşmeler için EVM ve WASM desteği.
Bu özellikler hem geliştiriciler hem de blok zinciri ekosisteminin kullanıcıları için cazip fırsatlar yaratmaktadır. Warden Protokolü, güvenli amaç tabanlı zincirler arası etkileşimleri mümkün kılarak açık ve izinsiz inovasyonu teşvik eder.
Protokol, birlikte çalışabilir blok zinciri çözümleri oluşturmak için Cosmos ve IBC'nin modülerliğinden yararlanır. Odak noktası, varlık yönetimini kaybetme risklerini azaltmak ve farklı anahtar yönetim çözümlerinin entegrasyonunu basitleştirerek dijital varlıklar üzerindeki güvenliği ve kullanıcı kontrolünü büyük ölçüde artırmaktır.
Minimum donanım gereksinimleri:
|
Düğüm tipi |
CPU |
RAM |
Depolama |
|
Testnet |
4 |
8GB |
150GB |
Warden Protokolü Kurulumu
Otomatik Kurulum:
wget -O wardent https://raw.githubusercontent.com/111STAVR111/props/main/Warden/wardent && chmod +x wardent && ./wardent
Manuel kurulum:
Sunucu Hazırlığı:
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 Kurulumu:
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
Derleme (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
Başlatma:
wardend init STAVR_guide
Bir cüzdan oluşturma/geri yükleme:
wardend keys add <walletname>
ИЛИ
wardend keys add <walletname> --recover
Genesis'in indirilmesi:
wget -O $HOME/.warden/config/genesis.json http://135.181.210.171:29/genesis.json
sha256sum $HOME/.warden/config/genesis.json
Minimum gaz fiyatı, eşler ve filtrelerin ayarlanması:
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
Verileri kırpma (isteğe bağlı):
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
İndeksleyiciyi devre dışı bırakma (isteğe bağlı):
indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.warden/config/config.toml
Adres defterini indirme:
wget -O $HOME/.warden/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Warden/addrbook.json"
Bir hizmet dosyası oluşturma:
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 Durum Senkronizasyonu
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 anlık görüntüleri (her 5 saatte bir güncellenir):
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
Başlatılıyor:
sudo systemctl daemon-reload
sudo systemctl enable wardend
sudo systemctl restart wardend && sudo journalctl -u wardend -f -o cat
Doğrulayıcı oluşturma
Aşağıdaki komutu kullanarak yeni bir doğrulayıcı oluşturun:
Açık anahtarı alın
wardend tendermint show-validator --home /root/.warden
Ev dizinine gidin
cd $HOME
nano validator.json
validator.json dosyasını aşağıdakilerle doldurun:
{
"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"
}
Ardından doğrulayıcıyı oluşturmak için komutu çalıştırın:
wardend --home $HOME/.warden tx staking create-validator $HOME/validator.json --from WalletName --chain-id buenavista-1 --fees 500uward -y
Hizmetler ve Araçlar
Bir düğümü kaldırma
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)
Anlık görüntüyü yükleme
Bir anlık görüntüden verileri geri yüklemek için aşağıdaki komutları kullanın:
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
Yararlı Araçlar
-
EXPLORER-T:https://explorer.stavr.tech/Warden-Testnet Dizin Oluşturucu "AÇIK"
-
RPC-T:https://warden.rpc.t.stavr.tech Anlık görüntü aralığı = 100
Tohum-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
Otomatik yükleme betiği-T
wget -O wardent https://raw.githubusercontent.com/111STAVR111/props/main/Warden/wardent && chmod +x wardent && ./wardent
GÜNCELLEME 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
Yararlı komutlar
Bilgi
wardend status 2>&1 | jq .NodeInfo
wardend status 2>&1 | jq .SyncInfo
wardend status 2>&1 | jq .ValidatorInfo
Düğüm günlüklerini kontrol edin
sudo journalctl -fu wardend -o cat
Hizmet durumu
sudo systemctl status wardend
Hizmet yeniden başlatma
sudo systemctl restart wardend
Servis durağı
sudo systemctl stop wardend
Hizmet başlangıcı
sudo systemctl start wardend
Yeniden başlat/bağlantıyı kes/etkinleştir
sudo systemctl daemon-reload
sudo systemctl disable wardend
sudo systemctl enable wardend
Anahtarlarla çalışma
Yeni anahtar veya anahtar kurtarma
wardend keys add Wallet_Name
или
wardend keys add Wallet_Name --recover
Tüm anahtarları kontrol edin
wardend keys list
Bakiye kontrolü
wardend query bank balances addressjkl1yjgn7z09ua9vms259j
Bir anahtarı silme
wardend keys delete Wallet_Name
Dışa aktarma anahtarı
wardend keys export wallet
İçe aktarma anahtarı
wardend keys import wallet wallet.backup
Doğrulayıcı yönetimi
Doğrulayıcıyı Düzenle
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
Valoper adresiniz
wardend keys show Wallet_Name --bech val
Valiniz##### Valcons-adresiniz
wardend tendermint show-address
Doğrulayıcınız hakkında bilgi
wardend query staking validator valoperaddress......
Hapishane Bilgileri
wardend query slashing signing-info $(wardend tendermint show-validator)
Unjail
wardend tx slashing unjail --from Wallet_name --chain-id buenavista-1 --gas 350000 -y
Etkin doğrulayıcıların listesi
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
Etkin olmayan doğrulayıcıların listesi
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
Anahtarınızın doğrulayıcı ile eşleşip eşleşmediğini kontrol etme (Kazan - İyi. Kaybet - Kötü)
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"
Tüm doğrulayıcılardan gelen tüm ödüllerin çıktısı
wardend tx distribution withdraw-all-rewards --from Wallet_Name --chain-id buenavista-1 --gas 350000 -y
Onaylayıcınızdan ödül ve komisyon çıktısı alın
wardend tx distribution withdraw-rewards valoper1amxp0k0hg4edrxg85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --chain-id=buenavista-1 --commission -y
Belirteçlerin doğrulayıcınıza devredilmesi
wardend tx staking delegate Your_valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Belirteçleri başka bir doğrulayıcıya delege etme
wardend tx staking delegate valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Belirteçleri başka bir doğrulayıcıya yeniden tahsis etme
wardend tx staking redelegate Your_valoper........ valoper........ "100000000"uward --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Doğrulayıcınızdan veya başka bir doğrulayıcıdan anbonding tokenleri
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
Tokenları bir cüzdandan başka bir cüzdana aktarma
wardend tx bank send Your_address............ address........... "1000000000000000000"uward --gas 350000 --chain-id=buenavista-1 -y
Oylama yönetimi
Tüm teklifleri görüntüle
wardend query gov proposals
Belirli bir teklifi görüntüleyin
wardend query gov proposal 1
Bir teklif lehine oy vermek ("Evet")
wardend tx gov vote 1 yes --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
Bir teklife karşı oy kullanmak ("Hayır")
wardend tx gov vote 1 no --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
"Çekimser" Oy
wardend tx gov vote 1 abstain --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
"Veto ile Karşı Oy" ("Veto ile Hayır")
wardend tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --chain-id=buenavista-1 -y
IBC transferi
Örnek - 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