Solana Testnet Validator - เริ่มต้นใช้งานอย่างรวดเร็ว

การติดตั้งและการเปิดใช้งาน validator

bash
curl -fsSL https://storage.slv.dev/slv/install | sh
slv validator init
slv validator deploy

Deploy Firedancer validator บน Solana testnet

🚀 สิ่งที่ต้องเตรียม โปรดเตรียมเซิร์ฟเวอร์ที่ติดตั้ง Ubuntu 24.04 LTS แบบ clean install ไว้
🔑 เกี่ยวกับการจัดการคีย์ สำหรับการ deploy Firedancer ใหม่ด้วย SLV ระบบจะใช้ unstaked-keypair.json เป็นคีย์ identity ในช่วงแรกเสมอเพื่อความปลอดภัย
นี่คือแนวปฏิบัติที่ดีที่สุดเพื่อป้องกันปัญหาร้ายแรง เช่น การโหวตซ้ำ (double voting)
✅ การตั้งค่า identity หลัง deploy หลัง deploy แล้ว อย่าลืมตั้งค่าคีย์ identity ที่ได้รับอนุญาตด้วยคำสั่งต่อไปนี้:
bash
slv v set:identity -n testnet --pubkey <name>

การเตรียมเซิร์ฟเวอร์ Bare Metal สำหรับ Testnet

แม้จะสามารถรันโหนด Solana บน VPS หรือเครื่องเสมือน (VM) ได้ แต่ในทางปฏิบัติการทำให้ได้ประสิทธิภาพและความเสถียรสูงสุดนั้นทำได้ยาก Solana แนะนำอย่างเป็นทางการให้ใช้เซิร์ฟเวอร์ bare metal ซึ่งให้ประสิทธิภาพสูงกว่าสภาพแวดล้อมแบบเสมือนมาก
เนื่องจากสภาพแวดล้อม testnet มีโหลดต่ำกว่า mainnet เราได้ยืนยันแล้วว่าเซิร์ฟเวอร์ที่ใช้ CPU Ryzen 16 คอร์และ RAM DDR5 128GB ทำงานได้อย่างเสถียร การใช้การกำหนดค่าเซิร์ฟเวอร์นี้ช่วยลดต้นทุนการดำเนินงาน จึงขอแนะนำให้ใช้
เมื่อคุณรันคำสั่ง slv v init ระบบจะถามว่าเซิร์ฟเวอร์ bare metal ของคุณตั้งค่าไว้แล้วหรือไม่:
bash
➜ slv v init
? Select Solana Network (testnet) › testnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
  no
บทแนะนำนี้สมมติว่าคุณเลือก yes
หากคุณยังไม่ได้เตรียมเซิร์ฟเวอร์ bare metal โปรดดู คู่มือการตั้งค่าเซิร์ฟเวอร์ Bare Metal เพื่อตั้งค่าให้เสร็จสมบูรณ์

ป้อนชื่อผู้ใช้เริ่มต้นของเซิร์ฟเวอร์

โดยส่วนใหญ่ ชื่อผู้ใช้เริ่มต้นคือ ubuntu หรือ root
bash
? What's the user for the server? (ubuntu) › ubuntu

ป้อนที่อยู่ IP ของเซิร์ฟเวอร์

ป้อนที่อยู่ IP ของเซิร์ฟเวอร์
bash
? What's the IP address of the server? ›

ตั้งค่าคีย์ RSA สำหรับ SSH

※ โปรดตั้งค่าพาธไปยังคีย์ RSA ของคุณ โดยพาธเริ่มต้นคือ ~/.ssh/id_rsa ปัจจุบันรองรับเฉพาะพาธเริ่มต้นเท่านั้น จึงโปรดตั้งค่าตามพาธเริ่มต้นนี้
bash
? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeeded
จากนั้น SLV จะตรวจสอบการเชื่อมต่อไปยังเซิร์ฟเวอร์ หากเชื่อมต่อสำเร็จ ระบบจะแสดงขั้นตอนถัดไป

เลือกประเภท Solana validator

เลือกประเภทของ Solana validator
bash
? Select Validator Type (firedancer-jito)
  agave
  jito
  jito-bam
  firedancer-agave
❯ firedancer-jito

สร้างหรือตั้งค่าคีย์ identity ของ Solana validator

คุณสามารถสร้างคีย์ identity ใหม่ หรือตั้งค่าคีย์ identity ที่มีอยู่แล้วได้ ตัวอย่างนี้แสดงวิธีตั้งค่าคีย์ identity ที่มีอยู่แล้วโดยใช้ชื่อ "epics-test"
bash
? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp
? Enter Inventory Name (TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp) › epics-test
⚠️ Please place your identity key in

  ~/.slv/keys/TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp.json
.
.
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.yml
✔ Successfully created solv user on x.x.x.x
โปรดวางคีย์ identity ของคุณไว้ที่ ~/.slv/keys/<your-pubkey>.json จากนั้น SLV จะสร้างผู้ใช้ solv โดยใช้รหัสผ่าน

ตรวจหาภูมิภาคโดยอัตโนมัติ

