Solana RPC Endpoint FAQ

คำถามเกี่ยวกับการเรียกเก็บเงิน แผนฟรี การชำระเงิน และ error 401 หรือ 429 อยู่ใน วิธีเริ่มต้น
คำถามเกี่ยวกับระยะทาง ความเร็ว และภูมิภาค อยู่ใน ความหน่วงและภูมิภาค

Q. Solana RPC endpoint คืออะไร และจะเริ่มใช้งานกับ ERPC ได้อย่างไร?

Solana RPC endpoint คือ URL ที่แอป บอทเทรด กระเป๋าเงิน หรือระบบ analytics ใช้ส่ง JSON-RPC requests ไปยัง Solana และรับข้อมูลจาก chain ส่วน ERPC จะให้ Solana endpoint แบบ managed ที่รองรับทั้ง HTTP และ WebSocket ผ่าน global proxy network เดียวกัน
เริ่มต้นได้โดยสร้างหรือเปิดบัญชี ERPC ใน ERPC Web Dashboard คัดลอก API key แล้วเพิ่มลงในพารามิเตอร์ api-key ของ endpoint URL:
endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>
ใช้รูปแบบ API key เดียวกันสำหรับ WebSocket subscriptions:
endpoint
wss://edge.erpc.global?api-key=<YOUR_API_KEY>

Q. ใช้ WebSocket ได้ไหม?

ได้ รองรับ WebSocket ผ่าน endpoint เดียวกัน ช่วยให้คุณรับการอัปเดตข้อมูลแบบ real-time ได้อย่างมีประสิทธิภาพ

Q. โหนดของคุณตั้งอยู่ในภูมิภาคใดบ้าง?

ปัจจุบันเราให้บริการ nodes ใน region ต่อไปนี้:
  • Frankfurt (FRA)
  • Amsterdam (AMS)
  • London (LON)
  • New York (NY)
  • Tokyo (TY)
  • Singapore (SGP)
RPC endpoint ของ ERPC ขับเคลื่อนด้วย Cloudflare โดยใช้ global network ที่มี edge server มากกว่า 300 จุด request จะถูกส่งผ่าน Cloudflare edge location ที่ใกล้ที่สุดโดยอัตโนมัติ แล้วส่งต่อไปยังโหนด ERPC ที่เหมาะสมที่สุด เพื่อให้ได้เส้นทางเครือข่ายที่สั้นที่สุดเท่าที่เป็นไปได้และความหน่วงต่ำอย่างสม่ำเสมอจากทุกที่ในโลก
สถาปัตยกรรมนี้ขจัดผลกระทบจากระยะทางทางภูมิศาสตร์หรือ routing ที่ซับซ้อน และให้การเชื่อมต่อกับโหนด Solana ที่ได้รับการปรับให้เหมาะสมอยู่เสมอ พร้อมความเสถียรและประสิทธิภาพสูงสุด
ERPC Web Dashboard: ERPC Web Dashboard

Q. ทำไมจึงไม่พบบล็อกหรือธุรกรรมของ Solana ที่เก่ากว่า หรือทำไมจึงเห็น -32011?

นอกจาก getTransactionsForAddress แล้ว request ที่ไม่มี history=true จะได้รับคำตอบจากช่วงข้อมูลล่าสุดที่แต่ละ node เก็บไว้ ดังนั้นบล็อกหรือธุรกรรมที่เก่ากว่าอาจคืนค่า error This request needs history access. Add history=true to the endpoint URL. (code -32011) หรือ null หรือผลลัพธ์ว่าง ขึ้นอยู่กับ method เพิ่ม history=true ใน URL https://edge.erpc.global ของ HTTP request เพื่อขอข้อมูลเหล่านั้น
ส่ง API key ใน URL:
endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
หรือส่งใน header Authorization: Bearer <YOUR_API_KEY> และคง history=true ไว้ใน URL:
endpoint
https://edge.erpc.global?history=true
การค้นหาบล็อกหรือธุรกรรมที่เก่ากว่าอาจใช้เวลานานกว่า request ปกติมาก ในบางกรณีนานเป็นวินาที History Access เป็นตัวเลือกแยกต่างหากที่แยกการค้นหาเหล่านี้ออกจาก request ปกติ เพื่อให้ request ปกติยังคงเร็ว ยกเว้น getTransactionsForAddress ในโหมด "full" การเรียกแต่ละครั้งที่ History Access ตอบจะใช้มากกว่าราคาปกติของ method 640 tokens
โควตาฟรี รวมถึงของแพ็กเกจ Free มีขีดจำกัดสำหรับ History Access แพ็กเกจ Free จำกัดไว้ที่หนึ่ง request ของ History Access ต่อ 10 วินาที
หากไม่มี history=true การเรียก getTransactionsForAddress ที่ตั้งค่า transactionDetails เป็น "full" จะคืนค่า error -32011 เดียวกัน ไม่ว่าข้อมูลจะเก่าหรือใหม่ ราคาระบุอยู่ในเอกสาร ERPC

