Stride - Validator Setup (Bahasa Indonesia ๐Ÿ‡ฎ๐Ÿ‡ฉ)

ยท

7 min read

Stride - Validator Setup (Bahasa Indonesia ๐Ÿ‡ฎ๐Ÿ‡ฉ)

Perisapan menjalankan Validator!

Seperti kebanyakan hardware Cosmos SDK pada umumnya, berikut adalah spesifikasi "minimal" untuk menjalankan stride validator.

Spesifikasi minimal yang dibutuhkan

  • 4x CPUs; lebih cepat clock speed, lebih baik.
  • 8GB RAM
  • 100GB penyimpanan (SSD atau NVME)
  • Permanen koneksi internet (trafik yang dibutuhkan untuk testnet; 10Mbps itu sudah cukup banyak - akan tetapi untuk produksi blok setidaknya 100Mbps)

Spesifikasi yang disarankan

  • 4x CPUs; lebih cepat clock speed, lebih baik.
  • 32GB RAM
  • 200GB penyimpanan (SSD atau NVME)
  • Permanen koneksi internet (trafik yang dibutuhkan untuk testnet; 10Mbps itu sudah cukup banyak - akan tetapi untuk produksi blok setidaknya 100Mbps)

Persiapan Menjalankan Stride Fullnode*

Opsi ke 1 (otomatis)

Pengguna dapat menjalankan stride fullnode dalam hitungan menit dengan menggunakan skrip otomatis dibawah. jangan lupa masukkan nama validatormu!

wget -O stride.sh https://raw.githubusercontent.com/nodesxploit/testnet/main/stride/stride.sh && chmod +x stride.sh && ./stride.sh

Opsi ke 2 (manual)

Pengguna dapat menjalankan fullnode secara manual dengan cara mengikuti langkah-langkah di bawah ini

Pengaturan Variabel

Di sini pengguna harus memasukkan nama moniker (validator) yang nantinya akan terlihat di explorer

NODENAME=<MONIKER>

Simpan lalu impor variabel ke sistem

STRIDE_PORT=16
echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
    echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export STRIDE_CHAIN_ID=STRIDE-TESTNET-2" >> $HOME/.bash_profile
echo "export STRIDE_PORT=${STRIDE_PORT}" >> $HOME/.bash_profile
source $HOME/.bash_profile

Perbarui paket

sudo apt update && sudo apt upgrade -y

Menginstall dependensi

sudo apt install curl build-essential git wget jq make gcc tmux chrony -y

Menginstall Go!

if ! [ -x "$(command -v go)" ]; then
  ver="1.18.2"
  cd $HOME
  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" >> ~/.bash_profile
  source ~/.bash_profile
fi

Unduh Binari

cd $HOME
git clone https://github.com/Stride-Labs/stride.git
cd stride
git checkout 3cb77a79f74e0b797df5611674c3fbd000dfeaa1
make build
sudo cp $HOME/stride/build/strided /usr/local/bin

Konfigurasi Aplikasi

strided config chain-id $STRIDE_CHAIN_ID
strided config keyring-backend test
strided config node tcp://localhost:${STRIDE_PORT}657

Inisiai Aplikasi

strided init $NODENAME --chain-id $STRIDE_CHAIN_ID

Unduh genesis dan addrbook

wget -qO $HOME/.stride/config/genesis.json "https://raw.githubusercontent.com/Stride-Labs/testnet/main/poolparty/genesis.json"

Atur Seed dan Peers

SEEDS="c0b278cbfb15674e1949e7e5ae51627cb2a2d0a9@seedv2.poolparty.stridenet.co:26656"
PEERS="6a9c9871d115c97acc56cb47aa96ccac1728d42d@51.75.135.47:16656,02073421dfeb1fc9426698250db8db68a60b3865@35.184.123.9:26656,efb44e5336800b589053a13f2ee94d3d1cfe19d8@65.108.62.95:12656,11cf69772d08210baa7eff2728efb190cc8103db@46.146.231.96:26656,0c5521e59c227726888504e3f857beb5973d113c@65.108.76.44:11523,e981b87ff961e991f0915301e50f408b33bfdd60@143.198.43.17:16656,c9975b81d7f3afdf5179651c76a013baf70d13ce@62.171.172.182:16656,d7b72c668e32bf1e5efa7d196047188d5a6f1db8@65.108.231.252:46656,73f15ad99a0ac6e60cda2b691bc5b71cd7f221bc@141.95.124.151:20086,f4e9b46abb91c1cf328e28cc195964958ff621b9@65.108.45.200:26959,f6e804d1d509db730de171cf1d0553d701c5140f@142.132.235.215:16656,830a6dcc085dbe37ba0d6c15ac2b10c95d5ba5c3@158.247.231.2:26656,03a532495fc6a2ec20f29318aeb6c9a54286312a@89.163.221.56:26656,ae03ae125b456b4d8df8658917910ec259e14f8b@149.102.131.174:16656,1c06803eb8dda04473f2a5d8419f26126d6d1b09@89.58.45.204:26656,be60859ea3cc6e4d37d50c81c1841355b6885109@86.48.2.79:26656,05313ff7326221035692e5c43198d13ee9079cc7@116.203.47.199:26656,fdcbb0a1d58e4bb934606abaa0e7eb9fc8ef3227@159.223.231.90:16656,c95397b6cc5282a1525bef49bcdd3119847f324e@149.102.139.103:26656,4aed611d0f9758d2362c7d28f067eb6ecd833927@147.182.250.27:16656,dfdc971008bbc3910bcd71855d229e19b8534dbf@159.223.203.149:16656,bb3daec1234c4cbd18b26b13ab9c1db8fbd17f83@38.242.146.249:16656,89fc167903c6f8afd519cbc8cc1542ac6467f911@135.181.133.248:11656,3e17bda1c34f025b8397b5baeaef5000c4c21ddd@213.239.213.179:26656,3e8741d3ae96e08439e7da308ebf1e6651acb02a@167.71.77.205:16656,a3afae256ad780f873f85a0c377da5c8e9c28cb2@54.219.207.30:26656,1aa3c20fd33fd1ece537e695fd67c49efe9e806d@34.125.11.162:26656,4e26c5b8206c116192ceb7f6b5efa176312198ad@185.205.244.117:26656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.stride/config/config.toml

