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

# Solana Yellowstone gRPC: Streaming Data Real-Time

> Streaming data blockchain Solana real-time berperforma tinggi menggunakan protokol gRPC dengan pemfilteran lanjutan dan pengiriman berlatensi sangat rendah untuk pengembang.

<Note>
  **Mencari layanan gRPC terkelola dari Helius?** Halaman ini mendokumentasikan protokol terbuka **Yellowstone gRPC** sebagai referensi. Untuk penggunaan produksi dengan pemutaran ulang riwayat selama 48 jam, failover multi-node, dan lingkungan yang dikelola sepenuhnya, lihat [LaserStream](/docs/id/laserstream) — layanan gRPC kompatibel Yellowstone dari Helius.
</Note>

## Apa itu Yellowstone gRPC?

Yellowstone gRPC menyediakan **streaming berlatensi sangat rendah** untuk data blockchain Solana dengan terhubung langsung ke leader Solana guna menerima shred saat dihasilkan. Hal ini mengirimkan data real-time ke aplikasi Anda dengan penundaan minimal.

<CardGroup cols={2}>
  <Card title="High Performance" icon="bolt">
    Protokol biner dengan serialisasi efisien untuk throughput maksimum dan penggunaan bandwidth minimal
  </Card>

  <Card title="Real-time Streaming" icon="wave-pulse">
    Streaming dua arah dengan pembuatan dan pembatalan langganan secara langsung
  </Card>

  <Card title="Advanced Filtering" icon="filter">
    Kontrol secara presisi data yang Anda terima dengan filter akun, transaksi, dan program
  </Card>

  <Card title="Multiple Data Types" icon="database">
    Berlangganan akun, transaksi, slot, blok, dan entri dalam satu stream
  </Card>
</CardGroup>

## Jenis Stream

<Tabs>
  <Tab title="Accounts">
    **Pantau perubahan akun secara real-time**

    Lacak pembaruan saldo, perubahan data, perubahan kepemilikan, serta peristiwa pembuatan/penghapusan akun dengan opsi pemfilteran yang presisi.

    <Card title="Account Monitoring Guide" icon="user" href="/docs/id/grpc/account-monitoring">
      Pelajari cara melakukan streaming pembaruan akun dengan contoh pemfilteran
    </Card>
  </Tab>

  <Tab title="Transactions">
    **Lakukan streaming data transaksi dan hasil eksekusi**

    Terima tanda tangan transaksi, status eksekusi, interaksi program, dan perubahan saldo token saat terjadi.

    <Card title="Transaction Monitoring Guide" icon="receipt" href="/docs/id/grpc/transaction-monitoring">
      Pantau transaksi dengan pemfilteran program dan detail eksekusi
    </Card>
  </Tab>

  <Tab title="Slots & Blocks">
    **Lacak konsensus jaringan dan produksi blok**

    Pantau pembaruan slot, pembuatan blok, dan perubahan status jaringan di berbagai tingkat komitmen.

    <Card title="Slot & Block Monitoring Guide" icon="cube" href="/docs/id/grpc/slot-and-block-monitoring">
      Lakukan streaming slot dan blok beserta detail transaksi
    </Card>
  </Tab>

  <Tab title="Entries">
    **Pemantauan entri blockchain tingkat rendah**

    Akses unit eksekusi fundamental yang berisi kumpulan transaksi dan hasilnya.

    <Card title="Entry Monitoring Guide" icon="code" href="/docs/id/grpc/entry-monitoring">
      Lakukan streaming entri blok beserta kumpulan transaksi
    </Card>
  </Tab>
</Tabs>

## Cara Mengakses Yellowstone gRPC

Pilih opsi yang paling sesuai dengan kebutuhan Anda:

### LaserStream

[LaserStream](/docs/id/laserstream) adalah layanan gRPC multi-tenant dengan ketersediaan tinggi, failover otomatis, dan [kemampuan pemutaran ulang riwayat selama 48 jam](/docs/id/laserstream/historical-replay). Ideal untuk sebagian besar aplikasi produksi.

