SLV - AI Agent Kit for Solana Devs

Solana Mainnet Validator - Zero Downtime Migration

Zero Downtime Migration Prosedürü

Bu kılavuz, mevcut bir varlığa nasıl göç edeceğini açıklıyor Solana mainnet, alt süre olmadan yeni bir sunucuya doğru doğrulayıcı.

Önlemler Önlemler

Aşağıdaki iki doğrulama düğümünün zaten ayarlandığını sağlayın:
  1. Active Mainnet Validator Node (Kaynak, From)
  2. Yeni Anasayfanet Geçerlikatörü Node (Destination, To)
Her iki düğüm de kullanarak ayarlanmalıdır slv v init Komut.
Zaten mevcut bir yedek sunucuya sahip olduğunuzdan emin olun. Eğer bir yedek sunucuya sahip değilseniz, bu prosedür aktif geçerlicinizi durdurabilir, bir sistem kazasından kaynaklanan bir sistem kazasından emin olabilirsiniz.
Her iki düğüm de son slota tamamen senkronize edilmelidir (daha sonra da bunu yapmak). solana catchup komut; slot farkı olmalıdır 0).
Bu örnekte, geçerli olan düğümler aşağıdaki gibi adlandırılır:
  • Kaynak (Active, From) Ad: main-node
  • Destination (Yeni, To) Name: spare-node
Her iki düğüm de aynı konfigürasyonlara sahip olmalıdır, hariç IP adresler (aible host) ve isimler.
Her iki düğüm için kullanılan halk anahtarları:
yaml
identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV

Yeni Yedek Node'yi kurmak

Yeni yedek düğümü yürütme ile kurmak:
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

İşsizlik ve Hedefi Anlamak

Önce varış yeri işe alın:
bash
slv v deploy -n mainnet -p spare-node
senkronizasyonu doğrulayın ve slot farkı 0.

Kaynak ve Hedefin Belirlenmesi

Her iki düğüm için yapılandırmaları onaylayın:
bash
cat ~/.slv/inventory.mainnet.validators.yml
Her iki düğüm de aynı ayarları olmalıdır, hariç ansible_host (IP adres) ve name.
yaml
mainnet_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
      ...

Geçerlilikçi Node Migration

Aşağıdaki komutlarla göç etmeyi başar:

1. seçin 1. Solana Ağ Ağı Ağı Ağı Ağı Ağı

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

2. Source Validator Name

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

3. Hedefe Girin Geçerlilikçi Name

bash
? To Validator Name › spare-node
Başarılı bir geçişte, benzer çıktı göreceksiniz:
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 mainnet_validators
 Successfully Switched Validator Identity
Geçerliciniz göç artık tamamlanmış.