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 六週発版 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/ja/ · /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 互換自検 と同屏。ドキュメント · 料金 · 登録。