Skip to content

Proposal: Canton Transaction Debugger

OPENPull Request
by infrasingularity04-05-2026Voting Live
1.9M CC requested
daml-tooling

Development Fund Proposal Submission

Proposal file: /proposals/canton-transaction-debugger.md

Summary A Canton-native Transaction Debugger that turns failed Ledger API submissions into human-readable root-cause diagnoses and shareable, privacy-aware debug bundles.

Existing Canton tooling operates on the success path — it inspects committed transactions by update-id, streams ledger events, and measures test coverage — all of which assume a transaction exists on the ledger to examine. When a submission is rejected, no update-id is created and nothing commits; the developer is left to reconstruct root cause by hand from a rejection payload, a correlation (trace) id, and structured logs spread across participant and synchronizer nodes. This is exactly where Canton is hardest to reason about, because its most painful failures — sub-transaction privacy/visibility errors, authorization failures, and contention — are the ones that never commit.

This build is the only tool designed to start from the failed submission rather than the successful one. It parses Canton's structured error codes and categories, correlates them against trace-id-keyed node logs to assemble the causal chain, and emits a redacted bundle that two parties with different ledger visibility can safely share to debug the same failure together. It extends the existing toolchain (Ledger API rejection payloads, correlation ids, structured logs) with no compiler dependency and no fork of any component, and reduces time-to-root-cause for privacy- and authorization-heavy failures from hours to minutes.

Total funding request: 1,850,000 CC across 4 milestones (~15 weeks).

Checklist

  • Proposal file added under /proposals/
  • Milestones and funding amounts defined
  • Acceptance criteria included
  • Alignment with Canton priorities described

Notes for Reviewers Label: daml-tooling

This proposal is a single-objective debugger build with a strong emphasis on real ecosystem adoption in the final milestone. Scoped localnet replay is included as a small, bounded inclusion within Milestone 3 and does not gate MVP value. Funding is back-loaded toward adoption and measurable ecosystem value (time-to-diagnosis, support load reduction, institutional onboarding speed), directly addressing the high-priority debugging and observability gaps validated in the Canton 2026 Developer Experience Survey.

The team (Infrasingularity) ships Daml-based projects and operates production Canton validator infrastructure as an institutional NaaS provider. Relevant SIGs: Daml Language & Developer Tooling, Canton APIs, dApp Integration.

Unique solutions (technical detail in the proposal file):

  • Failure-first diagnosis engine
  • Trace-id log correlation across nodes
  • Privacy-aware, shareable debug bundles
  • Prepared-vs-failed diff for interactive submissions
  • Non-invasive integration

Full technical specifications and detailed per-milestone deliverables/acceptance criteria are in the proposal file. Champion: @v9n