Skip to main content
LaserStream의 notifyOn 필터는 gRPC 계정 구독에서 거래가 쓰기 잠금을 했지만 기록하지 않은 계정에 대한 업데이트를 건너뛰게 합니다. 동일한 필터가 WebSocket accountSubscribeprogramSubscribe 메서드에서도 가능합니다 — WebSocket을 통한 notifyOn 필터링을 참조하세요.

문제점: 쓰기 잠금이 중복 업데이트를 생성합니다

Solana에서는 검증자가 거래가 쓰기 잠금을 설정한 모든 계정에 대해 계정 업데이트를 발행합니다 — 실제로 계정에 명령어가 기록되지 않아 램포트와 데이터가 변경되지 않은 경우에도 그렇습니다. 바쁜 계정의 경우, 이는 새로운 정보를 제공하지 않고 대역폭을 소비하는 “변화 없음” 중복 알림의 끊임없는 흐름을 의미합니다.

필터 모드

notifyOn는 두 가지 값 중 하나를 가집니다: 알아두면 좋은 두 가지 사항:
  • 동일한 데이터를 기록하는 경우에도 기록으로 간주되어 전달됩니다. write는 잠금 전용 터치를 필터링하며, 같은 바이트를 남기는 기록은 포함되지 않습니다. 실제로 이러한 동일 데이터 기록은 드물며 — 대부분의 경우 업데이트의 5% 미만입니다.
  • write가 제거하는 업데이트는 이미 수신한 상태의 정확한 복제본입니다. 거래에 의해 계정이 잠금되었다는 신호로 업데이트에 의존한다면 (예: 활동 추적), lock에 머무르세요.
필드를 생략한 구독은 이전과 정확히 동일하게 작동하므로, 기존 필터에 추가해도 안전합니다.

LaserStream gRPC에서 사용하기

notifyOn를 계정 필터에 설정하세요: SubscribeRequest:
Rust SDK에서는 notify_on: NotifyOn::Write as i32를 설정하세요. 네트워크 레벨에서는 이것이 notify_on 필드의 SubscribeRequestFilterAccounts (proto tag 31)이며, 열거형 값은 NOTIFY_ON_LOCK (0, 기본값)과 NOTIFY_ON_WRITE (1)입니다. 모든 계정 필터 필드에 대한 Subscribe Request 참조를 참조하세요. gRPC에서 notifyOnHelius LaserStream SDK를 통해 사용할 수 있는 Helius 확장 기능입니다 — 기본 Yellowstone 클라이언트는 필드를 노출하지 않습니다.

관련 항목

구독 요청 참조

notifyOn를 포함한 모든 gRPC 계정 필터 필드.

notifyOn 필터링 (WebSocket)

notifyOn 필드를 accountSubscribeprogramSubscribe에서 사용합니다.

계정 구독 가이드

gRPC를 통한 필터링 전략과 실행 가능한 계정 모니터링 예시.

토큰 계정 (ATA) 필터링

지갑이 가진 토큰 계정을 건드리는 거래와 일치시킵니다.