> ## 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: Truyền dữ liệu theo thời gian thực

> Truyền dữ liệu blockchain Solana theo thời gian thực với hiệu suất cao bằng giao thức gRPC, có khả năng lọc nâng cao và độ trễ cực thấp dành cho nhà phát triển.

<Note>
  **Bạn đang tìm dịch vụ gRPC được quản lý của Helius?** Trang này cung cấp tài liệu tham khảo về giao thức **Yellowstone gRPC** mở. Để sử dụng trong môi trường production với khả năng phát lại dữ liệu lịch sử trong 48 giờ, chuyển đổi dự phòng giữa nhiều node và môi trường được quản lý hoàn toàn, hãy xem [LaserStream](/docs/vi/laserstream) — dịch vụ gRPC tương thích với Yellowstone của Helius.
</Note>

## Yellowstone gRPC là gì?

Yellowstone gRPC cung cấp khả năng **truyền dữ liệu với độ trễ cực thấp** cho blockchain Solana bằng cách kết nối trực tiếp với các leader của Solana để nhận shred ngay khi chúng được tạo. Nhờ đó, ứng dụng của bạn nhận được dữ liệu theo thời gian thực với độ trễ tối thiểu.

<CardGroup cols={2}>
  <Card title="High Performance" icon="bolt">
    Giao thức nhị phân với cơ chế tuần tự hóa hiệu quả để tối đa hóa thông lượng và giảm thiểu mức sử dụng băng thông
  </Card>

  <Card title="Real-time Streaming" icon="wave-pulse">
    Truyền hai chiều, cho phép tạo và hủy đăng ký ngay lập tức
  </Card>

  <Card title="Advanced Filtering" icon="filter">
    Kiểm soát chính xác dữ liệu nhận được bằng các bộ lọc tài khoản, giao dịch và chương trình
  </Card>

  <Card title="Multiple Data Types" icon="database">
    Đăng ký nhận dữ liệu tài khoản, giao dịch, slot, block và mục nhập trong một luồng duy nhất
  </Card>
</CardGroup>

## Các loại luồng

<Tabs>
  <Tab title="Accounts">
    **Theo dõi thay đổi tài khoản theo thời gian thực**

    Theo dõi các cập nhật số dư, thay đổi dữ liệu, thay đổi quyền sở hữu và sự kiện tạo/xóa tài khoản với các tùy chọn lọc chính xác.

    <Card title="Account Monitoring Guide" icon="user" href="/docs/vi/grpc/account-monitoring">
      Tìm hiểu cách truyền các cập nhật tài khoản qua những ví dụ về bộ lọc
    </Card>
  </Tab>

  <Tab title="Transactions">
    **Truyền dữ liệu giao dịch và kết quả thực thi**

    Nhận chữ ký giao dịch, trạng thái thực thi, hoạt động tương tác với chương trình và thay đổi số dư token ngay khi chúng diễn ra.

    <Card title="Transaction Monitoring Guide" icon="receipt" href="/docs/vi/grpc/transaction-monitoring">
      Theo dõi giao dịch với bộ lọc chương trình và thông tin chi tiết về quá trình thực thi
    </Card>
  </Tab>

  <Tab title="Slots & Blocks">
    **Theo dõi cơ chế đồng thuận của mạng và quá trình tạo block**

    Theo dõi các cập nhật slot, quá trình tạo block và thay đổi trạng thái mạng ở nhiều mức cam kết khác nhau.

    <Card title="Slot & Block Monitoring Guide" icon="cube" href="/docs/vi/grpc/slot-and-block-monitoring">
      Truyền dữ liệu slot và block cùng thông tin chi tiết về giao dịch
    </Card>
  </Tab>

  <Tab title="Entries">
    **Theo dõi các mục nhập blockchain cấp thấp**

    Truy cập các đơn vị thực thi cơ bản chứa các lô giao dịch và kết quả tương ứng.

    <Card title="Entry Monitoring Guide" icon="code" href="/docs/vi/grpc/entry-monitoring">
      Truyền các mục nhập block cùng các lô giao dịch
    </Card>
  </Tab>
</Tabs>

## Cách truy cập Yellowstone gRPC

Chọn tùy chọn phù hợp nhất với nhu cầu của bạn:

### LaserStream

[LaserStream](/docs/vi/laserstream) là dịch vụ gRPC đa đối tượng thuê, có tính sẵn sàng cao, khả năng chuyển đổi dự phòng tự động và [phát lại dữ liệu lịch sử trong 48 giờ](/docs/vi/laserstream/historical-replay). Đây là lựa chọn lý tưởng cho hầu hết ứng dụng production.