Q. Output ของ Shreds / getBlock อยู่ ๆ ก็ดูเสียหาย หรือคืนค่า -32015 — มีอะไรเปลี่ยนไป?

Solana Transaction v1 (SIMD-0385) เริ่มมีผลบน Solana mainnet เมื่อวันที่ 15 กันยายน 2026 ที่ epoch 1035 โดย wire layout ของ transaction แบบ v1 จะขึ้นต้นด้วย byte นำหน้าเวอร์ชัน 0x81 ลายเซ็นจะอยู่หลัง message และไม่มี length prefix แบบ legacy อีกต่อไป
หากคุณถอดรหัส entry ของ ShredStream หรือ UDP Forwarding ด้วยตัวเอง ตัวถอดรหัส bincode หรือ solana-entry ที่ต่ำกว่าเวอร์ชัน 4.2 จะอ่าน byte 0x81 นี้ผิดเป็นจำนวนลายเซ็น ซึ่งจะแสดงออกมาเป็น EOF error, compact-length overflow หรือ error "invalid message version" ผู้ใช้ Geyser gRPC ที่ deserialize raw transaction ด้วย crate ก่อน 4.2 ก็เจอปัญหาเดียวกัน การเรียก RPC getBlock และ getTransaction ด้วย maxSupportedTransactionVersion: 0 จะคืนค่า -32015 Transaction version (1) is not supported by the requesting client ส่วน getTransactionsForAddress ในโหมด full จะรายงาน error เดียวกันในทุกแถวที่ได้รับผลกระทบ หากคุณอ่าน JSON response ที่ parse แล้วของ ERPC โดยตั้งค่า version 1 อยู่แล้ว คุณจะไม่ได้รับผลกระทบ
ตั้งค่า maxSupportedTransactionVersion เป็น 1 ใน options object ซึ่งเป็นพารามิเตอร์ตัวที่สองของ getBlock และ getTransaction รวมถึงใน options ของ getTransactionsForAddress ด้วย:
json
{
  "maxSupportedTransactionVersion": 1
}
อัปเกรด Solana Stream SDK เป็น 2.0.0: solana-stream-sdk สำหรับ Rust บน crates.io หรือ @validators-dao/solana-stream-sdk และ @validators-dao/solana-shreds-client บน npm และอัปเกรด @validators-dao/solana-entry-decoder แยกต่างหากเป็น 2.5.0 ทั้งนี้ 1.4.0 และ entry-decoder 2.4.0 ไม่รองรับ v1 ส่วนตัวถอดรหัส Rust ที่เขียนเองควรย้ายไปใช้ solana-entry 4.2.x

Q. Unlimited Endpoint รองรับเมธอดใดบ้าง?

Unlimited Endpoints ออกแบบมาสำหรับการเรียก Solana RPC มาตรฐานที่มีความหน่วงต่ำ เมธอดที่รองรับคือ:
  • getSlot
  • getBlockHeight
  • getLatestBlockhash
  • getBalance
  • getAccountInfo
  • getMultipleAccounts
  • getTransaction
  • sendTransaction
  • simulateTransaction
  • getSignatureStatuses
  • getRecentPrioritizationFees
  • getHealth
  • getVersion
  • getEpochInfo
  • getBlock
สำหรับเมธอดอื่น โปรดใช้ https://edge.erpc.global?api-key=<YOUR_API_KEY>

Q. Transactions บน dedicated node มี success rate ต่ำ

อัตราความสำเร็จและความเร็วของ transaction ได้รับผลกระทบอย่างมากจากกลไกที่เรียกว่า QoS (Quality of Service) เรามี QoS สำหรับ dedicated node โดยเฉพาะ ดูรายละเอียดเพิ่มเติมได้จากหน้าด้านล่าง หรือสอบถามผ่าน ERPC Web Dashboard

Q. ฉันจะทำให้ได้ความหน่วงต่ำที่สุดเท่าที่จะเป็นไปได้อย่างไร?

การตั้งค่าที่เหมาะที่สุดเพื่อความหน่วงต่ำสุดคือ dedicated RPC node ร่วมกับ เซิร์ฟเวอร์ Bare Metal ของเรา ทั้งสองอยู่บนเครือข่ายเดียวกัน ทำให้สื่อสารแบบส่วนตัวระยะทางเป็นศูนย์ได้ โดยมี ping ประมาณ 0.1ms
โปรดติดต่อเราผ่าน ERPC Web Dashboard สำหรับรายละเอียดเพิ่มเติม