> ## 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.

# Cara Menggunakan getBlocksWithLimit

> Pelajari kasus penggunaan getBlocksWithLimit, contoh kode, parameter permintaan, struktur respons, dan tips.

Metode RPC [`getBlocksWithLimit`](https://www.helius.dev/docs/api-reference/rpc/http/getblockswithlimit) memungkinkan Anda mengambil daftar nomor slot blok yang telah dikonfirmasi, dimulai dari slot tertentu dan mengembalikan hingga batas yang diberikan. Metode ini berguna saat Anda memerlukan sejumlah [blok](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) terkonfirmasi berikutnya dari titik tertentu dalam ledger.

<Warning>
  **Hindari Pemrosesan Batch untuk Performa yang Lebih Baik**

  Pemrosesan metode arsip secara batch meningkatkan latensi secara signifikan. Batch yang berisi lebih dari 10 permintaan tidak diizinkan.
</Warning>

## Kasus Penggunaan Umum

* **Mengambil Sejumlah Tetap Blok Berikutnya:** Dapatkan sejumlah slot blok yang telah dikonfirmasi setelah slot awal tertentu.
* **Eksplorasi Blok dengan Paginasi:** Ambil blok secara bertahap saat menganalisis segmen blockchain.
* **Pemantauan Blok Terbaru:** Dapatkan N blok terakhir dari slot terbaru yang diketahui.

## Parameter Permintaan

Metode `getBlocksWithLimit` menerima parameter berikut:

1. **`start_slot`** (u64, wajib): Slot pertama yang dipertimbangkan (inklusif).
2. **`limit`** (u64, wajib): Jumlah maksimum slot blok yang akan dikembalikan. Jumlah total slot yang dikueri (dari `start_slot` hingga `limit` blok setelahnya) **tidak boleh melebihi 500.000 slot**.
3. **`commitment`** (string, opsional): Menentukan tingkat komitmen untuk kueri. Jika dihilangkan, komitmen default node akan digunakan. Nilai ini diteruskan sebagai satu-satunya kolom dalam objek konfigurasi sebagai parameter terakhir.

## Struktur Respons

Kolom `result` dalam respons JSON-RPC akan berupa array bilangan bulat u64. Setiap bilangan bulat dalam array mewakili nomor slot blok yang telah dikonfirmasi, dimulai dari `start_slot` hingga `limit` yang ditentukan.

* Contoh: Jika `start_slot` adalah 5 dan `limit` adalah 3, kemungkinan hasilnya adalah `[5, 6, 7]`.

## Contoh

### 1. Mendapatkan Blok dalam Jumlah Terbatas dari Slot Awal

Contoh ini mengambil daftar hingga 5 slot blok yang telah dikonfirmasi, dimulai dari slot `280000000`.

<CodeGroup>
  ```bash cURL theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlocksWithLimit",
      "params": [
        280000000, 
        5 
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getBlocksWithLimitExample(startSlot, limit) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const blocks = await connection.getBlocksWithLimit(startSlot, limit);
      console.log(`Up to ${limit} confirmed blocks starting from slot ${startSlot}:`, blocks);
    } catch (error) {
      console.error('Error fetching blocks with limit:', error);
    }
  }

  // Example usage:
  const startSlot = 280000000;
  const limit = 5;
  getBlocksWithLimitExample(startSlot, limit);
  ```
</CodeGroup>

### 2. Mendapatkan Blok dengan Batas dan Tingkat Komitmen Tertentu

Contoh ini mengambil hingga 3 blok, dimulai dari slot `290000000` dengan tingkat komitmen `confirmed`.

<CodeGroup>
  ```bash cURL theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlocksWithLimit",
      "params": [
        290000000,
        3,
        { "commitment": "confirmed" }
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getBlocksWithLimitAndCommitment(startSlot, limit) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const blocks = await connection.getBlocksWithLimit(startSlot, limit, { commitment: 'confirmed' });
      console.log(`Up to ${limit} confirmed blocks (with 'confirmed' commitment) starting from slot ${startSlot}:`, blocks);
    } catch (error) {
      console.error('Error fetching blocks with limit and commitment:', error);
    }
  }

  // Example usage:
  const commitStartSlot = 290000000;
  const commitLimit = 3;
  getBlocksWithLimitAndCommitment(commitStartSlot, commitLimit);
  ```
</CodeGroup>

## Tips untuk Developer

* **Penjelasan Rentang:** Parameter `limit` menentukan jumlah maksimum *slot* blok yang akan dikembalikan. Batas 500.000 slot berlaku untuk rentang konseptual yang dipindai (yaitu, dari `start_slot` hingga `start_slot + limit - 1`). Pastikan rentang konseptual ini tidak melebihi 500.000 slot, meskipun lebih sedikit blok aktual yang ditemukan dan dikembalikan dalam rentang tersebut.
* **Ketersediaan Data Node:** Node mungkin tidak menyimpan informasi untuk semua slot historis. `start_slot` yang sangat lama mungkin mengembalikan lebih sedikit blok daripada `limit` yang ditentukan, atau array kosong, tergantung pada retensi ledger node.
* **Konfirmasi Blok:** Metode ini mengembalikan blok yang telah *dikonfirmasi*. Kumpulan blok yang tepat dapat sedikit berbeda, tergantung pada tingkat `commitment` yang dipilih dan node yang Anda kueri, terutama untuk slot yang sangat baru.
* **Kekhususan Kasus Penggunaan:** `getBlocksWithLimit` ideal saat Anda mengetahui titik awal dan memerlukan sejumlah tetap blok berikutnya. Jika Anda memerlukan semua blok dalam rentang slot yang diketahui, `getBlocks` mungkin lebih sesuai.

Panduan ini memberikan gambaran umum yang jelas tentang cara menggunakan metode RPC `getBlocksWithLimit` untuk mencantumkan sejumlah slot blok terkonfirmasi tertentu di jaringan Solana.

## Metode Terkait

<CardGroup cols={2}>
  <Card title="getBlocks" href="/docs/id/api-reference/rpc/http/getblocks">
    Dapatkan semua blok dalam suatu rentang slot
  </Card>

  <Card title="getBlock" href="/docs/id/api-reference/rpc/http/getblock">
    Dapatkan informasi mendetail untuk blok tertentu
  </Card>
</CardGroup>