<Tip>
  Bắt đầu sử dụng LaserStream từ [Bảng điều khiển Helius](https://dashboard.helius.dev/laserstream). Mainnet yêu cầu gói Business hoặc Professional; Devnet khả dụng từ gói Developer trở lên. Xem [Gói dịch vụ và giá](/docs/vi/billing/plans) để biết chi tiết.
</Tip>

### Node chuyên dụng

[Node chuyên dụng](/docs/vi/dedicated-nodes) cung cấp endpoint gRPC độc quyền với khả năng cách ly tài nguyên được đảm bảo. Phù hợp nhất với các yêu cầu chuyên biệt và nhà vận hành nâng cao.

### So sánh các tùy chọn gRPC

Bạn cần trợ giúp để lựa chọn? Hãy đọc [hướng dẫn so sánh gRPC](/docs/vi/laserstream/laserstream-vs-dedicated-nodes) để xác định LaserStream hay node chuyên dụng là lựa chọn tốt nhất cho trường hợp sử dụng của bạn.

## Bắt đầu nhanh

Bạn đã sẵn sàng bắt đầu truyền dữ liệu?

Hãy bắt đầu bằng cách đọc hướng dẫn thiết lập toàn diện hoặc bắt đầu ngay từ bảng điều khiển:

<CardGroup>
  <Card title="Yellowstone gRPC Quickstart" icon="rocket" href="/docs/vi/grpc/quickstart">
    Bao gồm cài đặt, xác thực và cấu hình luồng đầu tiên
  </Card>

  <Card title="Get Started" icon="rocket" href="https://dashboard.helius.dev/laserstream">
    Bật LaserStream từ Bảng điều khiển Helius và bắt đầu truyền dữ liệu.
  </Card>
</CardGroup>

## Cấu trúc yêu cầu đăng ký

Mỗi lượt đăng ký gRPC đều yêu cầu một yêu cầu có cấu trúc phù hợp. Sau đây là cách tạo yêu cầu:

### Tham số cốt lõi

<ParamField path="commitment" type="string" required>
  **Mức cam kết đảm bảo tính nhất quán của dữ liệu**

  * `processed` - Giao dịch đã được node xử lý
  * `confirmed` - Giao dịch đã được cụm xác nhận
  * `finalized` - Giao dịch đã được cụm hoàn tất
</ParamField>

<ParamField path="ping" type="boolean" optional>
  **Duy trì kết nối**

  Đặt thành `true` để nhận thông báo pong sau mỗi 15 giây, giúp ngăn kết nối hết thời gian chờ do bộ cân bằng tải hoặc proxy.
</ParamField>

<ParamField path="accounts_data_slice" type="array" optional>
  **Tối ưu hóa quá trình truyền dữ liệu**

  Yêu cầu các dải byte cụ thể từ dữ liệu tài khoản:

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

### Cấu hình bộ lọc

<Accordion title="Account Filters">
  <ParamField path="account" type="array<string>">
    Mảng khóa công khai của các tài khoản cần theo dõi (OR logic)
  </ParamField>

  <ParamField path="owner" type="array<string>">
    Mảng khóa công khai của chủ sở hữu cần theo dõi (OR logic)
  </ParamField>

  <ParamField path="filters" type="array<object>">
    Bộ lọc DataSize và Memcmp (AND logic):

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

  <Info>
    Khi sử dụng nhiều loại bộ lọc, chúng hoạt động theo phép AND logic. Trong các mảng, các giá trị hoạt động theo phép OR logic.
  </Info>
</Accordion>

<Accordion title="Transaction Filters">
  <ParamField path="vote" type="boolean">
    Bao gồm/loại trừ các giao dịch bỏ phiếu
  </ParamField>

  <ParamField path="failed" type="boolean">
    Bao gồm/loại trừ các giao dịch thất bại
  </ParamField>

  <ParamField path="signature" type="string">
    Theo dõi một chữ ký giao dịch cụ thể
  </ParamField>

  <ParamField path="account_include" type="array<string>">
    Bao gồm các giao dịch liên quan đến bất kỳ tài khoản nào trong số này (OR logic)
  </ParamField>

  <ParamField path="account_exclude" type="array<string>">
    Loại trừ các giao dịch liên quan đến bất kỳ tài khoản nào trong số này
  </ParamField>

  <ParamField path="account_required" type="array<string>">
    Bao gồm các giao dịch liên quan đến tất cả tài khoản này (AND logic)
  </ParamField>
</Accordion>

<Accordion title="Block Filters">
  <ParamField path="account_include" type="array<string>">
    Lọc giao dịch và tài khoản trong các block
  </ParamField>

  <ParamField path="include_transactions" type="boolean">
    Bao gồm tất cả giao dịch trong block
  </ParamField>

  <ParamField path="include_accounts" type="boolean">
    Bao gồm tất cả cập nhật tài khoản trong block
  </ParamField>

  <ParamField path="include_entries" type="boolean">
    Bao gồm tất cả mục nhập trong block
  </ParamField>
</Accordion>

<Accordion title="Slot Filters">
  <ParamField path="filter_by_commitment" type="boolean" default="false">
    Khi là `true`, chỉ nhận các cập nhật slot cho mức cam kết đã chỉ định. Khi là `false`, nhận cập nhật cho tất cả mức cam kết.
  </ParamField>
</Accordion>

***

## Ví dụ: Theo dõi giao dịch cơ bản

Sau đây là một ví dụ hoàn chỉnh để bạn bắt đầu:

```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>
  Đây là ví dụ cơ bản. Khi sử dụng trong môi trường production, hãy triển khai cơ chế xử lý lỗi, logic kết nối lại và xử lý dữ liệu phù hợp. Xem các hướng dẫn chi tiết của chúng tôi để tham khảo cách triển khai hoàn chỉnh.
</Note>

***

## Bạn đã sẵn sàng bắt đầu?

<CardGroup cols={2}>
  <Card title="Complete Setup Guide" icon="rocket" href="/docs/vi/grpc/quickstart">
    Cài đặt, xác thực và triển khai luồng đầu tiên
  </Card>

  <Card title="Stream Pump AMM Data" icon="chart-line" href="/docs/vi/grpc/stream-pump-amm-data">
    Ví dụ thực tế: theo dõi các giao dịch Pump AMM
  </Card>
</CardGroup>

## Tài nguyên nâng cao

* **[Kho mã nguồn Yellowstone gRPC](https://github.com/rpcpool/yellowstone-grpc)** - Định nghĩa protobuf và ví dụ đầy đủ
* **[Cộng đồng Discord](https://discord.com/invite/6GXdee3gBj)** - Nhận trợ giúp từ các nhà phát triển và đội ngũ Helius
* **[Tài liệu LaserStream](/docs/vi/laserstream)** - Dịch vụ gRPC nâng cao với các tính năng bổ sung
