Skip to content

8.6.0: SQD Network datasource updates#1318

Open
Wizard1209 wants to merge 12 commits into
nextfrom
feat/8.6.0-sqd
Open

8.6.0: SQD Network datasource updates#1318
Wizard1209 wants to merge 12 commits into
nextfrom
feat/8.6.0-sqd

Conversation

@Wizard1209

@Wizard1209 Wizard1209 commented May 28, 2026

Copy link
Copy Markdown
Member

Minor release 8.6.0 — SQD Network datasource updates + subsquid api_key support. This branch is the full scope of 8.6.0.

Part 1 — api_key for v2.archive subsquid

Legacy v2.archive.subsquid.io gateways require an API key since 2026-05-19

  • New api_key option on evm.subsquid / starknet.subsquid / substrate.subsquid.
  • Sent as Authorization: Bearer <key> and Token: <key> (matching squid-sdk's ArchiveClient).
  • Demos, templates and test configs gain api_key: ${SUBSQUID_API_KEY:-} (empty default → no header).

Part 2 — evm.sqd_portal datasource

New evm.sqd_portal kind backed by the SQD Portal (portal.sqd.dev), a streaming (/finalized-stream, NDJSON) alternative to the v2.archive evm.subsquid gateway, reusing the existing iter_events/iter_transactions. Adds context.get_evm_portal_datasource.

🤖 Generated with Claude Code

Wizard1209 and others added 6 commits May 28, 2026 11:30
Self-hosted `v2.archive.subsquid.io` gateways require an API key since 2026-05-19 (`/<level>/worker` returns 403 without one, while `/height` still 200), breaking self-hosted EVM/Starknet/Substrate subsquid indexers at the data-fetch step.

Add an `api_key` option to evm/starknet/substrate.subsquid datasource configs and send it as `Authorization: Bearer <key>` + `Token: <key>` (matching squid-sdk's ArchiveClient) on the gateway (`/height`, `/<level>/worker`) and worker POST requests. Demos, templates and test configs gain `api_key: ${SUBSQUID_API_KEY:-}` (empty default => no header). Includes docs, regenerated JSON schema, CHANGELOG and a test skip when SUBSQUID_API_KEY is unset.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Un-ignore CLAUDE.md (CLAUDE.local.md stays ignored) and document the script-driven workflow: generated artifacts (demos, JSON schema, references), the docs include-macro exclusive-end footgun, and conventions via @import of docs/14.contributing.md instead of duplicating README/docs/Makefile.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduce a shared `SubsquidDatasourceConfig` base holding `api_key` and the
common `merge_subscriptions`/`rollback_depth` properties; bind the abstract
datasource to it so both worker and datasource read `self._config.api_key`
directly (no `getattr`, no `Any`). Make the `api_key` docstring consistent with
other datasources and drop the inaccurate "self-hosted" framing (v2.archive is
SQD's public gateway). Regenerate schema and config reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Wizard1209 <wizard1209@gmail.com>
Ghostnet was decommissioned; api.ghostnet.tzkt.io no longer resolves, so
the demo_tezos_events run/init tests and test_tzkt.test_no_content all
failed with DNS errors (not an infra flake). Shadownet is the current
Tezos testnet.

- tezos_tzkt: swap the ghostnet entry in TZKT_API_URLS for shadownet
- demo_tezos_events: repoint the events demo at a shadownet contract with
  equivalent properties — KT1E3EQJmoajoTj9YXJWgenuYTHnDUoWSiFt (WETH
  bridge) emits two frequent typed events (Wrap/Unwrap, like move/roll)
  plus a rare Create caught by the fallback handler. Regenerated handlers
  and types via `dipdup init`; move/roll -> wrap/unwrap.
- tests: point demo_tezos_events config and test_no_content at shadownet
- docs: update tezos.events include to on_wrap_event.py
- regenerate merged changelog (was stale, missing the Portal/api_key Added
  entries)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Release prep generated by `make before_release`: regenerated demos, docs
references, demos table, JSON schema, and the v8.6 release-notes page.

Also includes two fixes surfaced while making the release green:
- sentry: crash on init with sentry-sdk 2.61+ (`DEFAULT_MAX_VALUE_LENGTH` is now `None`)
- tests: mypy arg-type error in test_models_evm.py

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Wizard1209 Wizard1209 added this to the 8.6.0 milestone Jun 2, 2026
@Wizard1209 Wizard1209 marked this pull request as ready for review June 2, 2026 00:54
@Wizard1209 Wizard1209 requested a review from droserasprout June 2, 2026 00:56
Wizard1209 and others added 6 commits June 5, 2026 14:37
Many gateways (e.g. nginx limit_req) shed load with 503 instead of 429,
so apply ratelimit_sleep backoff for both statuses.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sentry's event_from_exception omits the stacktrace for exceptions that
have no traceback (e.g. a chained __context__/__cause__ cause that was
constructed but never raised), so indexing exception['stacktrace'] raised
KeyError: 'stacktrace' inside the crash reporter, masking the real error.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
run_postgres_container/run_hasura_container now publish a random host port and the host connects via 127.0.0.1, instead of the container bridge IP which isn't routable from a WSL2 distro under Docker Desktop (the connection hung forever). Container-to-container traffic (Hasura->Postgres) still uses the bridge IP. Adds a host-side readiness wait with a connect timeout so a networking problem fails fast.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Subsquid decommissioned the starknet-mainnet v2.archive dataset (now 404 on every path) and the SQD Portal has no starknet dataset either, so the demo can no longer reach an archive. Drop the subsquid datasource and index from the starknet node only. Also drop starknet from the SUBSQUID_API_KEY skip-guard in test_demos.py since it no longer needs an archive key.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants