Skip to main content
Phương thức RPC getBlockProduction cung cấp thông tin về hoạt động sản xuất khối trong epoch hiện tại hoặc một phạm vi slot được chỉ định. Phương thức này có thể truy xuất dữ liệu cho tất cả trình xác thực hoặc một danh tính trình xác thực cụ thể. Thông tin này hữu ích để giám sát hiệu suất của trình xác thực và tìm hiểu các mô hình sản xuất khối trên mạng.

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

  • Giám sát hiệu suất của trình xác thực: Theo dõi số khối được tạo và các slot lãnh đạo của một trình xác thực cụ thể.
  • Phân tích hiệu suất epoch: Xem tổng quan về hoạt động sản xuất khối của tất cả trình xác thực trong epoch hiện tại hoặc một epoch trước đó.
  • Xác định các slot bị bỏ lỡ: Kiểm tra xem trình xác thực có bỏ lỡ các slot lãnh đạo được chỉ định hay không.
  • Kiểm tra tình trạng mạng: Thu thập dữ liệu về hiệu quả sản xuất khối tổng thể.

Tham số yêu cầu

Phương thức getBlockProduction chấp nhận một đối tượng cấu hình không bắt buộc với các tham số sau:
  1. commitment (chuỗi, không bắt buộc): Chỉ định mức cam kết dùng 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.
  2. range (đối tượng, không bắt buộc): Xác định phạm vi slot cần truy vấn.
    • firstSlot (u64): Slot đầu tiên cần lấy thông tin sản xuất khối (bao gồm slot này).
    • lastSlot (u64, không bắt buộc): Slot cuối cùng cần lấy thông tin sản xuất khối (bao gồm slot này). Nếu bỏ qua, phương thức sẽ trả về dữ liệu sản xuất khối của epoch hiện tại cho đến slot hiện tại.
  3. identity (chuỗi, không bắt buộc): Khóa công khai được mã hóa base58 của danh tính trình xác thực. Nếu được cung cấp, phản hồi sẽ chỉ bao gồm thông tin sản xuất khối của trình xác thực cụ thể này. Nếu bỏ qua, phương thức sẽ trả về thông tin của tất cả trình xác thực trong phạm vi được chỉ định (hoặc epoch hiện tại).
Lưu ý: Phải cung cấp ít nhất một trong hai giá trị identity hoặc range.firstSlot. Nếu không cung cấp identity thì bắt buộc phải có tham số range.

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

Trường result của phản hồi JSON-RPC sẽ là một đối tượng chứa:
  • context (đối tượng):
    • slot (u64): Slot tại thời điểm truy xuất thông tin.
  • value (đối tượng):
    • byIdentity (đối tượng): Một đối tượng trong đó các khóa là chuỗi danh tính trình xác thực (khóa công khai được mã hóa base58), còn các giá trị là những đối tượng chứa:
      • leaderSlots (u64): Số slot lãnh đạo được chỉ định cho trình xác thực này trong phạm vi/epoch được truy vấn.
      • blocksProduced (u64): Số khối do trình xác thực này tạo ra trong phạm vi/epoch được truy vấn.
    • range (đối tượng):
      • firstSlot (u64): Slot đầu tiên của phạm vi được truy vấn.
      • lastSlot (u64): Slot cuối cùng của phạm vi được truy vấn.

Mẹo dành cho nhà phát triển

  • Hiểu ranh giới epoch: Khi truy vấn bằng identity mà không có range, dữ liệu được trả về thuộc epoch hiện tại cho đến slot mới nhất mà nút đã xử lý. Nếu cần dữ liệu của một epoch trước đó đầy đủ cho một trình xác thực cụ thể, bạn cần xác định firstSlot và lastSlot của epoch đó.
  • Khả năng cung cấp dữ liệu của nút: Phạm vi dữ liệu sản xuất khối trong quá khứ có thể khác nhau giữa các nút RPC. Một số phạm vi slot quá cũ có thể không có trên tất cả các nút.
  • Giám sát hiệu suất: getBlockProduction đóng vai trò quan trọng khi xây dựng bảng điều khiển hoặc cảnh báo liên quan đến thời gian hoạt động của trình xác thực và tỷ lệ sản xuất khối thành công.
  • Kết hợp với getLeaderSchedule: Để phân tích chuyên sâu hơn, bạn có thể đối chiếu dữ liệu getBlockProduction với kết quả của getLeaderSchedule để xem những slot lãnh đạo cụ thể nào đã được tạo hoặc bị bỏ lỡ.
  • Danh tính so với tất cả trình xác thực: Truy vấn không có identity có thể trả về lượng dữ liệu lớn, đặc biệt nếu không chỉ định range hoặc chỉ định một range rộng. Hãy lưu ý đến kích thước phản hồi và yêu cầu xử lý.

Ví dụ

1. Lấy dữ liệu sản xuất khối của epoch hiện tại (tất cả trình xác thực)

Ví dụ này truy xuất dữ liệu sản xuất khối của tất cả trình xác thực trong epoch hiện tại.

2. Lấy dữ liệu sản xuất khối của một trình xác thực cụ thể trong epoch hiện tại

Ví dụ này truy xuất dữ liệu sản xuất khối của một danh tính trình xác thực cụ thể trong epoch hiện tại.

3. Lấy dữ liệu sản xuất khối cho một phạm vi slot và trình xác thực cụ thể

Ví dụ này truy xuất dữ liệu sản xuất khối của một trình xác thực cụ thể trong phạm vi slot đã xác định.
Hướng dẫn này giúp bạn hiểu rõ cách sử dụng phương thức RPC getBlockProduction để phân tích hoạt động sản xuất khối trên Solana.

Phương thức liên quan

getLeaderSchedule

Lấy toàn bộ lịch lãnh đạo để đối chiếu với dữ liệu sản xuất

getVoteAccounts

Lấy thông tin về tất cả trình xác thực tham gia bỏ phiếu