Solana Testnet Validator - Kesintisiz Taşıma

🚀 Kesintisiz Taşıma Prosedürü

Bu kılavuz, mevcut bir Solana testnet validatörünün kesinti olmadan yeni bir sunucuya nasıl taşınacağını açıklar.

Ön Koşullar

Aşağıdaki iki validatör düğümünün önceden kurulmuş olduğundan emin olun:
  1. Aktif Testnet Validatör Düğümü (Kaynak)
  2. Yeni Testnet Validatör Düğümü (Hedef)
⚠️ Her iki düğüm de slv v init komutuyla kurulmuş olmalıdır.
Kullanılabilir bir yedek sunucunuz olduğundan emin olun. Yedek sunucunuz yoksa bu prosedürü uygulamak aktif validatörünüzü durdurabilir ve sistemin çökmesine neden olabilir.
Her iki düğüm de en son slota tamamen senkronize olmalıdır (solana catchup ile doğrulayın; slot farkı 0 olmalıdır).
Bu örnekte validatör düğümleri şu şekilde adlandırılmıştır:
  • Kaynak (Aktif, From) Adı: main-node
  • Hedef (Yeni, To) Adı: spare-node
⚠️ IP adresleri (ansible_host) ve adlar dışında her iki düğümün yapılandırması aynı olmalıdır.
Her iki düğüm için kullanılan açık anahtarlar:
yaml
identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV

Yeni Yedek Düğümün Kurulumu

Yeni yedek düğümü şu komutu çalıştırarak kurun:
bash
slv v init
.
.
? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
? Enter Inventory Name (FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV) › epics-spare-node
? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key › oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
? Please Enter Your Vote Account's Authority Key › hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV

Hedef Düğümün Dağıtılması ve Senkronizasyonu

Önce hedef düğümü dağıtın:
bash
slv v deploy -n testnet -p spare-node
Senkronizasyonun tamamlandığını ve slot farkının 0 olduğunu doğrulayın.

Kaynak ve Hedef Düğümlerin Yapılandırmasını Doğrulayın

Her iki düğümün yapılandırmasının aynı olduğunu şu komutla doğrulayın:
bash
cat ~/.slv/inventory.testnet.validators.yml
⚠️ IP adresi (ansible_host) ve ad dışında her iki düğümün ayarları aynı olmalıdır.
yaml
testnet_validators:
  hosts:
    main-node:
      name: main-node
      ansible_host: XXX.XXX.XXX.XXX
      ansible_user: solv
      ansible_ssh_private_key_file: ~/.ssh/id_rsa
      identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
      vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
      authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV
      validator_type: agave
    spare-node:
      name: spare-node
      ansible_host: YYY.YYY.YYY.YYY
      ansible_user: solv
      ansible_ssh_private_key_file: ~/.ssh/id_rsa
      identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
      vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
      authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV
      validator_type: agave

Validatör Düğümü Taşımasının Yürütülmesi

Düğüm taşımasını aşağıdaki komutlarla yürütün:

1. Solana Ağını Seçin

bash
slv v switch
? Select Solana Network (testnet)
❯ testnet
  mainnet

2. Kaynak Validatörün Adını Girin

bash
✨ Switching Testnet Validator Identity...
? From Validator Name › main-node

3. Hedef Validatörün Adını Girin

bash
? To Validator Name › spare-node
Taşıma başarılı olduğunda aşağıdakine benzer bir çıktı görürsünüz:
bash
PLAY RECAP ********************************************************************
main-node : ok=3 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
spare-node : ok=4 changed=3 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0

Successfully swapped hosts spare-node and main-node in testnet_validators
✅ Successfully Switched Validator Identity
Validatör düğümünüzün taşınması artık tamamlandı.