<Tip>
  Mulai gunakan LaserStream dari [Dasbor Helius](https://dashboard.helius.dev/laserstream) Anda. Mainnet memerlukan paket Business atau Professional; Devnet tersedia pada paket Developer dan yang lebih tinggi. Lihat [Paket & Harga](/docs/id/billing/plans) untuk detailnya.
</Tip>

### Node Khusus

[Node Khusus](/docs/id/dedicated-nodes) menawarkan endpoint gRPC eksklusif dengan isolasi sumber daya yang terjamin. Paling sesuai untuk kebutuhan khusus dan operator tingkat lanjut.

### Bandingkan Opsi gRPC

Perlu bantuan untuk menentukan pilihan? Baca [panduan perbandingan gRPC](/docs/id/laserstream/laserstream-vs-dedicated-nodes) kami untuk menentukan apakah LaserStream atau node khusus merupakan opsi terbaik bagi kasus penggunaan Anda.

## Mulai Cepat

Siap memulai streaming?

Mulailah dengan membaca panduan penyiapan lengkap kami, atau mulai dari dasbor Anda:

<CardGroup>
  <Card title="Yellowstone gRPC Quickstart" icon="rocket" href="/docs/id/grpc/quickstart">
    Mencakup instalasi, autentikasi, dan konfigurasi stream pertama Anda
  </Card>

  <Card title="Get Started" icon="rocket" href="https://dashboard.helius.dev/laserstream">
    Aktifkan LaserStream dari Dasbor Helius Anda dan mulai streaming.
  </Card>
</CardGroup>

## Struktur Permintaan Langganan

Setiap langganan gRPC memerlukan permintaan yang disusun dengan benar. Berikut cara membuatnya:

### Parameter Inti

<ParamField path="commitment" type="string" required>
  **Tingkat komitmen untuk konsistensi data**

  * `processed` - Transaksi diproses oleh node
  * `confirmed` - Transaksi dikonfirmasi oleh klaster
  * `finalized` - Transaksi difinalisasi oleh klaster
</ParamField>

<ParamField path="ping" type="boolean" optional>
  **Pertahankan koneksi agar tetap aktif**

  Atur ke `true` untuk menerima pesan pong setiap 15 detik, sehingga mencegah timeout koneksi dari load balancer atau proksi.
</ParamField>

<ParamField path="accounts_data_slice" type="array" optional>
  **Optimalkan transfer data**

  Minta rentang byte tertentu dari data akun:

  ```json theme={"system"}
  [
    { "offset": 0, "length": 100 },
    { "offset": 200, "length": 50 }
  ]
  ```
</ParamField>

### Konfigurasi Filter

<Accordion title="Account Filters">
  <ParamField path="account" type="array<string>">
    Array kunci publik akun yang akan dipantau (OR logis)
  </ParamField>

  <ParamField path="owner" type="array<string>">
    Array kunci publik pemilik yang akan dipantau (OR logis)
  </ParamField>

  <ParamField path="filters" type="array<object>">
    Filter DataSize dan Memcmp (AND logis):

    ```json theme={"system"}
    [
      { "dataSize": 165 },
      { "memcmp": { "offset": 0, "bytes": "base58_encoded_bytes" } }
    ]
    ```
  </ParamField>

  <Info>
    Saat beberapa jenis filter digunakan, semuanya beroperasi sebagai AND logis. Di dalam array, nilai beroperasi sebagai OR logis.
  </Info>
</Accordion>

<Accordion title="Transaction Filters">
  <ParamField path="vote" type="boolean">
    Sertakan/kecualikan transaksi voting
  </ParamField>

  <ParamField path="failed" type="boolean">
    Sertakan/kecualikan transaksi yang gagal
  </ParamField>

  <ParamField path="signature" type="string">
    Pantau tanda tangan transaksi tertentu
  </ParamField>

  <ParamField path="account_include" type="array<string>">
    Sertakan transaksi yang melibatkan salah satu akun ini (OR logis)
  </ParamField>

  <ParamField path="account_exclude" type="array<string>">
    Kecualikan transaksi yang melibatkan salah satu akun ini
  </ParamField>

  <ParamField path="account_required" type="array<string>">
    Sertakan transaksi yang melibatkan semua akun ini (AND logis)
  </ParamField>
</Accordion>

<Accordion title="Block Filters">
  <ParamField path="account_include" type="array<string>">
    Filter transaksi dan akun di dalam blok
  </ParamField>

  <ParamField path="include_transactions" type="boolean">
    Sertakan semua transaksi di dalam blok
  </ParamField>

  <ParamField path="include_accounts" type="boolean">
    Sertakan semua pembaruan akun di dalam blok
  </ParamField>

  <ParamField path="include_entries" type="boolean">
    Sertakan semua entri di dalam blok
  </ParamField>
</Accordion>

<Accordion title="Slot Filters">
  <ParamField path="filter_by_commitment" type="boolean" default="false">
    Jika `true`, hanya terima pembaruan slot untuk tingkat komitmen yang ditentukan. Jika `false`, terima pembaruan untuk semua tingkat komitmen.
  </ParamField>
</Accordion>

***

## Contoh: Pemantauan Transaksi Dasar

Berikut contoh lengkap untuk membantu Anda memulai:

```typescript theme={"system"}
import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc";

const client = new Client("your-grpc-endpoint", "your-api-token", {
  "grpc.max_receive_message_length": 64 * 1024 * 1024
});

const stream = await client.subscribe();

// Handle incoming data
stream.on("data", (data) => {
  if (data.transaction) {
    console.log(`Transaction: ${data.transaction.signature}`);
    console.log(`Success: ${!data.transaction.meta?.err}`);
  }
});

// Subscribe to transactions with complete request structure
const subscribeRequest: SubscribeRequest = {
  transactions: {
    client: {
      accountInclude: [
        "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", // Token Program
        "11111111111111111111111111111111"               // System Program
      ],
      accountExclude: [],
      accountRequired: [],
      vote: false,
      failed: false
    }
  },
  commitment: CommitmentLevel.CONFIRMED,
  ping: { id: 1 }
};

stream.write(subscribeRequest);
```

<Note>
  Ini adalah contoh dasar. Untuk penggunaan produksi, terapkan penanganan kesalahan, logika koneksi ulang, dan pemrosesan data yang tepat. Lihat panduan terperinci kami untuk implementasi lengkap.
</Note>

***

## Siap Memulai?

<CardGroup cols={2}>
  <Card title="Complete Setup Guide" icon="rocket" href="/docs/id/grpc/quickstart">
    Instalasi, autentikasi, dan implementasi stream pertama
  </Card>

  <Card title="Stream Pump AMM Data" icon="chart-line" href="/docs/id/grpc/stream-pump-amm-data">
    Contoh nyata: pantau transaksi Pump AMM
  </Card>
</CardGroup>

## Sumber Daya Lanjutan

* **[Repositori Sumber Yellowstone gRPC](https://github.com/rpcpool/yellowstone-grpc)** - Definisi protobuf dan contoh lengkap
* **[Komunitas Discord](https://discord.com/invite/6GXdee3gBj)** - Dapatkan bantuan dari para pengembang dan tim Helius
* **[Dokumentasi LaserStream](/docs/id/laserstream)** - Layanan gRPC yang ditingkatkan dengan fitur tambahan
