Website: https://stride.zone/
Twitter: https://twitter.com/stride_zone
Blog: https://stride.zone/blog
Github: https://github.com/Stride-Labs/stride/
Discord: https://discord.com/invite/GnKmheRDPV
Kurulum ve Görevler
#Diskinizde yer açın:
rm -rf /root/.stride/data/tx_index.db
#Alttaki komutları tek tek girin ve nodeunuzu yeniden başlatın:
pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="50"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.stride/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.stride/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.stride/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.stride/config/app.toml
sed -i.bak -e "s/indexer *=.*/indexer = \"null\"/g" $HOME/.stride/config/config.toml
systemctl restart strided
#Relayer adınızı Discord adınıza göre değiştirin. Tırnak işaretlerini silmeyin:
RELAYER_NAME='gökay#5690'
#Alttaki komutları node içerisine tek tek girin. Mnemonicleri değiştirirken tırnak işaretini silmeyin:
CHAIN_ID_A='STRIDE-TESTNET-4'
RPC_ADDR_A='stride.stake-take.com:26657'
GRPC_ADDR_A='stride.stake-take.com:9090'
ACCOUNT_PREFIX_A='stride'
TRUSTING_PERIOD_A='8hours'
DENOM_A='ustrd'
MNEMONIC_A='fabric cost state secret vessel excess seminar bonus heavy pulp shy blue tray special brick visit island illegal sign estate cash eye path pony'
CHAIN_ID_B='GAIA'
RPC_ADDR_B='stride.stake-take.com:46657'
GRPC_ADDR_B='stride.stake-take.com:9490'
ACCOUNT_PREFIX_B='cosmos'
TRUSTING_PERIOD_B='8hours'
DENOM_B='uatom'
MNEMONIC_B='fabric cost state secret vessel excess seminar bonus heavy pulp shy blue tray special brick visit island illegal sign estate cash eye path pony'
#Hermes'i kurun:
cd $HOME
wget https://github.com/informalsystems/ibc-rs/releases/download/v1.0.0-rc.1/hermes-v1.0.0-rc.1-x86_64-unknown-linux-gnu.tar.gz
mkdir -p $HOME/.hermes/bin
tar -C $HOME/.hermes/bin/ -vxzf hermes-v1.0.0-rc.1-x86_64-unknown-linux-gnu.tar.gz
echo 'export PATH="$HOME/.hermes/bin:$PATH"' >> $HOME/.bash_profile
source $HOME/.bash_profile
hermes version
#Tamamı tek komut:
sudo tee $HOME/.hermes/config.toml > /dev/null <<EOF
[global]
log_level = 'info'
[mode]
[mode.clients]
enabled = true
refresh = true
misbehaviour = true
[mode.connections]
enabled = false
[mode.channels]
enabled = false
[mode.packets]
enabled = true
clear_interval = 100
clear_on_start = true
tx_confirmation = true
[rest]
enabled = true
host = '127.0.0.1'
port = 3000
[telemetry]
enabled = true
host = '127.0.0.1'
port = 3001
[[chains]]
### CHAIN_A ###
id = '${CHAIN_ID_A}'
rpc_addr = 'http://${RPC_ADDR_A}'
grpc_addr = 'http://${GRPC_ADDR_A}'
websocket_addr = 'ws://${RPC_ADDR_A}/websocket'
rpc_timeout = '10s'
account_prefix = '${ACCOUNT_PREFIX_A}'
key_name = 'wallet'
address_type = { derivation = 'cosmos' }
store_prefix = 'ibc'
default_gas = 100000
max_gas = 2500000
gas_price = { price = 0.0025, denom = '${DENOM_A}' }
gas_multiplier = 1.1
max_msg_num = 30
max_tx_size = 2097152
clock_drift = '5s'
max_block_time = '30s'
trusting_period = '${TRUSTING_PERIOD_A}'
trust_threshold = { numerator = '1', denominator = '3' }
memo_prefix = '${RELAYER_NAME}'
[chains.packet_filter]
policy = 'allow'
list = [
['ica*', '*'], # allow relaying on all channels whose port starts with ica
['transfer', 'channel-0'],
]
[[chains]]
### CHAIN_B ###
id = '${CHAIN_ID_B}'
rpc_addr = 'http://${RPC_ADDR_B}'
grpc_addr = 'http://${GRPC_ADDR_B}'
websocket_addr = 'ws://${RPC_ADDR_B}/websocket'
rpc_timeout = '10s'
account_prefix = '${ACCOUNT_PREFIX_B}'
key_name = 'wallet'
address_type = { derivation = 'cosmos' }
store_prefix = 'ibc'
default_gas = 100000
max_gas = 2500000
gas_price = { price = 0.0025, denom = '${DENOM_B}' }
gas_multiplier = 1.1
max_msg_num = 30
max_tx_size = 2097152
clock_drift = '5s'
max_block_time = '30s'
trusting_period = '${TRUSTING_PERIOD_B}'
trust_threshold = { numerator = '1', denominator = '3' }
memo_prefix = '${RELAYER_NAME}'
[chains.packet_filter]
policy = 'allow'
list = [
['ica*', '*'], # allow relaying on all channels whose port starts with ica
['transfer', 'channel-0'],
]
EOF
#Alttaki komut ile hermesin sağlam çalışıp çalışmadığını kontrol edin
hermes health-check
#Çıktı buna benzer olmalıdır:
2022-07-21T19:38:15.571398Z INFO ThreadId(01) using default configuration from '/root/.hermes/config.toml'
2022-07-21T19:38:15.573884Z INFO ThreadId(01) [STRIDE-TESTNET-4] performing health check...
2022-07-21T19:38:15.614273Z INFO ThreadId(01) chain is healthy chain=STRIDE-TESTNET-4
2022-07-21T19:38:15.614313Z INFO ThreadId(01) [GAIA] performing health check...
2022-07-21T19:38:15.627747Z INFO ThreadId(01) chain is healthy chain=GAIA
Success: performed health check for all chains in the config
#Tek seferde girin:
sudo tee $HOME/.hermes/${CHAIN_ID_A}.mnemonic > /dev/null <<EOF
${MNEMONIC_A}
EOF
#Tek seferde girin:
sudo tee $HOME/.hermes/${CHAIN_ID_B}.mnemonic > /dev/null <<EOF
${MNEMONIC_B}
EOF
#Hermes için cüzdanlarınızı girin. Bir şey değiştirmenize gerek yok olduğu gibi komutları tek tek yapıştırın:
hermes keys add --chain ${CHAIN_ID_A} --mnemonic-file $HOME/.hermes/${CHAIN_ID_A}.mnemonic
#Cosmos adresinizi bir yere kaydedin
hermes keys add --chain ${CHAIN_ID_B} --mnemonic-file $HOME/.hermes/${CHAIN_ID_B}.mnemonic
#Discord'a giriş yaparak hem stride hem de cosmos adresinizle token talep edin:
$faucet-stride:stridexxx
$faucet-atom:cosmosxxx
#Hermes için systemd oluşturun ve başlatın:
sudo tee /etc/systemd/system/hermesd.service > /dev/null <<EOF
[Unit]
Description=hermes
After=network-online.target
[Service]
User=$USER
ExecStart=$(which hermes) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable hermesd
sudo systemctl restart hermesd
#Hermes loglarını kontrol edin:
journalctl -u hermesd -f -o cat
https://stride.explorers.guru explorer'a giriş yapın - Latest Block yazan güncel blok değeridir.
strided status 2>&1 | jq .SyncInfo
Latest_block_height sizin güncel blok değerinizdir. Bunun explorerda gözükenle aynı olması gerekir. Aksi halde yaptığınız işlemler başarılı olmaz. İkisi farklı ise senkronize olmayı beklemekten başka yapacak bir şey yok.
Diğer bir ipucu:
strided status 2>&1 | jq .SyncInfo
Bu komutu 30 saniye aralıklarla girin. Latest_block_height değeri yükselmiyorsa node'unuzu yeniden başlatın. Düşük ram'lerden ve ağ yoğunluğundan dolayı node'unuz takılıyor. Senkronize olmayı beklerken belirli aralıklarla bu kontrolü yapmakta fayda var.
Yeniden başlatma komutu:
systemctl restart strided
Sonra senkronize olmayı bekleyin, ardından işlemlerinizi yapın. Aradaki blok farkına göre saatler sürebilir.
#Liquid Staking (Tx hashi kaydedin):
strided tx stakeibc liquid-stake 9000000 uatom --from CÜZDANİSMİ --chain-id STRIDE-TESTNET-4
#Reedem (Tx hashi kaydedin):
strided tx stakeibc redeem-stake 5000 GAIA COSMOSADRESİ --chain-id STRIDE-TESTNET-4 --from CÜZDANİSMİ -y
#Stride adresinizi öğrenme:
strided keys list
#Claim Kontrol:
strided q records list-user-redemption-record --limit 10000 --output json | jq '.UserRedemptionRecord | map(select(.sender == "STRIDEADRESİNİZ"))'

Eğer false yazıyorsa, true yazmasını bekleyeceğiz ve sonrasında claim işlemine devam edeceğiz. True olması 1 saat'ten 1 güne kadar sürebiliyor.
#Claim sırası kontrol etme:
Epochnumber'a göre claim durumunuzu kontrol edebilirsiniz. Herkesin numarasına göre sıra yavaş yavaş geliyor. Claim = true olduktan sonra çok bekletmeden claim işlemini yapmanız gerekiyor. Yoksa TX kayboluyor.
strided q records list-user-redemption-record --output json | jq --arg WALLET_ADDRESS $STRIDEADRESİNİZ '.UserRedemptionRecord | map(select(.sender == $COSMOSADRESİNİZ))'
#Claim (Tx hashi kaydedin):
strided tx stakeibc claim-undelegated-tokens [host-zone] [epoch] [wallet] --chain-id STRIDE-TESTNET-4 --from CÜZDANİSMİ -y
#Başka validator'e delegasyon yapma. (tx hashi kaydedin):
strided tx staking delegate VALOPERADRESİ 100000ustrd --from CÜZDANİSMİ --chain-id STRIDE-TESTNET-4
#Sorularınız için: Stride Türkiye Telegram