Chuyển đến nội dung chính
Phương thức RPC getBlockHeight là một cách đơn giản để truy vấn chiều cao khối hiện tại từ một nút Solana. Chiều cao khối biểu thị số khối đã được xử lý kể từ khối khởi nguyên (slot 0). Phương thức này hữu ích để nhanh chóng xác định chuỗi đã tiến triển đến đâu hoặc tham chiếu chiều cao khối mới nhất ở một mức cam kết cụ thể.

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

  • Theo dõi tiến trình của chuỗi: Gọi phương thức này định kỳ để theo dõi sự tiến triển của chuỗi.
  • Lấy thông tin nhanh về độ dài chuỗi: Xác định tổng số khối đã được xử lý đến một thời điểm nhất định (dựa trên mức cam kết).
  • Đối chiếu với dữ liệu khác: Sử dụng chiều cao khối làm điểm tham chiếu khi phân tích dữ liệu hoặc sự kiện khác trên chuỗi.

Tham số

getBlockHeight có thể nhận một đối tượng cấu hình làm tham số đầu tiên (hoặc được gọi không có tham số để sử dụng các giá trị mặc định):
  1. config (đối tượng, không bắt buộc): Một đối tượng cấu hình có các trường sau:
    • commitment (chuỗi, không bắt buộc): Chỉ định mức cam kết dùng cho truy vấn. Mặc định là finalized.
      • finalized: Nút sẽ truy vấn khối được cam kết vĩnh viễn gần đây nhất. Nên dùng giá trị này cho mã mới.
      • confirmed: Trong Alpenglow, tương đương với finalized; được giữ lại để đảm bảo khả năng tương thích.
      • processed: Nút sẽ truy vấn khối gần đây nhất của nó. Lưu ý rằng khối có thể chưa hoàn chỉnh.
    • minContextSlot (số, không bắt buộc): Slot tối thiểu mà tại đó yêu cầu có thể được đánh giá. Điều này đảm bảo chiều cao khối trả về thuộc một slot lớn hơn hoặc bằng minContextSlot.
Nếu không cung cấp tham số, phương thức thường mặc định sử dụng mức cam kết finalized.

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

  • Mức cam kết rất quan trọng: processed có thể trả về một chiều cao mới hơn nhưng chỉ mang tính tạm thời. Trong Alpenglow, confirmed và finalized trả về cùng một chiều cao được cam kết vĩnh viễn; nên dùng finalized cho mã mới.
  • minContextSlot để đảm bảo tính nhất quán: Sử dụng minContextSlot nếu cần đảm bảo chiều cao khối được truy vấn từ một trạng thái ít nhất cũng mới bằng một slot cụ thể mà bạn đang theo dõi.
  • Không phải số slot: Hãy nhớ rằng chiều cao khối khác với số slot. Slot là một khoảng thời gian và không phải slot nào cũng tạo ra một khối (những slot này được gọi là slot bị bỏ qua). Chiều cao khối là số lượng khối thực tế đã được tạo ra.
  • Kiểm tra cơ bản về tình trạng chuỗi: Tuy đơn giản, getBlockHeight có thể là một phần của quy trình kiểm tra cơ bản về tình trạng hoặc khả năng đồng bộ hóa của chuỗi cho ứng dụng hoặc hệ thống giám sát của bạn.

Phản hồi

Trường result của phản hồi JSON-RPC sẽ là một số duy nhất:
  • blockHeight (số): Chiều cao khối hiện tại (u64) của nút theo mức cam kết đã chỉ định.
Ví dụ về phản hồi JSON:
Giá trị này biểu thị số lượng khối trên chuỗi dài nhất, tính từ khối khởi nguyên (slot 0) đến phần đầu hiện tại của chuỗi, theo góc nhìn của nút được truy vấn.

Ví dụ: Lấy chiều cao khối hiện tại

Hãy lấy chiều cao khối hiện tại từ RPC Devnet của Helius. Lưu ý: Thay YOUR_API_KEY bằng khóa API Helius thực tế của bạn trong các ví dụ bên dưới.