> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Cách sử dụng getSlotLeaders

> Tìm hiểu các trường hợp sử dụng getSlotLeaders, ví dụ mã, tham số yêu cầu, cấu trúc phản hồi và mẹo.

Phương thức RPC [`getSlotLeaders`](https://www.helius.dev/docs/api-reference/rpc/http/getslotleaders) cho phép bạn truy xuất danh sách khóa công khai của các trình xác thực được lên lịch làm leader cho một phạm vi slot cụ thể. Phương thức này có thể giúp bạn nắm được trình tự sắp tới của các nhà sản xuất khối.

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

* **Dự đoán nhà sản xuất khối trong tương lai gần:** Xác định những trình xác thực dự kiến sẽ sản xuất khối trong tương lai gần cho một phạm vi slot giới hạn.
* **Phân tích sự phân bổ leader:** Quan sát trình tự leader trong một phần của epoch.
* **Công cụ phân tích mạng:** Các công cụ giám sát hoặc phân tích hành vi mạng có thể sử dụng phương thức này để tìm hiểu các mẫu leader.

## Tham số yêu cầu

1. **`startSlot`** (`u64`): (Bắt buộc) Slot đầu tiên (tính cả slot này) cần lấy lịch leader.
2. **`limit`** (`u64`): (Bắt buộc) Số lượng slot liên tiếp cần truy xuất leader. Giới hạn phải nằm trong khoảng từ 1 đến 5.000.

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

Trường `result` trong phản hồi JSON-RPC là một mảng gồm các chuỗi được mã hóa base-58. Mỗi chuỗi là khóa công khai (danh tính) của một trình xác thực. Thứ tự các khóa công khai trong mảng tương ứng với leader của từng slot trong phạm vi được yêu cầu, bắt đầu từ `startSlot`.

**Phản hồi mẫu (với giới hạn 3 slot):**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": [
    "ValidatorPubkey1XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "ValidatorPubkey2XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "ValidatorPubkey3XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  ],
  "id": 1
}
```

## Ví dụ

### 1. Lấy leader của slot trong một phạm vi cụ thể

Ví dụ này lấy leader của 5 slot, bắt đầu từ một slot được chỉ định.

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  # Replace STARTING_SLOT with a recent or future slot number
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlotLeaders",
      "params": [
        180000000, 
        5          
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getUpcomingSlotLeaders() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    const startSlot = 180000000; // Replace with a recent or future slot number
    const limit = 5;

    try {
      const leaders = await connection.getSlotLeaders(startSlot, limit);
      console.log(`Slot leaders starting from slot ${startSlot} (limit ${limit}):`);
      leaders.forEach((leader, index) => {
        console.log(`  Slot ${startSlot + index}: ${leader}`);
      });
    } catch (error) {
      console.error('Error fetching slot leaders:', error);
    }
  }

  getUpcomingSlotLeaders();
  ```
</CodeGroup>

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

* **Giới hạn:** Tham số `limit` chỉ định số lượng leader của các slot liên tiếp cần trả về, tối đa là 5.000. Điều này cho phép bạn xem trước một số lượng lớn slot trong một epoch.
* **Ranh giới epoch:** Lịch leader được xác định cho toàn bộ epoch, như mô tả chi tiết trong hướng dẫn về [Slot, khối và epoch](https://www.helius.dev/blog/solana-slots-blocks-and-epochs). Phương thức này cho phép bạn truy vấn từng phần của lịch đó. Nếu phạm vi vượt qua ranh giới epoch, các leader được trả về vẫn dựa trên lịch của epoch chứa `startSlot`, cho đến giới hạn bạn cung cấp hoặc cuối lịch đã biết của epoch đó nếu nút RPC không dự kiến xa hơn cho lệnh gọi này.
* **Slot trong tương lai:** Bạn có thể yêu cầu leader cho các slot trong tương lai. Nút RPC sẽ trả về các leader đã lên lịch dựa trên lịch leader hiện tại của epoch liên quan.
* **Độ chính xác:** Lịch leader được cố định trong một epoch, vì vậy các leader được trả về thường chính xác, trừ khi có tình huống mạng bất thường hoặc thay đổi đối với tập hợp trình xác thực có thể ảnh hưởng đến việc tính toán các epoch tiếp theo.
* **Khác biệt với `getLeaderSchedule`:** Trong khi `getSlotLeaders` cung cấp trực tiếp danh sách cho một phạm vi, `getLeaderSchedule` cung cấp toàn bộ lịch cho cả epoch, ánh xạ danh tính trình xác thực với tất cả slot được chỉ định cho trình xác thực đó trong epoch. `getSlotLeaders` trực tiếp hơn nếu bạn chỉ cần danh sách tuần tự cho một phạm vi cụ thể, có giới hạn.

Sử dụng `getSlotLeaders` khi bạn cần biết trình tự các nhà sản xuất khối cho một phân đoạn slot sắp tới đã xác định.

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

<CardGroup cols={2}>
  <Card title="getLeaderSchedule" href="/docs/vi/api-reference/rpc/http/getleaderschedule">
    Lấy toàn bộ lịch leader cho một epoch
  </Card>

  <Card title="getSlotLeader" href="/docs/vi/api-reference/rpc/http/getslotleader">
    Lấy leader của slot hiện tại
  </Card>
</CardGroup>
