> ## 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: 실시간 데이터 스트리밍

> 고급 필터링 및 초저지연 전송을 통해 gRPC 프로토콜을 사용하는 Solana 블록체인 데이터의 고성능 실시간 스트리밍.

<Note>
  **Helius의 관리형 gRPC 서비스를 찾고 계십니까?** 이 페이지는 참조용으로 공개 **Yellowstone gRPC** 프로토콜을 문서화합니다. 24시간 과거 재생, 멀티 노드 장애 조치 및 완전 관리형 환경을 사용하려면 Helius의 Yellowstone 호환 gRPC 제품인 [LaserStream](/docs/ko/laserstream)을 참조하십시오.
</Note>

## Yellowstone gRPC란 무엇인가요?

Yellowstone gRPC는 **초저지연 스트리밍**을 제공하여 Solana 리더에게 직접 접근하여 생성되는 그대로의 세레드를 수신함으로써 Solana 블록체인 데이터를 실시간으로 전송합니다. 이를 통해 애플리케이션에 최소한의 지연으로 실시간 데이터를 전달할 수 있습니다.

<CardGroup cols={2}>
  <Card title="고성능" icon="bolt">
    최대 처리량과 최소 대역폭 사용을 위한 효율적 직렬화의 이진 프로토콜
  </Card>

  <Card title="실시간 스트리밍" icon="wave-pulse">
    즉시 구독 생성 및 취소 가능한 양방향 스트리밍
  </Card>

  <Card title="고급 필터링" icon="filter">
    계정, 거래, 프로그램 필터를 통해 수신할 데이터를 정확하게 제어
  </Card>

  <Card title="다양한 데이터 유형" icon="database">
    단일 스트림에서 계정, 거래, 슬롯, 블록 및 항목 구독
  </Card>
</CardGroup>

## 스트림 유형

<Tabs>
  <Tab title="계정">
    **실시간으로 계정 변경 사항 모니터링**

    잔액 업데이트, 데이터 수정, 소유권 변경 및 계정 생성/삭제 이벤트를 정확한 필터링 옵션으로 추적합니다.

    <Card title="계정 모니터링 가이드" icon="user" href="/docs/ko/grpc/account-monitoring">
      필터링 예제로 계정 업데이트 스트리밍 방법 배우기
    </Card>
  </Tab>

  <Tab title="거래">
    **거래 데이터 및 실행 결과 스트리밍**

    거래 서명, 실행 상태, 프로그램 상호 작용 및 토큰 잔액 변경을 실시간으로 수신합니다.

    <Card title="거래 모니터링 가이드" icon="receipt" href="/docs/ko/grpc/transaction-monitoring">
      프로그램 필터링 및 실행 세부 정보로 거래 모니터링
    </Card>
  </Tab>

  <Tab title="슬롯 & 블록">
    **네트워크 합의 및 블록 생성 추적**

    다양한 커밋 수준에서 슬롯 업데이트, 블록 생성, 네트워크 상태 변화를 모니터링합니다.

    <Card title="슬롯 & 블록 모니터링 가이드" icon="cube" href="/docs/ko/grpc/slot-and-block-monitoring">
      거래 세부 정보를 포함하여 슬롯 및 블록 스트리밍
    </Card>
  </Tab>

  <Tab title="항목">
    **저수준 블록체인 항목 모니터링**

    거래 배치와 그 결과를 포함하는 기본 실행 단위에 접근하십시오.

    <Card title="항목 모니터링 가이드" icon="code" href="/docs/ko/grpc/entry-monitoring">
      거래 배치를 포함하여 블록 항목 스트리밍
    </Card>
  </Tab>
</Tabs>

## Yellowstone gRPC 액세스 방법

필요에 가장 적합한 옵션을 선택하십시오:

### LaserStream

[LaserStream](/docs/ko/laserstream/)은 자동 장애 조치와 [24시간 과거 재생 기능](/docs/ko/laserstream/historical-replay)을 제공하는 멀티 테넌트, 고가용성 gRPC 서비스로 대부분의 상용 애플리케이션에 이상적입니다.

