Solana Changelog는 RPC 명세 + 클라이언트 구현을 주간으로 움직인다——logsSubscribe의 mentions / all, accountSubscribe encoding, commitment 표기는 버전마다 차이가 나기 쉽다. 이 편은 Changelog의 구독 filter 레시피를 카드화하고, 노드 준비 후 endpoint를 넣으면 바로 실행한다.
퍼블릭 엔드포인트로 돌린다 · blockreq.com 가입하면 매달 3M 요청 무료.
| 용도 | Endpoint(플레이스홀더) |
|---|---|
| HTTPS | process.env.SOLANA_HTTPS(노드 준비 후 기입) |
| WSS | process.env.SOLANA_WSS(노드 준비 후 기입) |
| 프라이빗 | 끝 public → {API_KEY}(키는 로컬) |
체인: Solana Mainnet. Changelog와 Agave 릴리스 노트를 맞춰 filter 키를 고정. 공개 엔드포인트 · 요금 · 가입.
1. 훅: Changelog가 바꾸는 것은 filter 표기
| 호가창 감각 | 온체인 / RPC 신호 | 잡을 것 |
|---|---|---|
| program 히트 | logsSubscribe + mentions | 지정 program 로그 줄 |
| 광범위 청취 | logsSubscribe + all | 노이즈 큼, Changelog 호환 확인용 |
| 계정 변동 | accountSubscribe | 지정 pubkey 차분 |
| 버전 차 | Changelog 주간 항목 | filter 키 / encoding / commitment |
같은 계열: Agave 6주 발매 RPC 호환은 tip + 호환 카드; 이 편은 구독 filter 그 자체.
2. 이벤트: logsSubscribe mentions를 Changelog에 맞춰 고정
환경 변수에 SOLANA_WSS / PROGRAM_MENTIONS(쉼표 구분 program id). 노드가 오면 바로 기입.
Step A · logsSubscribe(mentions)
{
"jsonrpc": "2.0", "id": 1, "method": "logsSubscribe",
"params": [
{ "mentions": ["PROGRAM_MENTIONS"] },
{ "commitment": "confirmed" }
]
}
mentions=process.env.PROGRAM_MENTIONS(편집 가능 program id 목록. Changelog가 권하는 filter 형태에 맞춘다).- commitment: Changelog가 권하는
processed/confirmed를 env로 전환. - 로그 줄에 실패 / 성공 마커가 있으면
printState에 기록.
Step B · 알림 카드 필드
UPGRADE_WINDOW_TAGS = editable tag set(feature-gate / runtime / rpc-spec …)
hit = log matches FILTER_KEYS ∧ tag ∈ UPGRADE_WINDOW_TAGS → write alertState
알림 카드 필드:
{ pad: "changelog-filter", program, filterKey, upgradeTag, signature, slot, ts }
같은 signature / filterKey로 중복 제거; 슬라이딩 창으로 같은 창의 중복 푸시를 병합.
Step C · 선택 적층: 다중 program / accountSubscribe
여러 program을 병렬 mentions 구독하거나 accountSubscribe로 금고 / mint 계정을 겹친다. Changelog가 encoding을 바꾸면 demo 파라미터만 교체.
3. 브라우저 demo
브라우저는 SOLANA_WSS 플레이스홀더에 연결하고 program mentions 표 + filter 키를 붙여 Start. 노드 준비 후 endpoint를 환경 변수에 넣으면 바로 실행。
env → SOLANA_HTTPS · SOLANA_WSS · PROGRAM_MENTIONS · FILTER_KEYS · UPGRADE_WINDOW_TAGS
WSS → process.env.SOLANA_WSS
HTTPS→ process.env.SOLANA_HTTPS
경로: /demos1/solana-changelog-subscription-filter/ko/ · /demos1/solana-changelog-subscription-filter/en/. keyed로 바꾸기: WSS 끝 public → {API_KEY}.
실행 쿼터: blockreq.com 가입하면 매달 3M 요청 무료(퍼블릭 엔드포인트 직결).
4. 알림 리듬
- 구독 확립 → filterKey / mentions / commitment를 카드화.
- 로그 도착 → signature + 히트 program 디코드.
- 출고 →
Changelog filter 히트 · program=… · sig=… · slot=…. - 중복 제거 → 같은
signature/filterKey는 한 번만.
끊긴 뒤 재연결하고 재 subscribe; 빈 창은 HTTPS getSignaturesForAddress / getTransaction으로 백필.
5. 요약 + CTA
- 입도: Changelog 구독 = filter 키를 버전에 맞춰 고정.
- 레시피:
logsSubscribementions + 편집 가능 program 표 → 히트 카드. - 바로 실행: endpoint 기입 후 브라우저를 건다; demos1 경로는 위.
- 실행: 공개 엔드포인트 + blockreq.com 가입하면 매달 3M 요청 무료.
다음: filter JSON 고정 → Webhook → Agave 호환 자검과 같은 화면. 문서 · 요금 · 가입.