getSlot trả về slot hiện tại mà nút RPC cho là đã đạt đến một mức cam kết cụ thể. Đây là phương thức cơ bản để hiểu trạng thái hiện tại của blockchain theo góc nhìn của nút.
Các trường hợp sử dụng phổ biến
- Lấy tiến trình hiện tại của mạng: Xác định slot gần đây nhất đã được nút xử lý hoặc xác nhận.
- Kiểm tra khả năng đồng bộ hóa của nút: So sánh slot từ các nút khác nhau có thể cho biết trạng thái đồng bộ hóa của chúng.
- Gắn dấu thời gian cho hoạt động: Sử dụng slot hiện tại làm điểm tham chiếu cho các hoạt động hoặc để xác định độ cũ của một số dữ liệu.
- Đầu vào cho các lệnh gọi RPC khác: Một số phương thức RPC có thể sử dụng số slot làm điểm tham chiếu.
Tham số yêu cầu
Phương thức này nhận một đối tượng cấu hình không bắt buộc làm tham số đầu tiên:options(object, không bắt buộc): Một đối tượng cấu hình không bắt buộc có các trường sau:commitment(string, không bắt buộc): Chỉ định mức cam kết cho truy vấn. Các giá trị được hỗ trợ làfinalized,confirmedhoặcprocessed. Nếu bỏ qua, mức cam kết mặc định của nút RPC sẽ được sử dụng (thường làfinalized).processed: Nút sẽ truy vấn slot gần đây nhất của nó. Lưu ý rằng slot này có thể chưa được cụm xác nhận và có khả năng bị bỏ qua.confirmed: Nút sẽ truy vấn slot gần đây nhất đã được siêu đa số trong cụm bỏ phiếu.finalized: Nút sẽ truy vấn slot gần đây nhất được siêu đa số trong cụm xác nhận là đã đạt mức khóa tối đa (không thể hoàn tác).
minContextSlot(number, không bắt buộc): Slot tối thiểu mà tại đó yêu cầu có thể được đánh giá. Tham số này đặt slot tối thiểu cho ngữ cảnh của nút. Nếu trạng thái của nút cũ hơn slot này, nút có thể trả về lỗi hoặc một số slot phản ánh trạng thái hiện tại (cũ hơn) của nó so với mức tối thiểu này.
Cấu trúc phản hồi
Trườngresult trong phản hồi JSON-RPC là một giá trị u64 duy nhất (số nguyên 64 bit không dấu), biểu thị số slot hiện tại theo mức cam kết đã chỉ định.
Ví dụ về phản hồi:
Ví dụ
1. Lấy slot hiện tại (mức cam kết mặc định)
Ví dụ này lấy slot hiện tại bằng mức cam kết mặc định của nút (thường làfinalized).
2. Lấy slot hiện tại với một mức cam kết cụ thể
Ví dụ này lấy slot hiện tại đã đạt mức cam kếtconfirmed.
Mẹo dành cho nhà phát triển
- Mức cam kết rất quan trọng: Số slot được trả về phụ thuộc nhiều vào mức
commitmentđã chỉ định. Tham khảo Các mức cam kết của Solana để biết thông tin chi tiết.processedsẽ là slot cao nhất (gần đây nhất) mà nút biết, trong khifinalizedsẽ là một slot cũ hơn đã được toàn bộ mạng xác nhận. Hãy chọn mức cam kết phù hợp với yêu cầu về tính hoàn tất của dữ liệu trong trường hợp sử dụng của bạn. - Sự khác biệt giữa các nút: Các nút RPC khác nhau có thể trả về số slot hơi khác nhau cho cùng một mức cam kết do độ trễ lan truyền mạng hoặc trạng thái xử lý riêng của chúng. Điều này đặc biệt đúng với các mức
processedvàconfirmed. minContextSlot: Tham số này đảm bảo rằng nút xử lý yêu cầu của bạn ít nhất đã đạt đếnminContextSlot. Nếu nút chưa đạt đến slot này, hành vi có thể khác nhau (ví dụ: trả về lỗi hoặc slot cao nhất hiện tại của nút, nhỏ hơnminContextSlot). Tham số này thường được dùng trong các trường hợp nâng cao, khi cần đảm bảo truy vấn được thực hiện trên một trạng thái đủ mới.
getSlot là một phương thức đơn giản nhưng thiết yếu để tương tác với blockchain Solana và nắm được tiến trình hiện tại của nó.