A service that connects to nodes in the Cardano (preprod, mainnet) network and temporarily stores all observed headers, blocks, and, in the future, transactions. Notable ones (e.g. those involved in slot disputes, invalid, or from competing forks) are retained and exposed via the HTTP API; the rest are evicted.
This makes the hoarding node useful for investigating chain disagreements, mempool anomalies, and adversarial behaviour such as block equivocation.
The dev setup requires three services running concurrently. Open separate terminals for each.
nix run .#postgresThen start the Cardano node. On first run, the app will ask whether to bootstrap the chain database via Mithril (downloads a verified snapshot):
nix run .#cardano-node-preprodStarts Prometheus, Grafana, Loki, Tempo, and Promtail:
nix run .#monitoringApply any pending migrations before starting the node:
sqitch deploycabal runConfiguration is loaded from config/dev.yaml. Any value can be overridden at runtime via environment variables — see docs/configuration.md.
Migrations are managed with Sqitch. With PostgreSQL running:
sqitch deploy # apply pending migrations
sqitch status # check current stateSee db/README.md for full migration workflows.
| Topic | Doc |
|---|---|
| Configuration & env var overrides | docs/configuration.md |
| Secrets management | docs/secrets.md |
| Database schema & migrations | docs/database-schema.md, db/README.md |
| Observability & metrics | docs/observability.md |
| Docker images | docs/docker.md |
| Peer discovery | docs/peer-discovery-and-connection.md |