Skip to content

@subsquid/ponder 0.17.4-sqd.1

Choose a tag to compare

@dzhelezov dzhelezov released this 31 Jul 23:18
68728ae

@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), tsc builds, 416 tests / 24 files green; both-version confirmed (the identical suite is also green on ponder@0.16.6, the pnpm-9 path). CI runs the fork-seam(0.17.4) job (in compat.tested).
  • No fresh RPC byte-diff is claimed on 0.17.4 — compatibility rests on seam identity + verbatim patch + the full suite, exactly as for 0.17.3-sqd.1. The §3 / §5 byte-diff and A/B soak evidence remains on the 0.16.6 graft and transfers by seam identity.
  • Seam verified identical across 0.15.170.17.4 (compat.tested in versions.json).