Các phương thức RPC Solana & Tài liệu

Tương tác trực tiếp với các nút Solana thông qua API JSON RPC qua các phương thức HTTP và Websocket.

Cấu hình State Commitment

Đối với kiểm tra preflight và xử lý giao dịch, các nút Solana chọn trạng thái bank để truy vấn dựa trên yêu cầu commitment được thiết lập bởi client. Commitment mô tả mức độ hoàn tất của một block tại thời điểm đó. Khi truy vấn trạng thái sổ cái, khuyến nghị sử dụng các mức commitment thấp hơn để báo cáo tiến trình và mức cao hơn để đảm bảo trạng thái sẽ không bị hoàn tác.

Theo thứ tự giảm dần của commitment (từ hoàn tất nhất đến ít hoàn tất nhất), client có thể chỉ định:

  • finalized - nút sẽ truy vấn block gần đây nhất được xác nhận bởi đa số tuyệt đối của cụm là đã đạt được lockout tối đa, nghĩa là cụm đã công nhận block này là đã hoàn tất
  • confirmed - nút sẽ truy vấn block gần đây nhất đã được bỏ phiếu bởi đa số tuyệt đối của cụm.
    • Nó kết hợp các phiếu bầu từ gossip và replay.
    • Nó không tính phiếu bầu trên các block con của một block, chỉ tính phiếu bầu trực tiếp trên block đó.
    • Mức xác nhận này cũng duy trì các đảm bảo "xác nhận lạc quan" trong phiên bản 1.3 trở đi.
  • processed - nút sẽ truy vấn block gần đây nhất của nó. Lưu ý rằng block vẫn có thể bị bỏ qua bởi cụm.

Để xử lý nhiều giao dịch phụ thuộc theo chuỗi, khuyến nghị sử dụng commitment confirmed, cân bằng giữa tốc độ và an toàn khi hoàn tác. Để đảm bảo an toàn hoàn toàn, khuyến nghị sử dụng commitment finalized.

Cam kết mặc định

Nếu cấu hình cam kết không được cung cấp, nút sẽ mặc định là cam kết finalized

Chỉ các phương thức truy vấn trạng thái ngân hàng mới chấp nhận tham số cam kết. Chúng được chỉ ra trong Tài liệu tham khảo API bên dưới.

Cấu trúc RpcResponse

Nhiều phương thức nhận tham số cam kết trả về một đối tượng JSON RpcResponse bao gồm hai phần:

  • context : Một cấu trúc JSON RpcResponseContext bao gồm trường slot tại đó hoạt động được đánh giá.
  • value : Giá trị được trả về bởi chính hoạt động đó.

Phản hồi đã phân tích

Một số phương thức hỗ trợ tham số encoding, và có thể trả về dữ liệu tài khoản hoặc hướng dẫn ở định dạng JSON đã phân tích nếu "encoding":"jsonParsed" được yêu cầu và nút có trình phân tích cho chương trình sở hữu. Các nút Solana hiện hỗ trợ phân tích JSON cho các chương trình gốc và SPL sau:

Chương trìnhTrạng thái tài khoảnHướng dẫn
Address Lookupv1.15.0v1.15.0
BPF Loadern/astable
BPF Upgradeable Loaderstablestable
Configstable
SPL Associated Token Accountn/astable
SPL Memon/astable
SPL Tokenstablestable
SPL Token 2022stablestable
Stakestablestable
Votestablestable

Danh sách các trình phân tích tài khoản có thể được tìm thấy tại đây, và trình phân tích hướng dẫn tại đây.

Tiêu chí lọc

Một số phương thức hỗ trợ cung cấp đối tượng filters để kích hoạt lọc trước dữ liệu được trả về trong đối tượng JSON RpcResponse. Các bộ lọc sau tồn tại:

  • memcmp: object - so sánh một chuỗi byte được cung cấp với dữ liệu program account tại một vị trí offset cụ thể. Các trường:

    • offset: usize - vị trí offset trong dữ liệu program account để bắt đầu so sánh
    • bytes: string - dữ liệu cần khớp, dưới dạng chuỗi đã mã hóa
    • encoding: string - mã hóa cho bộ lọc bytes dữ liệu, có thể là "base58" hoặc "base64". Dữ liệu bị giới hạn kích thước không quá 128 byte sau khi giải mã.
      MỚI: Trường này, và hỗ trợ base64 nói chung, chỉ có sẵn trong solana-core v1.14.0 trở lên. Vui lòng bỏ qua khi truy vấn các node trên các phiên bản cũ hơn
  • dataSize: u64 - so sánh độ dài dữ liệu program account với kích thước dữ liệu được cung cấp

Is this page helpful?

Mục lục

Chỉnh sửa trang