Proposal: DPM Components for Deployment, Inspection & Testing
Summary
This proposal delivers an open-source suite of DPM components that extends the Canton developer workflow past local testing (dpm new → dpm build → dpm test → dpm sandbox) through live-ledger deployment, inspection, and advanced testing, all as native dpm <command> verbs. It is a thin orchestration layer over the JSON Ledger API and PQS, introducing no new ledger functionality and modifying no Canton internals.
The suite is eight components across nine milestones:
- Scaffolding — community-publishable project templates via a custom
dpm new --templateplugin - Deployment —
dpm upload,dpm deployorchestration - Querying, wallet & submission — the full
dpm querygroup, external-party signing,dpm exercise - Transaction explorers — a CLI live tail (
dpm query updates --follow) and a visual web UI (dpm explorer) - Logging & tracing — structured per-run trace capture with human-readable gRPC/Daml error decoding and a machine-readable schema for downstream AI/LLM tooling
- Fee & reward estimation — pre-flight
dpm estimatefor synchronizer traffic cost, CC/USD spend, and app-reward projection, composable into CI cost gates - Ledger snapshots —
dpm snapshot save/restore, the Canton equivalent ofevm_snapshot, scoped to local targets only - Property-based & invariant testing —
dpm fuzz,dpm invariant, anddpm test --table
This directly answers the Foundation's own call for community-built DPM components, which named project templates, deployment helpers, fee estimators, and local dashboards as high-value targets.
Funding
Total: $400,000 USD-equivalent, disbursed in $CC, milestone-gated with no upfront tranche, funding a four-engineer team for 10 months ($10,000/engineer-month). Full milestone breakdown, acceptance criteria, and budget rationale are in the proposal document.
Status
This proposal currently has no champion. Tagging needs-champion for visibility — happy to answer questions from any SIG member or Foundation reviewer in the thread below. Opened as a draft while we gather early feedback before requesting full review.