@subsquid/ponder 0.17.3-sqd.1
@subsquid/ponder@0.17.3-sqd.1
ponder@0.17.3 + the SQD Portal backfill layer, drop-in (bin stays ponder). This is an upstream-parity release: 0.17.2 → 0.17.3 is a single upstream memory-retention bugfix, off-seam and grep-proven inert for the fork, so it is passively inherited with no Portal-layer change and no wiring change. It installs by default (--tag latest), superseding 0.17.2-sqd.1 (which now has no dist-tag — installable by exact version, npm i @subsquid/ponder@0.17.2-sqd.1).
Install: npm i @subsquid/ponder, or pin exact: npm i @subsquid/ponder@0.17.3-sqd.1.
What changed upstream — ponder@0.17.2 → 0.17.3
One upstream patch-level bugfix, passively inherited:
ponder-sh/ponder#2350(@kyscott18, commit80dd936) — fixes realtime sync retaining unfiltered block transactions in memory until finalization (upstream reports >10% live-indexing memory improvement). The entire source delta is one line insrc/sync-realtime/index.ts'sreconcileBlockasync generator (~L1140): the yielded block'stransactionsarray is repointed from the unfiltered set to the already-filtered top-leveltransactionsarray, so the unfiltered array is released for garbage collection.
src/sync-realtime/index.ts is one of the 12 wiring files, but the #2350 edit (~L1140) does not overlap the wiring patch's two hunks (the import block and the #23 filtered-logs shouldRequestLogs fallback, ~L308–347), so portal/wiring/0.17.3.patch — a verbatim copy of portal/wiring/0.17.2.patch (sha256-equal, same 12 files; the verbatim lineage now runs 0.17.0 → 0.17.1 → 0.17.2 → 0.17.3) — applies with zero rejects.
Grep-proven inert for the fork. The swap changes what a yielded realtime event's block.transactions contains (unfiltered → filtered), but nothing in the fork reads it: .block.transactions is referenced zero times in the Portal layer (portal/*.ts) and in the wiring patch. Realtime transactions are persisted from the top-level transactions field (filtered, identical logic in 0.17.2 and 0.17.3), and the #27 access_list path maps from the top-level Portal transactions, never from block.transactions. So the change persists and emits no different data on either the RPC or Portal /stream path — it only frees memory. The graft seam (HistoricalSync.syncBlockRangeData / syncBlockData, interval-scoped) is unchanged; 0.17.3 touches only src/sync-realtime/index.ts.
Compatibility
- Built + tested against
ponder@0.17.3:scripts/sync-upstream.sh 0.17.3 --test— patch applies clean (all 12 files "Applied … cleanly"),tscbuilds, 408 tests / 23 files green; both-version confirmed (the identical suite is also green onponder@0.17.2). CI runs thefork-seam(0.17.3)job (incompat.tested). - No fresh RPC byte-diff is claimed on
0.17.3— compatibility rests on seam identity + verbatim patch + the full suite, exactly as for0.17.2-sqd.1. The§3 / §5byte-diff and A/B soak evidence remains on the0.16.6graft and transfers by seam identity. - Seam verified identical across
0.15.17–0.17.3(compat.testedinversions.json).