notifyOn 필터는 gRPC 계정 구독에서 거래가 쓰기 잠금을 했지만 기록하지 않은 계정에 대한 업데이트를 건너뛰게 합니다. 동일한 필터가 WebSocket accountSubscribe 및 programSubscribe 메서드에서도 가능합니다 — WebSocket을 통한 notifyOn 필터링을 참조하세요.
문제점: 쓰기 잠금이 중복 업데이트를 생성합니다
Solana에서는 검증자가 거래가 쓰기 잠금을 설정한 모든 계정에 대해 계정 업데이트를 발행합니다 — 실제로 계정에 명령어가 기록되지 않아 램포트와 데이터가 변경되지 않은 경우에도 그렇습니다. 바쁜 계정의 경우, 이는 새로운 정보를 제공하지 않고 대역폭을 소비하는 “변화 없음” 중복 알림의 끊임없는 흐름을 의미합니다.필터 모드
notifyOn는 두 가지 값 중 하나를 가집니다:
알아두면 좋은 두 가지 사항:
- 동일한 데이터를 기록하는 경우에도 기록으로 간주되어 전달됩니다.
write는 잠금 전용 터치를 필터링하며, 같은 바이트를 남기는 기록은 포함되지 않습니다. 실제로 이러한 동일 데이터 기록은 드물며 — 대부분의 경우 업데이트의 5% 미만입니다. write가 제거하는 업데이트는 이미 수신한 상태의 정확한 복제본입니다. 거래에 의해 계정이 잠금되었다는 신호로 업데이트에 의존한다면 (예: 활동 추적),lock에 머무르세요.
LaserStream gRPC에서 사용하기
notifyOn를 계정 필터에 설정하세요: SubscribeRequest:
notify_on: NotifyOn::Write as i32를 설정하세요. 네트워크 레벨에서는 이것이 notify_on 필드의 SubscribeRequestFilterAccounts (proto tag 31)이며, 열거형 값은 NOTIFY_ON_LOCK (0, 기본값)과 NOTIFY_ON_WRITE (1)입니다. 모든 계정 필터 필드에 대한 Subscribe Request 참조를 참조하세요.
gRPC에서 notifyOn는 Helius LaserStream SDK를 통해 사용할 수 있는 Helius 확장 기능입니다 — 기본 Yellowstone 클라이언트는 필드를 노출하지 않습니다.
관련 항목
구독 요청 참조
notifyOn를 포함한 모든 gRPC 계정 필터 필드.notifyOn 필터링 (WebSocket)
notifyOn 필드를 accountSubscribe 및 programSubscribe에서 사용합니다.계정 구독 가이드
gRPC를 통한 필터링 전략과 실행 가능한 계정 모니터링 예시.
토큰 계정 (ATA) 필터링
지갑이 가진 토큰 계정을 건드리는 거래와 일치시킵니다.