Skip to main content

개요

사전 처리된 트랜잭션은 processed 커밋 수준에 도달하기 전에 제공되는 실행 전 Solana 트랜잭션입니다. Helius는 주요하게는 벨리데이터에 도착할 때 바로 디코딩된 shred와 예약된 트랜잭션 (사전 확인) 신호를 통해 여러 실행 전 소스를 집계하여, 이를 단일 중복 제거된 스트림으로 전달합니다. 수신할 원시 shred 패킷이나 여기에 대해 운영할 Shred 제거 인프라는 필요하지 않습니다. 사전 확인 신호에서 출처된 트랜잭션은 전용 사전 확인 제품보다 이 피드에 늦게 도착하며, 이는 가장 빠른 접근을 제공합니다. 사전 처리된 트랜잭션을 소비하는 주요 방법은 preprocessedSubscribe WebSocket 방법입니다 (공개 베타) — 모든 유료 요금제에서도 사용 가능하며, 메시지당 0.1 크레딧이 부과됩니다. 이전 gRPC 전달은 이 방법으로 대체될 예정입니다.

preprocessedSubscribe (WSS)

사전 처리된 트랜잭션을 스트리밍하는 추천 방법입니다: 계정 필터링, 압축된 바이너리 페이로드, 모든 유료 요금제.

gRPC (레거시)

이전의 LaserStream 기반 전달. 폐기 예정 — 새로운 통합은 WebSocket 방법을 사용해야 합니다.

사전 처리된 트랜잭션이 라이프사이클에서 차지하는 위치

Solana의 아키텍처에서 트랜잭션은 완전히 처리되기 전에 여러 단계를 거칩니다:
  1. Shred 수신 → 벨리데이터가 트랜잭션 shred(데이터 조각)을 수신합니다. ← **원시 shred (UDP)**가 여기서 전달됩니다.
  2. Shred 디코딩 → Shred는 원시 트랜잭션으로 디코딩됩니다. ← 사전 처리된 트랜잭션은 주로 여기서 전달됩니다.
  3. 트랜잭션 실행 → 런타임에서 트랜잭션이 실행됩니다.
  4. 메타데이터 생성 → 사전/사후 잔액, 로그, 오류 정보가 계산됩니다.
  5. 커밋먼트 → 트랜잭션이 처리/확인/최종 상태에 도달합니다. ← LaserStream gRPC 및 **LaserStream WebSocket**은 여기서 전달됩니다.
실행 후 구독은 단계 5에서 데이터를 전달하며, 전체 실행 및 메타데이터 생성 후입니다. 사전 처리된 트랜잭션은 단계-2 타이밍에 전달되며, shred 디코딩 후, 실행 완료 전에 이루어집니다. 더 빠른 신호를 원하면, 사전 확인는 트랜잭션이 shred가 되기 전에 예약된 트랜잭션을 스트리밍합니다. 트레이드오프: 트랜잭션 데이터를 더 빨리 받지만, 잔액 변화, 로그 또는 오류 정보와 같은 실행 메타데이터는 제공되지 않습니다.
이것은 트랜잭션 전용 스트림입니다. 계정 및 프로그램 상태 업데이트는 런타임에서 트랜잭션이 실행될 때까지 존재하지 않습니다. 실시간 계정 또는 프로그램 업데이트가 필요하다면 — 토큰 잔액, 본딩 곡선 상태, 프로그램 계정 — LaserStream gRPC에서 processed 커밋먼트를 사용하세요.

어떤 데이터가 제공되나요?

사전 처리된 트랜잭션은 완전한 서명된 트랜잭션을 포함하지만, 실행 메타데이터는 포함하지 않습니다:

이용 가능한 데이터

  • 트랜잭션 서명 - 고유한 트랜잭션 식별자
  • 계정 키 - 트랜잭션이 참조하는 모든 계정
  • 명령어 - 완전한 명령어 데이터 및 프로그램 호출
  • 최근 블록해시 - 트랜잭션 만료 참조
  • 서명들 - 모든 트랜잭션 서명
  • 슬롯 번호 - 트랜잭션이 관찰된 슬롯

누락된 데이터

  • 트랜잭션 메타데이터 - 토큰 잔액 변화, 사전/사후 잔액, 트랜잭션 상태
  • 트랜잭션 오류 - 트랜잭션 실패 여부를 결정할 수 없습니다
  • 내부 명령어 - 교차 프로그램 호출(CPI)이 포함되지 않습니다
  • 로그 메시지 - 프로그램 로그는 실행 중에 생성됩니다
  • 소비된 컴퓨트 유닛 - 실행 메트릭은 사용할 수 없습니다
사전 처리된 트랜잭션은 “제안서”를 받고 “결과”는 받지 못한다고 생각하세요. 발신자가 시도한 내용을 알 수 있지만 실제로 어떻게 되었는지는 모릅니다.

전달 보장

전달은 최선의 노력으로 이루어지며, 보장되지 않으며, 과거 재생이 없습니다. 스트리밍된 트랜잭션은 실행 전 신호로, 커밋 수준이 아니라 실패할 수 있거나, 누락되거나, 다른 포크에 착지할 수 있습니다. 서명으로 중복 제거하고, 실행 결과가 중요할 때는 처리된 또는 확인된 스트림과 조정하세요. 보장된 전달 및 완전한 데이터가 필요한 중요한 애플리케이션의 경우, 대신 LaserStream gRPC를 사용하세요.

사전 처리된 트랜잭션을 언제 사용해야 하나요

Shred 디코더를 운용하지 않고도 디코딩된 실행 전 트랜잭션을 원하는 지연 민감 애플리케이션:
  • propAMM
  • 스나이퍼
  • 복사 거래자
  • 청산 봇
  • 차익 거래
모든 마이크로초가 중요하고 라인 속도로 디슈레드할 수 있다면 원시 shred (UDP)를 사용하세요. 무엇보다 가장 빠른 신호가 필요하다면 사전 확인을 사용하세요.

가격

preprocessedSubscribe모든 유료 요금제에서 이용 가능하며 메시지당 0.1 크레딧이 부과됩니다 — 전달된 트랜잭션당 한 메시지. 레거시 gRPC 전달은 비압축된 스트리밍 데이터 0.1MB당 2 크레딧을 Professional 요금제 구독자에게 제공합니다. 자세한 내용은 크레딧을 참조하세요.

자주 하는 질문

아니오, 필터는 초기 preprocessedSubscribe에 의해 고정됩니다. 간격을 피하려면 새 필터로 두 번째 연결을 열고, 구독 확인을 기다린 다음 서비스를 새 필터로 전환하는 것이 좋습니다.
10개의 동시 연결 제한은 Helius 프로젝트별로 적용됩니다. 동일한 프로젝트에 대한 두 번째 API 키를 생성하면 같은 10-연결 제한을 공유합니다.

다음 단계

preprocessedSubscribe로 구독

엔드포인트, 계정 필터링, 바이너리 페이로드 레이아웃 및 코드 예제.

사전 확인

트랜잭션이 shred가 되기 전에 예약된 트랜잭션이 스트리밍됩니다 — 가장 빠른 트랜잭션 신호.

원시 Shreds (UDP)

UDP를 통해 비처리된 shred 패킷. 디슈레딩은 직접 구현합니다.

Helius 보낸이

가장 빠르게 트랜잭션을 착지시키며, 보이는 대로 행동합니다.