getBlocks cho phép truy xuất danh sách số slot của các khối đã được xác nhận trong khoảng từ một slot bắt đầu được chỉ định đến một slot kết thúc tùy chọn. Phương thức này hữu ích khi cần biết những khối nào đã được xác nhận trong một phạm vi cụ thể mà không phải truy xuất toàn bộ nội dung của từng khối.
Các trường hợp sử dụng phổ biến
- Xác định các khối đã được xác nhận trong một phạm vi: Nhanh chóng lấy danh sách tất cả các slot khối đã được xác nhận thành công giữa hai điểm trong sổ cái.
- Duyệt qua các khối: Sử dụng danh sách slot được trả về để truy xuất thông tin chi tiết của từng khối bằng
getBlocknếu cần. - Kiểm tra khối cơ bản: Xác minh sự hiện diện của các khối trong một phạm vi nhất định.
Tham số yêu cầu
Phương thứcgetBlocks nhận các tham số sau:
start_slot(u64, bắt buộc): Slot đầu tiên cần xét trong phạm vi (bao gồm cả slot này).end_slot(u64, tùy chọn): Slot cuối cùng cần xét trong phạm vi (bao gồm cả slot này).- Nếu không được cung cấp, truy vấn sẽ trả về các khối từ
start_slotđến slot mới nhất đã được xác nhận. - Phạm vi giữa
start_slotvàend_slot(hoặc slot mới nhất nếu bỏ quaend_slot) không được vượt quá 500.000 slot.
- Nếu không được cung cấp, truy vấn sẽ trả về các khối từ
commitment(chuỗi, tùy chọn): Chỉ định mức cam kết cho truy vấn. Nếu bỏ qua, mức cam kết mặc định của nút sẽ được sử dụng. Giá trị này được truyền dưới dạng trường duy nhất trong một đối tượng cấu hình ở vị trí tham số cuối cùng.
Cấu trúc phản hồi
Trườngresult của phản hồi JSON-RPC sẽ là một mảng các số nguyên u64. Mỗi số nguyên trong mảng đại diện cho số slot của một khối đã được xác nhận trong phạm vi được chỉ định.
- Ví dụ:
[5, 6, 7, 8, 9, 10]
Ví dụ
1. Lấy các khối trong một phạm vi slot cụ thể
Ví dụ này truy xuất danh sách các slot khối đã được xác nhận trong khoảng từ slot250000000 đến 250000010.
2. Lấy các khối từ một slot bắt đầu đến slot được xác nhận mới nhất
Ví dụ này truy xuất các slot khối đã được xác nhận, bắt đầu từ260000000 đến khối mới nhất được nút xác nhận (tuân theo giới hạn phạm vi 500.000 slot tính từ slot bắt đầu).
3. Lấy các khối với một mức cam kết cụ thể
Ví dụ này truy xuất các khối bằng mức cam kếtfinalized.
Mẹo dành cho nhà phát triển
- Giới hạn phạm vi: Hãy nhớ giới hạn phạm vi 500.000 slot. Yêu cầu phạm vi lớn hơn sẽ dẫn đến lỗi.
- Khả năng cung cấp dữ liệu của nút: Các nút có thể không lưu giữ thông tin của tất cả các slot trong lịch sử. Các giá trị
start_slotquá cũ có thể trả về mảng trống hoặc lỗi, tùy thuộc vào cấu hình và chính sách lưu giữ sổ cái của nút. - Mức cam kết của khối: Trong Alpenglow,
confirmedvàfinalizedtrả về cùng các khối đã được cam kết vĩnh viễn; nên ưu tiênfinalizedcho mã mới. Các nút khác nhau vẫn có thể tạm thời trả về kết quả khác nhau do độ trễ lan truyền. - Bổ trợ cho
getBlock:getBlocksthường được dùng làm bước đầu tiên để xác định các slot khối liên quan trước khi sử dụnggetBlockđể truy xuất đầy đủ thông tin chi tiết của từng khối trong danh sách đó. - Giải pháp phân trang thay thế: Vì
getBlockscó giới hạn phạm vi, nếu cần quét một phần rất lớn của chuỗi, bạn phải thực hiện nhiều lệnh gọi đếngetBlocksvà chia tổng phạm vi mong muốn thành các đoạn có tối đa 500.000 slot.
getBlocks để liệt kê các slot khối được cam kết vĩnh viễn trên mạng Solana.
Các phương thức liên quan
getBlock
Lấy thông tin chi tiết về một khối cụ thể
getBlocksWithLimit
Lấy một số lượng khối cố định bắt đầu từ một slot