Atur kustom port

sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${STRIDE_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${STRIDE_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${STRIDE_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${STRIDE_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${STRIDE_PORT}660\"%" $HOME/.stride/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${STRIDE_PORT}317\"%; s%^address = \":8080\"%address = \":${STRIDE_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${STRIDE_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${STRIDE_PORT}091\"%" $HOME/.stride/config/app.toml

Pemangkasan konfigurasi

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

Tetapkan harga gas minimum dan komitmen batas waktu

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0ustrd\"/" $HOME/.stride/config/app.toml

Aktifkan prometheus

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.stride/config/config.toml

Pengaturan Ulang

strided tendermint unsafe-reset-all --home $HOME/.stride

Membuat Servis

sudo tee /etc/systemd/system/strided.service > /dev/null <<EOF
[Unit]
Description=stride
After=network-online.target

[Service]
User=$USER
ExecStart=$(which strided) start --home $HOME/.stride
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Daftar dan mulai jalankan servis

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

Pasca Pemasangan

Ketika instalasi selesai, silakan muat variabel ke dalam sistem

source $HOME/.bash_profile

Selanjutnya Anda harus memastikan validator Anda menyinkronkan blok. Anda dapat menggunakan perintah di bawah ini untuk memeriksa status sinkronisasi.

strided status 2>&1 | jq .SyncInfo

Membuat dompet

Untuk membuat wallet baru, anda dapat menggunakan perintah di bawah ini. Jangan lupa untuk menyimpan mnemonic.

strided keys add $WALLET

(OPSIONAL) Untuk memulihkan dompet Anda menggunakan seed phrase

strided keys add $WALLET --recover

Untuk mendapatkan daftar wallet saat ini

strided keys list

Menyimpan informasi dompet

Tambahkan dompet dan alamat valoper ke dalam variabel

STRIDE_WALLET_ADDRESS=$(strided keys show $WALLET -a)
STRIDE_VALOPER_ADDRESS=$(strided keys show $WALLET --bech val -a)
echo 'export STRIDE_WALLET_ADDRESS='${STRIDE_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export STRIDE_VALOPER_ADDRESS='${STRIDE_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Danai dompet Anda

Untuk membuat validator, pertama-tama Anda perlu mendanai dompet Anda dengan token testnet. Untuk mengisi ulang dompet Anda, bergabunglah dengan Stride discord server dan arahkan ke:

  • #token-faucet untuk meminta tes token

Untuk meminta faucet cukup gunakan command dibawah

$faucet-stride:<STRIDE_WALLET_ADDRESS>

Membuat validator

Sebelum membuat validator, pastikan bahwa Anda memiliki setidaknya 1 strd (1 strd sama dengan 1000000 ustrd) dan node Anda wajib sinkron ke blok terakhir

Untuk memeriksa saldo dompet Anda:

strided query bank balances $STRIDE_WALLET_ADDRESS

Jika dompet Anda tidak menunjukkan saldo apa pun, mungkin node Anda masih melakukan sinkronisasi. Harap tunggu sampai selesai untuk menyinkronkan dan kemudian lanjutkan

Untuk membuat validator Anda, jalankan perintah di bawah ini

strided tx staking create-validator \
  --amount 10000000ustrd \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.07" \
  --min-self-delegation "1" \
  --pubkey  $(strided tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $STRIDE_CHAIN_ID

Operasi dengan liquid staking

Tambahkan liquid stake

Liquid stake ATOM Anda di Stride untuk stATOM. Berikut adalah contoh cara liquid stake

strided tx stakeibc liquid-stake 1000 uatom --from $WALLET --chain-id $STRIDE_CHAIN_ID

Catatan: jika Anda cairkan taruhan 1000 uatom, Anda mungkin hanya mendapatkan 990 (bisa lebih atau kurang) stATOM sebagai imbalannya! Ini karena cara kerja nilai tukar kami. 990 stATOM Anda masih bernilai 1000 uatom (atau lebih, saat Anda mengumpulkan hadiah staking!)

Tebus Stake

Setelah mendapatkan beberapa reward staking, Anda dapat melepaskan token Anda. Saat ini, periode unbonding di testnet Gaia (Cosmos Hub) kami adalah sekitar 30 menit.

strided tx stakeibc redeem-stake 1000 GAIA <COSMOS_ADDRESS_YOU_WANT_TO_REDEEM_TO> --chain-id $STRIDE_CHAIN_ID --from $WALLET

Periksa apakah token dapat diklaim

Jika Anda ingin melihat apakah token Anda siap untuk diklaim, cari UserRedemptionRecord Anda yang dikunci oleh <your_stride_account>.

strided q records list-user-redemption-record --limit 10000 --output json | jq --arg WALLET_ADDRESS "$STRIDE_WALLET_ADDRESS" '.UserRedemptionRecord | map(select(.sender == $WALLET_ADDRESS))'

Jika record Anda memiliki atribut isClaimable=true, maka record tersebut siap untuk diklaim!

Klaim Token

Setelah token Anda terlepas, token tersebut dapat diklaim dengan memicu proses klaim.

wget -qO claim.sh https://raw.githubusercontent.com/nodesxploit/testnet/main/stride/tools/claim.sh && chmod +x claim.sh
./claim.sh $STRIDE_WALLET_ADDRESS

Catatan: fungsi ini memicu klaim dalam antrean FIFO, yang berarti jika klaim Anda berada di urutan ke-20, Anda harus memproses klaim lain sebelum melihat token Anda muncul di akun Anda.

Menghitung waktu sinkronisasi

Script ini akan membantu Anda memperkirakan berapa banyak waktu yang dibutuhkan untuk sepenuhnya menyinkronkan node Anda. Script ini mengukur blok rata-rata per menit yang sedang disinkronkan selama periode 5 menit dan kemudian memberi Anda hasil.

wget -O synctime.py https://raw.githubusercontent.com/nodesxploit/testnet/main/stride/tools/synctime.py && python3 ./synctime.py

Cek kunci validator

[[ $(strided q staking validator $STRIDE_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(strided status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

Mendapatkan list validator

strided 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

Mendapatkan list peers mana yang sudah terhubung

curl -sS http://localhost:${STRIDE_PORT}657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'

Perintah yang membantu

Manajemen Servis

Cek log

journalctl -fu strided -o cat

Mulai Servis

sudo systemctl start strided

Hentikan Servis

sudo systemctl stop strided

Mulai Ulang Serivice

sudo systemctl restart strided

Informasi Node

Informasi Sinkronasi

strided status 2>&1 | jq .SyncInfo

Informasi Validator

strided status 2>&1 | jq .ValidatorInfo

Informasi Node

strided status 2>&1 | jq .NodeInfo

Menampilkan ID Node

strided tendermint show-node-id

Daftar Perintah untuk pengaturan dompet

Daftar wallet

strided keys list

Memulihkan wallet

strided keys add $WALLET --recover

Menghapus wallet

strided keys delete $WALLET

Mendapatkan informasi saldo dompet

strided query bank balances $STRIDE_WALLET_ADDRESS

Mengirim dana

strided tx bank send $STRIDE_WALLET_ADDRESS <TO_STRIDE_WALLET_ADDRESS> 10000000ustrd

Pemungutan Suara

strided tx gov vote 1 yes --from $WALLET --chain-id=$STRIDE_CHAIN_ID

Pengintaian, Pendelegasian dan Imbalan

Delegasi

strided tx staking delegate $STRIDE_VALOPER_ADDRESS 10000000ustrd --from=$WALLET --chain-id=$STRIDE_CHAIN_ID --gas=auto

Mendelegasikan kembali dari validator ke validator lain

strided tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 10000000ustrd --from=$WALLET --chain-id=$STRIDE_CHAIN_ID --gas=auto

Menarik seluruh hadiah

strided tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$STRIDE_CHAIN_ID --gas=auto

Menarik seluruh hadiah dengan komisi

strided tx distribution withdraw-rewards $STRIDE_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$STRIDE_CHAIN_ID

Manajemen Validator

Mengubah informasi validator

strided tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=<your_keybase_id> \
  --website="<your_website>" \
  --details="<your_validator_description>" \
  --chain-id=$STRIDE_CHAIN_ID \
  --from=$WALLET

Unjail validator

strided tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$STRIDE_CHAIN_ID \
  --gas=auto

Hapus Node

Perintah ini akan sepenuhnya menghapus node dari server. Gunakan dengan risiko Anda sendiri!

sudo systemctl stop strided
sudo systemctl disable strided
sudo rm /etc/systemd/system/stride* -rf
sudo rm $(which strided) -rf
sudo rm $HOME/.stride* -rf
sudo rm $HOME/stride -rf
sed -i '/STRIDE_/d' ~/.bash_profile
ย