Phương thức HTTP RPC của Solana
Các node Solana chấp nhận các yêu cầu HTTP sử dụng đặc tả JSON-RPC 2.0.
Đối với các ứng dụng JavaScript, hãy sử dụng thư viện @solana/web3.js như một giao diện thuận tiện cho các phương thức RPC để tương tác với node Solana. Đối với kết nối PubSub đến node Solana, hãy sử dụng API Websocket.
Điểm cuối HTTP RPC
Cổng mặc định: 8899
Định dạng yêu cầu
Để thực hiện yêu cầu JSON-RPC, gửi một yêu cầu HTTP POST với tiêu đề
Content-Type: application/json
. Dữ liệu yêu cầu JSON nên chứa 4 trường:
jsonrpc: <string>
- đặt thành"2.0"
id: <string | number | null>
- một định danh duy nhất cho yêu cầu, được tạo bởi máy khách. Thường là một chuỗi hoặc số, mặc dù null về mặt kỹ thuật được cho phép nhưng không khuyến khíchmethod: <string>
- một chuỗi chứa phương thức được gọiparams: <array>
- một mảng JSON của các giá trị tham số theo thứ tự
Ví dụ sử dụng curl:
curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","id": 1,"method": "getBalance","params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"]}'
Đầu ra phản hồi sẽ là một đối tượng JSON với các trường sau:
jsonrpc: <string>
- khớp với đặc tả yêu cầuid: <number>
- khớp với định danh yêu cầuresult: <array|number|object|string>
- dữ liệu được yêu cầu hoặc xác nhận thành công
Các yêu cầu có thể được gửi theo lô bằng cách gửi một mảng các đối tượng yêu cầu JSON-RPC làm dữ liệu cho một POST duy nhất.
Ví dụ yêu cầu
Tham số commitment nên được bao gồm như phần tử cuối cùng trong mảng params
:
curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","id": 1,"method": "getBalance","params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",{"commitment": "finalized"}]}'
Định nghĩa
- Hash: Một hash SHA-256 của một phần dữ liệu.
- Pubkey: Khóa công khai của một cặp khóa Ed25519.
- Transaction: Một danh sách các hướng dẫn Solana được ký bởi một keypair của khách hàng để ủy quyền cho các hành động đó.
- Signature: Một chữ ký Ed25519 của dữ liệu payload giao dịch bao gồm các hướng dẫn. Điều này có thể được sử dụng để xác định các giao dịch.
Kiểm tra sức khỏe
Mặc dù không phải là API JSON RPC, một GET /health
tại Điểm cuối HTTP RPC cung
cấp cơ chế kiểm tra sức khỏe để sử dụng bởi bộ cân bằng tải hoặc cơ sở hạ tầng
mạng khác. Yêu cầu này sẽ luôn trả về phản hồi HTTP 200 OK với nội dung là "ok",
"behind" hoặc "unknown":
ok
: Node đang trong phạm viHEALTH_CHECK_SLOT_DISTANCE
slot từ slot được xác nhận mới nhất của cụmbehind { distance }
: Node đang chậm hơndistance
slot so với slot được xác nhận mới nhất của cụm, trong đódistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: Node không thể xác định vị trí của nó trong mối quan hệ với cụm
Is this page helpful?