<Tip>
  [Helius 대시보드](https://dashboard.helius.dev/laserstream)에서 LaserStream 시작하기. 메인넷은 비즈니스 또는 프로페셔널 플랜이 필요합니다. Devnet은 개발자 및 그 이상의 플랜에서 사용할 수 있습니다. 자세한 내용은 [플랜 및 가격](/docs/ko/billing/plans)을 참조하십시오.
</Tip>

### 전용 노드

[전용 노드](/docs/ko/dedicated-nodes/)는 리소스 격리가 보장된 전용 gRPC 엔드포인트를 제공합니다. 특수 요구사항과 고급 운영자에게 최적입니다.

### gRPC 옵션 비교

결정이 필요하신가요? 우리의 [gRPC 비교 가이드](/docs/ko/laserstream/laserstream-vs-dedicated-nodes)를 읽고 LaserStream이나 전용 노드가 귀하의 사용 사례에 가장 적합한지 확인하십시오.

## 빠른 시작

스트리밍을 시작할 준비가 되셨습니까?

포괄적인 설정 가이드를 읽거나 대시보드에서 시작하십시오:

<CardGroup>
  <Card title="Yellowstone gRPC 빠른 시작" icon="rocket" href="/docs/ko/grpc/quickstart">
    설치, 인증 및 첫 번째 스트림 구성 포괄
  </Card>

  <Card title="시작하기" icon="rocket" href="https://dashboard.helius.dev/laserstream">
    Helius 대시보드에서 LaserStream을 활성화하고 스트리밍을 시작하십시오.
  </Card>
</CardGroup>

## 구독 요청 구조

모든 gRPC 구독에는 적절하게 구성된 요청이 필요합니다. 다음은 빌드 방법입니다:

### 핵심 매개변수

<ParamField path="commitment" type="string" required>
  **데이터 일관성을 위한 커밋 수준**

  * `processed` - 노드에 의해 처리된 거래
  * `confirmed` - 클러스터에 의해 확인된 거래
  * `finalized` - 클러스터에 의해 최종 확인된 거래
</ParamField>

<ParamField path="ping" type="boolean" optional>
  **연결을 유지**

  15초마다 pong 메시지를 수신하도록 설정하여 로드 밸런서나 프록시의 연결 시간 초과를 방지합니다.
</ParamField>

<ParamField path="accounts_data_slice" type="array" optional>
  **데이터 전송 최적화**

  계정 데이터에서 특정 바이트 범위를 요청하십시오:

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

### 필터 구성

<Accordion title="계정 필터">
  <ParamField path="account" type="array<string>">
    모니터링할 계정 공개 키 배열 (논리 OR)
  </ParamField>

  <ParamField path="owner" type="array<string>">
    모니터링할 소유자 공개 키 배열 (논리 OR)
  </ParamField>

  <ParamField path="filters" type="array<object>">
    DataSize 및 Memcmp 필터 (논리 AND):

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

  <Info>
    여러 필터 유형이 사용될 때, 논리 AND로 작동합니다. 배열 내 값은 논리 OR로 작동합니다.
  </Info>
</Accordion>

<Accordion title="거래 필터">
  <ParamField path="vote" type="boolean">
    투표 거래 포함/제외
  </ParamField>

  <ParamField path="failed" type="boolean">
    실패한 거래 포함/제외
  </ParamField>

  <ParamField path="signature" type="string">
    특정 거래 서명 모니터링
  </ParamField>

  <ParamField path="account_include" type="array<string>">
    이 계정들과 관련된 거래 포함 (논리 OR)
  </ParamField>

  <ParamField path="account_exclude" type="array<string>">
    이 계정들과 관련된 거래 제외
  </ParamField>

  <ParamField path="account_required" type="array<string>">
    이 모든 계정들이 관련된 거래 포함 (논리 AND)
  </ParamField>
</Accordion>

<Accordion title="블록 필터">
  <ParamField path="account_include" type="array<string>">
    블록 내 거래 및 계정 필터
  </ParamField>

  <ParamField path="include_transactions" type="boolean">
    블록 내 모든 거래 포함
  </ParamField>

  <ParamField path="include_accounts" type="boolean">
    블록 내 모든 계정 업데이트 포함
  </ParamField>

  <ParamField path="include_entries" type="boolean">
    블록 내 모든 항목 포함
  </ParamField>
</Accordion>

<Accordion title="슬롯 필터">
  <ParamField path="filter_by_commitment" type="boolean" default="false">
    `true`일 때, 지정된 커밋 수준에 대한 슬롯 업데이트만 수신합니다. `false`일 때, 모든 커밋 수준에 대한 업데이트를 수신합니다.
  </ParamField>
</Accordion>

***

## 예제: 기본 거래 모니터링

다음은 시작을 위한 완전한 예제입니다:

```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>
  이것은 기본 예제입니다. 상용 사용을 위해서는 올바른 오류 처리, 재연결 로직 및 데이터 처리를 구현하십시오. 완전한 구현을 위한 자세한 가이드를 참조하십시오.
</Note>

***

## 준비되었습니까?

<CardGroup cols={2}>
  <Card title="완전한 설정 가이드" icon="rocket" href="/docs/ko/grpc/quickstart">
    설치, 인증 및 첫 번째 스트림 구현
  </Card>

  <Card title="스트림 펌프 AMM 데이터" icon="chart-line" href="/docs/ko/grpc/stream-pump-amm-data">
    실제 예제: Pump AMM 거래 모니터링
  </Card>
</CardGroup>

## 고급 리소스

* **[Yellowstone gRPC 소스 저장소](https://github.com/rpcpool/yellowstone-grpc)** - 완전한 프로토버프 정의 및 예제
* **[디스코드 커뮤니티](https://discord.com/invite/6GXdee3gBj)** - 개발자 및 Helius 팀으로부터 도움 받기
* **[LaserStream 문서](/docs/ko/laserstream/)** - 추가 기능이 있는 gRPC 서비스 개선
