ChainSafe / ChainSafe/canton-extending-mainnet
[P2-E6.1] Per-synchronizer report state + report choice
- Dominant language
- Shell
- Stars
- 0
- Forks
- 0
- Avg merge
- 22h 58m
- Merged PRs (30d)
- 1
Description
**Context.** Same state-contract pattern as the fee: a DSO-signed per-sync contract with
an operator-controlled report choice. "Signed by the SO party" = the operator exercises
the choice; the ledger is the signature. Reports append immutable snapshots (or emit
per-window report contracts) so history is auditable; the mutable accumulator, if any,
lives on the state contract whose id churn nothing votes on.
**Deliverable.** Report state template + `ReportConsumption` choice recording
`{windowStart, windowEnd, txCount, avgTps, trafficConsumed}`; monotonic window
enforcement (no overlaps, no gaps beyond the cadence policy).
**Acceptance.** Daml Script: report, sequential windows enforced, non-operator cannot
report, offboarded sync's state inert.
**Depends on.** P2-E1.2.
**Phase-3 foundation.** Per-app activity records and commitment trees (reward
distribution) append to this shape as new fields/choices — the Phase-3 reward reporting
extends, not replaces, this contract.
**Refs.** FR-27, FR-28.
—
Epic: #69 · Plan: [P2-E6-consumption-reporting.md](https://github.com/ChainSafe/canton-extending-mainnet/blob/main/docs/planning/phase-2-epics/P2-E6-consumption-reporting.md)
Contributor guide
No contributing guide indexed for this repository
Research direction
Read docs/planning/phase-2-epics/P2-E6-consumption-reporting.md and review the dependency in #E1.2 before locating the report state template and Daml Script entry points. Implement the per-synchronizer report state and ReportConsumption choice, then verify sequential windows, operator-only reporting, and inertness after offboarding in Daml Script.
Written by the indexing model from the issue text.
Assessment
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100