ถัดไป ระบบจะ ping block engine แต่ละตัวจากโหนดที่คุณตั้งค่าไว้ เพื่อตรวจหาภูมิภาคที่ใกล้ที่สุดโดยอัตโนมัติ การวัดค่า ping จริงช่วยให้คุณเลือกภูมิภาคที่เหมาะสมที่สุดได้
bash
📍 Measuring latencies from x.x.x.x to testnet regions...
  Pinging Dallas (dallas.testnet.block-engine.jito.wtf)...
  Pinging New York (ny.testnet.block-engine.jito.wtf)...
  ✅ New York: 74.341 ms
  ✅ Dallas: 114.722 ms

🎯 Nearest region: 🇺🇸 New York
   Latency: 74.341 ms
   Block Engine: https://ny.testnet.block-engine.jito.wtf
   Shred Receiver: 64.130.35.224:1002
   Relayer: http://ny.testnet.relayer.jito.wtf:8100
   NTP Server: ntp.dallas.jito.wtf

สร้างหรือตั้งค่าคีย์ vote account ของ Solana validator

คุณสามารถสร้างคีย์ vote account ใหม่ หรือตั้งค่าคีย์ vote account ที่มีอยู่แล้วได้ ตัวอย่างนี้แสดงวิธีตั้งค่าคีย์ vote account ที่มีอยู่แล้ว
bash
? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key > <your-vote-account>
การกำหนดค่าถูกบันทึกไว้ที่ ~/.slv/inventory.testnet.validators.yml แล้ว

Deploy validator

เมื่อคุณยืนยันการกำหนดค่าแล้ว การ deploy จะเริ่มขึ้น
bash
slv v deploy -n testnet
อันดับแรก ระบบจะแสดงการกำหนดค่าให้คุณยืนยัน เลือก Yes เพื่อดำเนินการต่อ
bash
Your Testnet Validators Settings:
┌────────────────┬──────────────────────────────────────────────┐
│ Identity Key   │ TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp  │
├────────────────┼──────────────────────────────────────────────┤
│ Vote Key       │ 6XdQ6szHJjm1t3XbgahSS6WVEhsrs5fniZbLgfkN1QWn │
├────────────────┼──────────────────────────────────────────────┤
│ Authority Key  │ authAccount                                  │
├────────────────┼──────────────────────────────────────────────┤
│ IP             │ x.x.x.x.                                     │
├────────────────┼──────────────────────────────────────────────┤
│ Validator Type │ jito                                         │
├────────────────┼──────────────────────────────────────────────┤
│ Version        │ 3.0.7-jito                                   │
└────────────────┴──────────────────────────────────────────────┘
? Do you want to continue? (Y/n) › Yes
เสร็จแล้ว! ตอนนี้ Solana validator ของคุณ deploy เรียบร้อยแล้ว โดยจะใช้เวลาสักระยะในการซิงก์กับเครือข่าย Solana

การดีบั๊กและติดตาม

หลัง deploy แล้ว คุณสามารถดีบั๊กและมอนิเตอร์ภายใน Solana RPC node ได้ คุณสามารถตรวจสอบสถานะของ Solana RPC node ได้ด้วยคำสั่งต่อไปนี้:
bash
$ solv m
solv เป็นนามแฝงสำหรับ agave-validator -l /mnt/ledger การตั้งค่านี้จะถูกเพิ่มลงใน ~/.profile ระหว่างการ deploy RPC node

เปลี่ยนคีย์ identity

หลัง deploy แล้ว คุณต้องเปลี่ยนจากคีย์ unstaked เป็นคีย์ identity ที่ได้รับอนุญาต
bash
slv v set:identity -n testnet --pubkey epics-test
คำสั่งนี้จะตั้งค่าคีย์ identity จากเครื่องคอมพิวเตอร์ของคุณ ซึ่งอยู่ที่:
~/.slv/keys/<name>.json

รีสตาร์ต Firedancer

หากพบปัญหาใด ๆ กับ validator ก็สามารถรีสตาร์ต firedancer ได้ด้วยคำสั่งต่อไปนี้
ตัวเลือก --rm จะหยุด validator, ลบไดเรกทอรี ledger และสแนปช็อต, ดาวน์โหลดสแนปช็อตโดยใช้ snapshot finder แล้วจึงเริ่ม validator
bash
slv v restart -n testnet --pubkey <name> --rm

คำสั่ง validator ของ SLV

bash
slv validator --help
Usage:   slv validator
Version: 0.9.700

Description:

  🛠️ Manage Solana Validator Nodes 🛠️

Options:

  -h, --help  - Show this help.

Commands:

  init               - 🚀 Initialize a new validator configuration
  deploy             - 📦 Deploy Validators
  list               - 📋 List validators
  set:identity       - 🪪  Set Validator Identity
  set:unstaked       - 📴 Set Validator Identity to Unstaked Key
  setup:firedancer   - 🔥 Setup/Update Firedancer Validator
  update:firedancer  - 🔄 Update Firedancer Version
  build:solana-cli   - 🛠️ Build Solana CLI from Source
  install:solana     - ➡️ Install Solana CLI Binary
  update:script      - ⚙️  Update Validator Startup Config
  update:jinja       - 🧩 Update Jinja Template
  start              - 🟢 Start Validator
  stop               - 🔴 Stop Validator
  restart            - ♻️  Restart Validator
  cleanup            - 🧹 Cleanup Validator - Remove Ledger/Snapshot Unnecessary Files
  get:snapshot       - 💾 Download Snapshot with aria2c
  gen:vote-account   - 🗳️  Generate Vote Account
  switch             - 🔁 Switch Validator Identity - No DownTime Migration