BlockReq
すべての記事に戻る

RPC チュートリアル

Solana Changelog 購読ツール:RPC filter の配線

ノード準備後に endpoint を環境変数へ入れれば走らせられる:Changelog の購読 filter レシピで logsSubscribe / program mentions をつなぎ、アップグレード窓の信号を警報パネルへ。登録すると毎月 3M リクエスト無料。

BlockReq Engineering2026年9月16日5 分で読めます

Solana Changelog は RPC 仕様 + クライアント実装 を週次で動かす——logsSubscribe の mentions / all、accountSubscribe の encoding、commitment の書き方は版ごとに差が出やすい。本篇は Changelog の 購読 filter レシピ をカード化し、ノード準備後に endpoint を入れれば走らせられる。

パブリックエンドポイントで走らせる · blockreq.com 登録すると毎月 3M リクエスト無料。

用途Endpoint(プレースホルダ)
HTTPSprocess.env.SOLANA_HTTPS(ノード準備後に記入)
WSSprocess.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. アラート節奏

  1. 購読確立 → filterKey / mentions / commitment をカード化。
  2. ログ到着 → signature + 命中 program をデコード。
  3. 送出 → Changelog filter 命中 · program=… · sig=… · slot=…。
  4. 重複排除 → 同じ signature / filterKey は一度だけ。

切断後は再接続して再 subscribe;空窓は HTTPS getSignaturesForAddress / getTransaction で回補。

5. まとめ + CTA

  1. 粒度:Changelog 購読 = filter キーを版に合わせて固定。
  2. レシピ:logsSubscribe mentions + 編集可 program 表 → 命中カード。
  3. 走らせられる:endpoint 記入後にブラウザを掛ける;demos1 パスは上記。
  4. 走らせる:公開エンドポイント + blockreq.com 登録すると毎月 3M リクエスト無料。

次:filter JSON を固める → Webhook → Agave 互換自検 と同屏。ドキュメント · 料金 · 登録。