Chuyển đến nội dung chính
Phương thức RPC getEpochInfo trả về thông tin về epoch hiện tại. Thông tin này có thể giúp bạn hiểu trạng thái hiện tại của mạng, mạng đã tiến triển đến đâu trong epoch hiện tại và thời điểm epoch tiếp theo có thể bắt đầu. Để hiểu rõ hơn cách epoch, slot và block phối hợp với nhau trên Solana, hãy tham khảo bài viết chi tiết của chúng tôi.

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

  • Theo dõi tiến trình epoch: Theo dõi chỉ số slot hiện tại trong epoch và tổng số slot của epoch để ước tính thời gian còn lại.
  • Phân tích trạng thái mạng: Lấy số epoch hiện tại, độ cao block và số lượng giao dịch đã xử lý trong epoch hiện tại.
  • Kiểm tra đồng bộ hóa: Xác minh một node có được đồng bộ hợp lý với mạng hay không bằng cách so sánh thông tin epoch của node đó.

Tham số yêu cầu

Phương thức getEpochInfo có thể nhận một đối tượng cấu hình không bắt buộc với các tham số sau:
  • commitment (chuỗi, không bắt buộc): Chỉ định mức cam kết sẽ dùng khi truy vấn sổ cái.
    • finalized: Nút sẽ truy vấn block gần nhất đã được cam kết vĩnh viễn. Nên ưu tiên 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 block gần nhất của nó. Lưu ý rằng block có thể chưa hoàn chỉnh.
    • Nếu không được cung cấp, mức cam kết mặc định là finalized.
  • 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á. Bạn có thể dùng tham số này để đảm bảo phản hồi đến từ một trạng thái đủ gần đây.

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

Trường result trong phản hồi JSON-RPC sẽ là một đối tượng chứa các trường sau:
  • absoluteSlot (u64): Số slot tuyệt đối hiện tại.
  • blockHeight (u64): Chiều cao block hiện tại.
  • epoch (u64): Số epoch hiện tại.
  • slotIndex (u64): Slot hiện tại tính tương đối từ thời điểm bắt đầu epoch hiện tại.
  • slotsInEpoch (u64): Tổng số slot trong epoch hiện tại.
  • transactionCount (u64 | null): Tổng số giao dịch đã được xử lý trong epoch hiện tại. Có thể là null nếu dữ liệu không khả dụng.

Ví dụ

1. Lấy thông tin epoch hiện tại (Không có tham số)

Ví dụ này lấy thông tin về epoch hiện tại bằng mức cam kết mặc định.

2. Lấy thông tin epoch hiện tại với mức cam kết finalized

Ví dụ này truy xuất thông tin epoch bằng mức cam kết finalized.

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

  • Các mức cam kết: processed là mức mới nhất nhưng có thể bị hoàn tác. Trong Alpenglow, confirmed và finalized có cùng độ trễ và bảo đảm hoàn tất vĩnh viễn; nên ưu tiên finalized cho mã mới.
  • Khả năng cung cấp transactionCount: Trường transactionCount có thể là null nếu nút không có sẵn thông tin này hoặc nếu thông tin không được theo dõi cho mức cam kết cụ thể.
  • Độ dài epoch: Số lượng slotsInEpoch có thể thay đổi. Bạn có thể dùng getEpochSchedule để xem thêm thông tin chi tiết về lịch trình epoch.
Hướng dẫn này cung cấp thông tin cần thiết để sử dụng phương thức RPC getEpochInfo nhằm truy xuất thông tin chi tiết về epoch hiện tại trên mạng Solana.

Các phương thức liên quan

getEpochSchedule

Lấy thông tin chi tiết về lịch trình epoch

getSlot

Lấy số slot hiện tại