A scheduled (cron/Worker or CI) job that snapshots the core datasets (subnets, economics, endpoints, neurons/metagraph, blocks, extrinsics, chain-events daily rollups) to columnar Parquet and uploads dated objects to an R2 prefix (e.g. metagraph/bulk/parquet/{date}/), with a small manifest for discovery. Maintainer-only: needs an R2 bucket binding, cron scheduling/wrangler config, a Parquet writer dependency (npm audit), and D1/Postgres bulk-read access — infra + creds + scheduling that a contributor PR can't land under the gate.
Deliverables
References
workers/api.mjs:732 (handleScheduled — cron entry point)
src/contracts.mjs:1225 (r2-manifest artifact — manifest precedent)
src/contracts.mjs:1075 (chain-events / all-events tier — a bulk source)
workers/request-handlers/analytics.mjs (D1 read patterns to reuse for bulk reads)
size: M · maintainer-only (owner)
A scheduled (cron/Worker or CI) job that snapshots the core datasets (subnets, economics, endpoints, neurons/metagraph, blocks, extrinsics, chain-events daily rollups) to columnar Parquet and uploads dated objects to an R2 prefix (e.g. metagraph/bulk/parquet/{date}/), with a small manifest for discovery. Maintainer-only: needs an R2 bucket binding, cron scheduling/wrangler config, a Parquet writer dependency (npm audit), and D1/Postgres bulk-read access — infra + creds + scheduling that a contributor PR can't land under the gate.
Deliverables
handleScheduledor a CI workflow) that dumps the core tables to Parquet nightlybulk-manifest.json(files, row counts, generated_at, schema versions)npm run cf-typegenand commit the regenerated typesnpm audit --audit-level=moderate; document retention/pruning of old dumpsReferences
workers/api.mjs:732 (handleScheduled — cron entry point)src/contracts.mjs:1225 (r2-manifest artifact — manifest precedent)src/contracts.mjs:1075 (chain-events / all-events tier — a bulk source)workers/request-handlers/analytics.mjs (D1 read patterns to reuse for bulk reads)size: M · maintainer-only (owner)