Câu hỏi thường gặp về Solana RPC Endpoint | ERPC

H. Output Shreds / getBlock của tôi đột nhiên bị lỗi hoặc trả về -32015 — điều gì đã thay đổi?

Solana Transaction v1 (SIMD-0385) đã có hiệu lực trên mainnet Solana vào ngày 15 tháng 9 năm 2026, tại epoch 1035. Wire layout của một transaction v1 bắt đầu bằng byte tiền tố phiên bản 0x81, chữ ký nằm sau message, và không còn tiền tố độ dài legacy nữa.
Nếu bạn tự giải mã các entry của ShredStream, Direct Shreds hoặc UDP Forwarding, decoder bincode hoặc solana-entry dưới phiên bản 4.2 sẽ đọc nhầm byte 0x81 đó thành số lượng chữ ký, biểu hiện là lỗi EOF, tràn compact-length, hoặc lỗi "invalid message version". Người dùng Geyser gRPC deserialize raw transaction bằng các crate trước 4.2 cũng gặp vấn đề tương tự. Các lời gọi RPC getBlock và getTransaction với maxSupportedTransactionVersion: 0 sẽ trả về -32015 Transaction version (1) is not supported by the requesting client; getTransactionsForAddress ở chế độ full báo cùng lỗi đó trên từng dòng bị ảnh hưởng. Bạn không bị ảnh hưởng nếu đã đọc các response JSON đã parse của ERPC với version 1 được đặt sẵn.
Đặt maxSupportedTransactionVersion thành 1 trong options object — tham số thứ hai của getBlock và getTransaction, và cả trong options của getTransactionsForAddress:
json
{
  "maxSupportedTransactionVersion": 1
}
Nâng cấp Solana Stream SDK lên 2.0.0: solana-stream-sdk cho Rust trên crates.io, hoặc @validators-dao/solana-stream-sdk và @validators-dao/solana-shreds-client trên npm. Nâng cấp riêng @validators-dao/solana-entry-decoder lên 2.5.0. 1.4.0 và entry-decoder 2.4.0 không hỗ trợ v1. Decoder Rust tự viết nên chuyển sang solana-entry 4.2.x.

H. Solana RPC endpoint là gì, và làm thế nào để lấy endpoint RPC Solana với ERPC?

Solana RPC endpoint là URL mà ứng dụng, trading bot, ví hoặc hệ thống analytics dùng để gửi JSON-RPC request đến Solana và nhận dữ liệu on-chain. Với ERPC, bạn có một endpoint Solana được quản lý sẵn, hỗ trợ HTTP và WebSocket thông qua cùng mạng proxy toàn cầu.
Để bắt đầu, hãy tạo hoặc mở tài khoản trong ERPC Web Dashboard, sao chép API key, rồi thêm API key vào tham số api-key của endpoint URL:
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>
Sử dụng cùng định dạng API key cho WebSocket subscription:
text
wss://edge.erpc.global?api-key=<YOUR_API_KEY>

H. Mỗi phương thức tiêu tốn bao nhiêu token?

Chúng tôi đang chuẩn bị bảng sử dụng token chi tiết.
Để tham khảo, mức cơ bản là 42 token cho mỗi phương thức.
Trừ getTransactionsForAddress ở chế độ "full", một lệnh gọi được History Access trả lời tốn thêm 640 token so với giá thông thường của phương thức (với getBlock là 42 + 640 = 682 token), và một lệnh gọi được trả lời từ dữ liệu gần đây giữ nguyên giá thông thường, kể cả khi có history=true.

H. Tại sao thiếu các block hoặc giao dịch Solana cũ, hoặc tại sao tôi thấy -32011?

Trừ getTransactionsForAddress, một request không có history=true được trả lời từ phạm vi gần đây mà mỗi node lưu giữ, nên block hoặc giao dịch cũ có thể trả về lỗi This request needs history access. Add history=true to the endpoint URL. (mã -32011), null hoặc kết quả rỗng, tùy phương thức. Thêm history=true vào URL https://edge.erpc.global của một HTTP request để truy xuất chúng.
Gửi API key trong URL:
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
Hoặc gửi trong header Authorization: Bearer <YOUR_API_KEY> và giữ history=true trong URL:
text
https://edge.erpc.global?history=true
Việc truy xuất block hoặc giao dịch cũ có thể mất nhiều thời gian hơn đáng kể so với một request thông thường, trong một số trường hợp là vài giây. History Access là một tùy chọn riêng, tách các lần truy xuất này khỏi request thông thường, để request thông thường vẫn nhanh. Trừ getTransactionsForAddress ở chế độ "full", mỗi lệnh gọi được History Access trả lời tốn thêm 640 token so với giá thông thường của phương thức.
Hạn mức miễn phí, bao gồm hạn mức của Gói Free, có giới hạn cho History Access. Gói Free bị giới hạn ở một request History Access mỗi 10 giây.
Khi không có history=true, getTransactionsForAddress với transactionDetails đặt là "full" trả về cùng lỗi -32011, bất kể dữ liệu cũ hay mới; tài liệu ERPC nêu giá của nó.

Q. Unlimited Endpoint hỗ trợ phương thức nào?

Unlimited Endpoints được thiết kế cho các lệnh gọi Solana RPC tiêu chuẩn có độ trễ thấp. Các phương thức được hỗ trợ là getSlot, getBlockHeight, getLatestBlockhash, getBalance, getAccountInfo, getMultipleAccounts, getTransaction, sendTransaction, simulateTransaction, getSignatureStatuses, getRecentPrioritizationFees, getHealth, getVersion, getEpochInfo, getBlock. Với các phương thức khác, hãy dùng https://edge.erpc.global?api-key=<YOUR_API_KEY>.

H. Các node của bạn nằm ở khu vực nào?

Chúng tôi hiện vận hành node tại các khu vực sau:
  • Frankfurt (FRA)
  • Amsterdam (AMS)
  • London (LON)
  • New York (NY)
  • Chicago (CHI)
  • Tokyo (TY)
  • Singapore (SGP)
  • Sydney (SYD)
Các RPC endpoint của ERPC được hỗ trợ bởi Cloudflare, tận dụng mạng toàn cầu với hơn 300 edge server. Request được tự động định tuyến qua Cloudflare edge gần nhất rồi chuyển tiếp đến node ERPC tối ưu, giúp giữ đường mạng ngắn và độ trễ thấp nhất quán từ bất kỳ đâu trên thế giới.
Kiến trúc này giảm tác động của khoảng cách địa lý và định tuyến phức tạp, cung cấp kết nối được tối ưu liên tục đến Solana node với độ ổn định và hiệu suất cao.
ERPC Web Dashboard: ERPC Web Dashboard

H. Tôi có thể sử dụng WebSocket không?

Có. WebSocket được hỗ trợ trên cùng endpoint, giúp bạn nhận cập nhật dữ liệu thời gian thực một cách hiệu quả.

H. Tại sao tôi nhận lỗi 401?

Lỗi 401 cho biết vấn đề xác thực. Vui lòng kiểm tra:
  • Gói đăng ký đã bắt đầu chưa
  • Bạn còn credit không
Nếu hết credit, hãy cân nhắc nâng cấp gói.

H. Tại sao tôi nhận lỗi 429?

Lỗi 429 có nghĩa bạn đã đạt giới hạn rate. Nếu lỗi này xảy ra thường xuyên và ảnh hưởng dịch vụ, vui lòng cân nhắc nâng cấp gói.

H. Tại sao dedicated endpoint nhanh hơn?

Shared endpoint được nhiều khách hàng dùng chung trên cùng tài nguyên. Khi lưu lượng tăng, request có thể phải chờ xử lý tuần tự và độ trễ sẽ tăng theo.
Với dedicated endpoint, bạn là người dùng duy nhất của tài nguyên đó, nên phản hồi ổn định và nhanh hơn nhất quán. Dedicated endpoint cũng có thể cung cấp tùy chọn giao tiếp không TLS, bỏ qua TLS handshake khoảng 20ms để giảm thêm độ trễ.

H. Giá khuyến mãi có tăng sau khi tôi đăng ký không?

Miễn là subscription của bạn vẫn hoạt động, mức giá khuyến mãi đã khóa khi đăng ký sẽ tiếp tục được áp dụng. Môi trường đủ sức chịu workload real-time của Solana là tài nguyên khan hiếm trên toàn cầu, và chúng tôi dự kiến tăng dần giá niêm yết theo nhu cầu phần cứng và mạng. Cấu hình cao hơn và khu vực có nhu cầu lớn thường hết hàng nhanh nhất, nên khóa mức giá khuyến mãi hiện tại là lựa chọn tiết kiệm chi phí nhất về dài hạn.

H. Tôi muốn thanh toán bằng crypto

Thanh toán bằng crypto khả dụng trong ERPC Web Dashboard khi quốc gia trong địa chỉ thanh toán đã đăng ký của bạn là một trong các quốc gia thành viên EU. Bạn có thể dùng SOL, USDC hoặc EURC để mua ERPC Credits.
Dùng ERPC Credits đó để kích hoạt hoặc tiếp tục các plan ERPC. Mở dashboard, chọn crypto payment, gửi transfer từ wallet của bạn, và dashboard sẽ xác minh transaction rồi cộng credits vào account của bạn.
Quốc gia được hỗ trợ: Áo, Ba Lan, Bỉ, Bồ Đào Nha, Bulgaria, Croatia, Đan Mạch, Đức, Estonia, Hà Lan, Hungary, Hy Lạp, Ireland, Italy, Latvia, Litva, Luxembourg, Malta, Pháp, Phần Lan, Romania, Séc, Síp, Slovakia, Slovenia, Tây Ban Nha, Thụy Điển.
Với các quốc gia không có trong danh sách, vui lòng thanh toán bằng thẻ tín dụng.

H. Bạn khuyến nghị khu vực nào?

Không có một khu vực tốt nhất cố định. Solana là mạng toàn cầu, và vai trò leader luân phiên giữa các validator, hết slot này đến slot khác. Khu vực có nhiều validator và stake lớn thường có leader slots thường xuyên hơn, giúp giao dịch có lợi thế về thời gian landing. Đổi lại, lưu lượng cạnh tranh cũng tập trung ở đó, nên tùy chiến lược, một khu vực ít đông đúc hơn đôi khi có thể cho kết quả tốt hơn.
Về nguyên tắc, hãy chọn khu vực dày đặc validator như Frankfurt hoặc bờ Đông Hoa Kỳ khi bạn cần nguồn leader slots ổn định, hoặc đặt hạ tầng gần một target validator cụ thể khi ưu tiên đường đi ngắn nhất. Hãy dùng Validators Solutions để hiểu phân bố công khai của mạng Solana, sau đó dùng ERPC Leader Slot API và đo đạc thực tế để quyết định single-region, dual-region hay global deployment phù hợp.
Solana Mainnet Distribution Report

H. Tôi cần độ trễ ít nhất khoảng 400ms hoặc tốt hơn.

Để đạt độ trễ khoảng 400ms hoặc tốt hơn, cần hiểu đúng về ping, tránh phụ thuộc vào độ trễ trung bình và theo dõi lịch trình leader bằng ERPC Leader Slot API (getLeaderSlots).
  • Hiểu đúng về ping: Ping thể hiện điều kiện lý tưởng, không phải độ trễ thực tế của streaming communication. Trong thực tế, độ trễ streaming có thể cao hơn ping khoảng 5 lần. Ví dụ, ping liên lục địa 100ms có thể tương ứng với độ trễ thực tế khoảng 500ms, vì vậy để đạt khoảng 400ms, hạ tầng nên được đặt trong cùng khu vực.
  • Tránh bẫy độ trễ trung bình: Solana validators phân tán toàn cầu và leader schedule thay đổi theo epoch. Dựa vào độ trễ trung bình không đủ chính xác cho execution timing; bạn cần theo dõi lịch trình validator ở khu vực cụ thể để xác định slot có độ trễ thấp nhất.
  • Theo dõi leader schedule: Dùng ERPC Leader Slot API (getLeaderSlots) để xem upcoming leaders, stake weight, validator geolocation và reference ping values với độ chi tiết phù hợp cho routing và trading decision.
Validators Solutions - dữ liệu mạng Solana
Dữ liệu mạng Solana: Validators Solutions

H. Làm thế nào để đạt giao dịch zero-block (zero-slot)?

  • Xác định vùng cơ hội: Solana validators phân tán toàn cầu, nên không thể tối ưu độ trễ cho mọi slot cùng lúc. Hãy giám sát lịch trình validator leader ở khu vực đặt hạ tầng và xác định các opportunity zones thuận lợi nhất. Dùng ERPC Leader Slot API (getLeaderSlots) để lấy leader schedule, stake weight, validator geolocation và reference ping values chính xác hơn dữ liệu bản đồ công khai hoặc native RPC APIs.
  • Triển khai Dedicated Node: Nếu bạn khó cạnh tranh trên shared node, hãy cân nhắc dedicated node. Đặt dedicated node trong cùng mạng với ứng dụng giúp giảm đáng kể độ trễ và ổn định hiệu suất.

H. Làm thế nào để đạt độ trễ thấp nhất có thể?

Thiết lập lý tưởng là dedicated RPC node kết hợp Bare-Metal server. Cả hai chia sẻ cùng mạng, cho phép giao tiếp riêng tư gần như không khoảng cách với ping khoảng 0.1ms.

H. Transaction trên dedicated node có tỷ lệ thành công thấp

Tỷ lệ thành công và tốc độ transaction bị ảnh hưởng đáng kể bởi QoS (Quality of Service). ERPC cung cấp QoS riêng cho dedicated node.

H. Độ trễ như thế nào?

Độ trễ thay đổi theo cách đo và môi trường sử dụng cụ thể. Thay vì chỉ nhìn vào một con số, hãy kiểm tra xem độ trễ có đáp ứng yêu cầu vận hành thực tế của bạn hay không.
Chúng tôi cung cấp công cụ đo bằng TypeScript và Rust để bạn kiểm tra trực tiếp trong môi trường của mình.

H. RPC (gRPC, Shreds) này có nhanh hơn các dịch vụ khác không?

Chúng tôi thiết kế mọi gói dịch vụ với ưu tiên tốc độ, và sẵn lòng để điều đó được đo song song với bất kỳ nhà cung cấp nào khác. Kết quả thay đổi theo khu vực, theo việc bạn dùng shared endpoint hay dedicated endpoint, theo giao thức (WebSocket, gRPC hoặc Shreds) và theo ngôn ngữ lập trình của client.
Nếu thấy ERPC chậm hơn, vui lòng cho chúng tôi biết điều kiện đo và nhà cung cấp bạn đã so sánh thông qua ERPC Web Dashboard để chúng tôi phân tích và cải thiện.

H. Gói nào cung cấp hiệu suất nhanh nhất?

Nói chung, gói cao cấp nhất cung cấp hiệu suất nhanh nhất nhờ CPU, bộ nhớ và cấu hình phần cứng mạnh hơn.
Chúng tôi cũng có thể tư vấn cấu hình riêng nếu bạn cần server mạnh hơn nữa, nhưng các gói tiêu chuẩn đã được thiết kế để đạt tỷ lệ hiệu năng/chi phí tốt. Chúng tôi tự tin cung cấp hiệu suất đẳng cấp thế giới ở mọi mức giá.

H. Tôi đang gặp độ trễ cao. Tại sao?

Độ trễ tăng theo khoảng cách đến endpoint. Chúng tôi khuyến nghị truy cập từ server nằm gần endpoint được cung cấp. Môi trường nhanh nhất có sẵn thông qua Bare-Metal server và dịch vụ VPS.

H. Cái nào nhanh nhất: WebSocket, gRPC, hay Shreds?

Phản hồi khách hàng nhất quán:
Shreds > gRPC > WebSocket
Vui lòng cho chúng tôi biết nếu bạn quan sát kết quả khác trong môi trường của mình.

H. Độ trễ không như tôi mong đợi.

Hiệu suất có thể thay đổi theo ngôn ngữ lập trình bạn chọn. Nhìn chung, thứ tự hiệu năng thường là:
Rust > Go > TypeScript (JavaScript) > Python
Tham khảo thêm tại đây:
Chúng tôi khuyến nghị sử dụng Rust nếu bạn cần hiệu suất tối đa.