메인 콘텐츠로 건너뛰기
Solana는 400ms 블록 시간을 목표로 하며, 실제 처리량은 약 4,000 TPS, 이론적 피크는 65,000 TPS입니다. 매우 높은 메시지 양으로 인해 컨슈머 처리 능력에 높은 요구사항이 필요합니다. Schema 저장소: github.com/chainstream-io/streaming_protobuf/solana

메시지 유형 개요

Solana Streams는 다음 메시지 유형을 제공합니다:

블록 레벨 데이터

Solana는 기존 블록 번호 대신 Slot을 타임라인 식별자로 사용합니다.
Solana의 shred stream에서 Block Header가 불완전할 수 있으며, Slot 필드만 정확함이 보장됩니다.

트랜잭션 레벨 데이터

트랜잭션 핵심 필드

Instructions

트랜잭션에는 여러 Instruction이 포함되며, 이는 Solana 실행 모델의 핵심입니다:
하나의 Solana 트랜잭션에는 여러 Instruction이 포함될 수 있으며, 각 Instruction은 서로 다른 프로그램을 호출합니다.

전송 데이터

TransferEvents는 Solana 전송 정보를 제공합니다 (Topic: sol.transfers).

TransferEvent 구조

Transfer 핵심 필드

토큰 메타데이터 (TokenEvent)

토큰 이벤트는 공통 TokenEvents (Topic: sol.tokens)를 사용하며, 다음을 포함합니다:

SolanaExtra 고유 필드

Solana 토큰에는 추가 메타데이터 필드가 포함됩니다:

Balance Updates 계층 메커니즘 (Solana 고유)

이는 Solana 스트림 데이터의 중요한 특성으로, 잔고 업데이트가 두 수준에서 제공됩니다:
각 instruction 실행 후 즉시 잔고 변동으로, 단일 단계 작업의 직접적인 영향을 반영합니다.
이를 통해 개발자는 세밀한 자금 흐름 추적과 최종 상태 확인을 모두 할 수 있습니다.

DEX 데이터

TradeEvents는 DEX 거래 데이터를 제공합니다 (Topic: sol.dex.trades). 공통 TradeEvent 구조를 사용합니다.

Trade 핵심 필드

DApp 정보

DexPoolEvent - 유동성 풀


Solana 체인 특성

Slot 메커니즘

Solana는 기존 블록 번호 대신 Slot을 타임라인 식별자로 사용합니다:

메시지 패키징

트랜잭션은 소규모 배치로 패키징되며, 각 Kafka 메시지는 최대 250개의 트랜잭션을 포함합니다.

Block Header 완전성

Solana의 shred stream에서 Block Header가 불완전할 수 있으며, Slot 필드만 정확함이 보장됩니다. 다른 필드는 비어 있거나 부정확할 수 있습니다.

고처리량 처리 권장 사항

Solana의 매우 높은 처리량으로 인해 다음을 권장합니다:
  1. 충분한 처리 능력: 컨슈머에 충분한 CPU와 메모리 확보
  2. 병렬 처리: 멀티스레드/코루틴으로 병렬 메시지 처리
  3. 효율적인 파싱: Protobuf 파싱 코드 최적화
  4. 배치 쓰기: 영속화가 필요한 경우 데이터베이스 배치 쓰기

Topic → 메시지 유형 매핑


코드 예제

Python 예제: Solana DEX 거래 소비

Go 예제: 고성능 소비


관련 문서

개념 및 통합 가이드

Kafka Streams 통합 기초

EVM Streams

EVM 체인 데이터 스트림

TRON Streams

TRON 네트워크 데이터 스트림

WebSocket 실시간 데이터

WebSocket 통합