@subsquid/ponder 0.17.4-sqd.1
@subsquid/ponder@0.17.4-sqd.1
ponder@0.17.4 + the SQD Portal backfill layer, drop-in (bin stays ponder). This is an upstream-parity release: 0.17.3 → 0.17.4 is four upstream indexing-performance patch PRs, every one off-seam and grep-proven inert for the fork, so they are passively inherited with no Portal-layer behavior change and no wiring change. It installs by default (--tag latest), superseding 0.17.3-sqd.1 (which now has no dist-tag — installable by exact version, npm i @subsquid/ponder@0.17.3-sqd.1).
Install: npm i @subsquid/ponder, or pin exact: npm i @subsquid/ponder@0.17.4-sqd.1.
What changed upstream — ponder@0.17.3 → 0.17.4
Four upstream patch-level indexing-performance PRs (all @kyscott18), passively inherited:
ponder-sh/ponder#2353(a0a91c3) — batch internal metrics updates.#2356(13d34ee) — schema-aware copying.#2355(d34cf7e) — normalize only changed row fields on updates.#2352(0183ecc) — reduce copy-on-write row memory.
The entire packages/core/src delta is nine files, all in ponder's indexing plane: indexing-store/{cache,index,utils}.ts, internal/metrics.ts, utils/copy.ts, indexing/index.ts (two call-sites swapped to a batched metrics helper), and a one-line common.metrics.flushIndexingMetrics() added at the tail of each runtime/{isolated,multichain,omnichain}.ts indexing loop.
Three of the nine changed files (runtime/isolated|multichain|omnichain.ts) are among the 12 wiring files, but each has a single wiring hunk at its run* entrypoint (L152 / L174 / L177) — above and non-overlapping the perf additions (L401 / L454 / L473). So portal/wiring/0.17.4.patch — a verbatim, byte-identical copy of portal/wiring/0.17.3.patch (same 12 files; the verbatim lineage now runs 0.17.0 → 0.17.1 → 0.17.2 → 0.17.3 → 0.17.4) — applies with zero rejects. The six load-bearing wiring files (build/config, config/index, internal/types, rpc/actions, rpc/index, runtime/historical — the historical seam) are byte-identical 0.17.3 → 0.17.4.
Grep-proven inert for the fork. The Portal layer (portal/*.ts) references none of the three changed metrics symbols (ponder_indexing_completed_events / incrementIndexingCompletedEvents / flushIndexingMetrics), and the upstream perf changes are confined to the indexing-store / metrics / copy internals that the Portal fetch/assembly layer never touches. Dependencies are unchanged except the @ponder/client self-version bump. The graft seam (HistoricalSync.syncBlockRangeData / syncBlockData, interval-scoped) is unchanged; 0.17.4 touches only the indexing plane.
Compatibility
- Built + tested against
ponder@0.17.4:scripts/sync-upstream.sh 0.17.4 --test— patch applies clean (zero rejects),tscbuilds, 416 tests / 24 files green; both-version confirmed (the identical suite is also green onponder@0.16.6, the pnpm-9 path). CI runs thefork-seam(0.17.4)job (incompat.tested). - No fresh RPC byte-diff is claimed on
0.17.4— compatibility rests on seam identity + verbatim patch + the full suite, exactly as for0.17.3-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.4(compat.testedinversions.json).