getLeaderSchedule trả về thông tin phân công quyền tạo khối cho các trình xác thực trong một epoch cụ thể. Việc hiểu lịch trình leader có thể hữu ích khi phân tích mạng, dự đoán trình xác thực nào sẽ tạo khối tại những thời điểm nhất định hoặc xây dựng các công cụ tương tác với những leader cụ thể.
Các trường hợp sử dụng phổ biến
- Giám sát mạng: Quan sát sự phân bổ các slot leader giữa các trình xác thực trong một epoch.
- Định tuyến giao dịch (Nâng cao): Một số ứng dụng nâng cao có thể thử định tuyến giao dịch đến leader hiện tại hoặc sắp tới, mặc dù việc này thường do mạng và các node RPC xử lý.
- Phân tích hiệu suất trình xác thực: Đối chiếu lịch trình leader với hoạt động tạo khối thực tế để đánh giá thời gian hoạt động và hiệu suất của trình xác thực.
- Hiểu tiến trình của epoch: Xem các trình xác thực chịu trách nhiệm tạo khối trong suốt một epoch.
Tham số yêu cầu
Phương thức này có thể nhận tối đa hai tham số tùy chọn:slot(u64, tùy chọn): Số slot. Nếu được cung cấp, hệ thống sẽ truy xuất lịch trình leader của epoch chứa slot này. Nếu lànullhoặc bị bỏ qua, hệ thống sẽ truy xuất lịch trình leader của epoch hiện tại.config(đối tượng, tùy chọn): Đối tượng cấu hình có thể chứa:commitment(chuỗi, tùy chọn): Chỉ định mức commitment. Nếu không được cung cấp, commitment mặc định của node sẽ được sử dụng.identity(chuỗi, tùy chọn): Khóa công khai của trình xác thực được mã hóa base-58. Nếu được cung cấp, lịch trình trả về sẽ chỉ bao gồm các slot được gán cho trình xác thực cụ thể này.
Cấu trúc phản hồi
Trườngresult trong phản hồi JSON-RPC sẽ là:
null: Nếu không tìm thấy epoch tương ứng vớislotđược yêu cầu (hoặc epoch hiện tại nếu không cung cấp slot), hoặc nếu lịch trình leader của epoch đó không khả dụng (ví dụ: một epoch trong tương lai chưa được tính toán).- Một đối tượng: Nếu tìm thấy lịch trình. Đối tượng này là một ánh xạ, trong đó:
- Mỗi khóa là khóa công khai (danh tính) của một trình xác thực được mã hóa base-58.
- Giá trị tương ứng là một mảng số. Mỗi số là chỉ mục slot tính tương đối từ đầu epoch mà trình xác thực đó giữ vai trò leader.
1000 và một trình xác thực có [0, 1, 5] trong lịch trình, điều đó có nghĩa là trình xác thực này là leader của các slot 1000, 1001 và 1005.
Ví dụ
1. Lấy lịch trình leader của epoch hiện tại
Ví dụ này truy xuất toàn bộ lịch trình leader của epoch hiện tại.2. Lấy lịch trình leader của một trình xác thực cụ thể trong một epoch cụ thể (theo slot)
Ví dụ này truy xuất lịch trình leader của một danh tính trình xác thực nhất định trong epoch chứa slot200000.
Mẹo dành cho nhà phát triển
- Ranh giới epoch: Lịch trình leader được cố định trong toàn bộ một epoch. Bạn có thể sử dụng
getEpochInfođể tìm slot bắt đầu và kết thúc của một epoch. - Các epoch trong tương lai: Việc yêu cầu lịch trình của một epoch ở tương lai xa có thể trả về
nullnếu mạng chưa tính toán epoch đó. - Chỉ mục slot tương đối: Hãy nhớ rằng số slot trong phản hồi được tính tương đối so với slot đầu tiên của epoch được yêu cầu, không phải số slot tuyệt đối trên blockchain.
- Phản hồi lớn: Đối với lịch trình đầy đủ của một epoch mà không có bộ lọc danh tính, phản hồi có thể rất lớn vì liệt kê tất cả trình xác thực và các slot được gán cho họ.
getLeaderSchedule nhằm truy vấn thông tin phân công trình tạo khối cho bất kỳ epoch nào trên mạng Solana.
Các phương thức liên quan
getEpochInfo
Lấy thông tin epoch hiện tại, bao gồm các ranh giới slot
getSlotLeaders
Lấy các leader cho một phạm vi slot cụ thể