Stability and performance release.
Performance & Bug Fixes
- UTXO-by-address queries no longer trigger full table scans. The old unusable idx_tx_out_address is dropped and replaced automatically.
- Batched asset backfill + advisory lock. Each batch commits independently, so progress is preserved if the service restarts mid-backfill, and an advisory lock prevents concurrent backfills from colliding. Batch size is configurable via
ASSET_BACKFILL_BATCH_SIZE(default: 500000). - Faster, non-blocking server startup. The server previously blocked at startup while computing ADA supply - a query that can take 15–19 minutes on mainnet.
POLLING_INTERVAL_ADA_SUPPLYdefault changed from 60 seconds to 6 hours (supply values change roughly once per epoch).- AdaPots.fees correctness fix. A missing comma in the AdaPots view caused the fees column to return the governance proposal-deposit value instead of transaction fees. Any query on adaPots.fees now returns the correct value. (#1041)
New / Changed Environment Variables
| Variable | Default | Description |
|---|---|---|
| ASSET_BACKFILL_BATCH_SIZE | 500000 | Rows per committed backfill batch |
| POLLING_INTERVAL_ADA_SUPPLY | 21600000 (6h) | Interval between ADA-supply recalculations |
Note for custom deployments
- The address index fix is critical for high-concurrency workloads. If you run a custom PostgreSQL deployment (not using the provided index service), create the usable index and remove the old one:
CREATE INDEX CONCURRENTLY idx_tx_out_address_texthash ON tx_out USING hash ((address::text));
DROP INDEX CONCURRENTLY IF EXISTS idx_tx_out_address;
- The index service remains opt-in (COMPOSE_PROFILES=indexes) and is strongly recommended for production.
- Index creation via CREATE INDEX CONCURRENTLY is non-blocking but can take 1–2 hours on mainnet. A newly created index is only used by new queries - if you have stuck/piled-up queries during an upgrade, terminate them after the index is built so the pool clears immediately.
What's Changed
- fix: batched asset backfill by @VladislavKudrin in #1043, #1044
- Point Mithril build and key URLs to the IntersectMBO repository by @jpraynaud in #1042
- fix: slow server startup by @VladislavKudrin in #1046
- fix: retry ada supply fetch on startup failure, reduce ada supply polling interval, and AdaPots view fees comma by @VladislavKudrin in #1049
- fix: tx out address index by @VladislavKudrin in #1048
Tested with
| Component | Version |
|---|---|
| cardano-node | 11.0.1 |
| cardano-db-sync | 13.7.2.1 |
| Token Metadata Registry | 1.6.0 |
Full Changelog: 9.0.1...9.0.2