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ấtconfirmed
- 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ườngslot
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ình | Trạng thái tài khoản | Hướng dẫn |
---|---|---|
Address Lookup | v1.15.0 | v1.15.0 |
BPF Loader | n/a | stable |
BPF Upgradeable Loader | stable | stable |
Config | stable | |
SPL Associated Token Account | n/a | stable |
SPL Memo | n/a | stable |
SPL Token | stable | stable |
SPL Token 2022 | stable | stable |
Stake | stable | stable |
Vote | stable | stable |
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ánhbytes: string
- dữ liệu cần khớp, dưới dạng chuỗi đã mã hóaencoding: string
- mã hóa cho bộ lọcbytes
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?