ChainSafe / ChainSafe/canton-extending-mainnet

[P2-E6.1] Per-synchronizer report state + report choice

Open
#94 0 comments 0 reactions 0 assignees View on GitHub
phase-3
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.