Solana Validator Mainnet - Migrasi Downtime Nol
Prosedur Migrasi Nol Waktu
Pemandu ini menjelaskan bagaimana cara bermigrasi ke tempat yang ada. Solana mainnet validator ke server baru tanpa waktu luang.
Prasyarat
Pastikan bahwa dua node validator berikut telah diatur:
-
-
- Aktif Mainnet Validator Node * * (Sumber, Dari)
-
-
-
- New Mainnet Validator Node * * (Tujuan, To)
-
Kedua node harus diatur menggunakan
slv v init perintah.Pastikan Anda sudah memiliki server cadangan yang tersedia. Jika Anda tidak memiliki server cadangan, mengeksekusi prosedur ini bisa menghentikan validator aktif Anda, menyebabkan kerusakan sistem.
Kedua node harus sepenuhnya disinkronkan ke slot terbaru (verifikasi dengan
solana catchup perintah; perbedaan slot harus 0).Dalam contoh ini, node validator dinamai sebagai berikut:
-
-
- Sumber (Aktif, Dari) Nama * *:
main-node
- Sumber (Aktif, Dari) Nama * *:
-
-
-
- Tujuan (Baru, Untuk) Nama * *:
spare-node
- Tujuan (Baru, Untuk) Nama * *:
-
Kedua node harus memiliki konfigurasi identik, kecuali IP alamat (ansible _ host) dan nama.
Kunci publik yang dipakai untuk kedua nodal:
yaml
identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLVidentity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLVMengatur Node Cadangan Baru
Atur node cadangan baru dengan mengeksekusi:
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 › hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLVslv 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 › hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLVMenyebarkan dan menyelaraskan Titik Tujuan
Menyebarkan titik tujuan pertama:
bash
slv v deploy -n mainnet -p spare-nodeslv v deploy -n mainnet -p spare-nodeMenverifikasi sinkronisasi selesai dan perbedaan slot adalah 0.
Verifikasi Konfigurasi dari Node Sumber dan Tujuan
Konfirmasi konfigurasi untuk kedua node identik menggunakan:
bash
cat ~/.slv/inventory.mainnet.validators.ymlcat ~/.slv/inventory.mainnet.validators.ymlKedua node harus memiliki pengaturan identik, kecuali
ansible_host (IP alamat) dan 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
...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
...Menjalankan Validator Migrasi Node
Jalankan migrasi titik dengan perintah berikut:
1. Pilih Solana Jaringan
bash
slv v switch
? Select Solana Network (mainnet)
testnet
❯ mainnetslv v switch
? Select Solana Network (mainnet)
testnet
❯ mainnet2. Masukkan Nama Validator Sumber
bash
✨ Switching Mainnet Validator Identity...
? From Validator Name › main-node✨ Switching Mainnet Validator Identity...
? From Validator Name › main-node3. Masukkan Nama Tujuan Validator
bash
? To Validator Name › spare-node? To Validator Name › spare-nodeSetelah migrasi sukses, Anda akan melihat keluaran serupa dengan:
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 IdentityPLAY 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 IdentityNovel validator migrasi Anda sekarang selesai.