Skip to main content
Phương thức RPC getBlocks cho phép bạn 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 bạn 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 cần tìm nạp toàn bộ nội dung của từng khối.
Tránh xử lý theo lô để có hiệu suất tốt hơnViệc xử lý các phương thức lưu trữ theo lô làm tăng đáng kể độ trễ. Không cho phép các lô có hơn 10 yêu cầu.

Các trường hợp sử dụng phổ biến

  • Xác định các khối đã 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ề để sau đó tìm nạp thông tin chi tiết cho từng khối bằng getBlock nếu cần.
  • Kiểm tra khối cơ bản: Xác minh sự hiện diện của khối trong một phạm vi nhất định.

Tham số yêu cầu

Phương thức getBlocks nhận các tham số sau:
  1. start_slot (u64, bắt buộc): Slot đầu tiên được xét trong phạm vi (bao gồm cả slot này).
  2. end_slot (u64, tùy chọn): Slot cuối cùng được 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 được xác nhận mới nhất.
    • Phạm vi giữa start_slot và end_slot (hoặc slot mới nhất nếu bỏ qua end_slot) không được vượt quá 500.000 slot.
  3. 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 ở tham số cuối cùng.

Cấu trúc phản hồi

Trường result 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 biểu thị số slot của một khối đã được xác nhận trong phạm vi đã 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 tìm nạp danh sách các slot khối đã được xác nhận từ slot 250000000 đế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 tìm nạp 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 tìm nạp các khối bằng mức cam kết confirmed.

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. Việc yêu cầu một phạm vi lớn hơn sẽ gây ra lỗi.
  • Tính khả dụng của dữ liệu nút: Các nút có thể không lưu giữ thông tin cho tất cả các slot trong quá khứ. Các giá trị start_slot quá cũ có thể trả về mảng trống hoặc lỗi, tùy thuộc vào cấu hình nút và chính sách lưu giữ sổ cái.
  • Xác nhận khối: Phương thức này trả về các khối đã được xác nhận. Tập hợp khối chính xác có thể khác nhau đôi chút tùy thuộc vào mức commitment đã chọn và nút mà bạn truy vấn, đặc biệt đối với các slot rất gần đây.
  • Bổ trợ cho getBlock: getBlocks thườ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ụng getBlock nhằm truy xuất đầy đủ thông tin chi tiết của từng khối trong danh sách đó.
  • Phương án phân trang thay thế: Vì getBlocks có 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 đến getBlocks và chia tổng phạm vi mong muốn thành các phân đoạn gồm 500.000 slot trở xuống.
Hướng dẫn này cung cấp thông tin tổng quan rõ ràng về cách sử dụng phương thức RPC getBlocks để liệt kê các slot khối đã được xác nhậ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