Chuyển đến nội dung chính
Phương thức RPC 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.
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 đã đượ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 getBlock nế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ức getBlocks nhận các tham số sau:
  1. 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).
  2. 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_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 ở vị trí 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 đạ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ừ 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 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ết finalized.

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_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 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, confirmed và finalized trả về cùng các khối đã được cam kết vĩnh viễn; nên ưu tiên finalized cho 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: 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 để 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ì 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 đoạn có tối đa 500.000 slot.
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 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