Expand description
This crate implements the core protocol logic for the Distributed Aggregation Protocol
(DAP) standard under development in the
PPM working group of the IETF. See VdafConfig
for a listing of supported
VDAFs.
Daphne implements draft-ietf-ppm-dap-02.
Daphne does not provide the complete, end-to-end functionality of any party in the protocol.
Instead, it defines traits for the functionalities that a concrete instantiation of the
protocol is required to implement. For example, the daphne_worker
crate implements a backend
for the DAP Leader and Helper. See the crate::roles
module for details.
Daphne is not yet feature complete. Known issues include:
-
The collect sub-protocol has not yet been fully implemented. In particular, Daphne Aggreators do not check properly if batch intervals overlap across collect requests. Note that this feature is privacy-critical and implementation is planned. See https://github.com/cloudflare/daphne/issues/45 for details.
-
Daphne is not compatible with DAP tasks whose maximum batch lifetime is longer than one.
-
Aborts are not handled precisely as specified. In particular, some fields in the “Problem Details” document are omitted.
-
Daphne does not implement a complete DAP Client or Collector. However, methods are provided on
VdafConfig
for producing reports and consuming aggregate results.
Modules§
- auth
- DAP request authorization.
- constants
- Constants used in the DAP protocol.
- hpke
- Hybrid Public-Key Encryption (HPKE).
- messages
- Messages in the DAP protocol.
- roles
- Trait definitions for Daphne backends.
- testing
- Mock backend functionality to test DAP protocol.
- vdaf
- Verifiable, Distributed Aggregation Functions (VDAFs).
Structs§
- DapAggregate
Share - An aggregate share computed by combining a set of output shares.
- DapGlobal
Config - Global DAP parameters common across tasks.
- DapHelper
State - The Helper’s state during the aggregation flow.
- DapLeader
Process Telemetry - Telemetry information for the leader’s processing loop.
- DapLeader
State - The Leader’s state after sending an AggregateInitReq.
- DapLeader
Uncommitted - The Leader’s state after sending an AggregateContReq.
- DapOutput
Share - An ouptut share produced by an Aggregator for a single report.
- DapRequest
- DAP request.
- DapResponse
- DAP response.
- DapTask
Config - Per-task DAP parameters.
- Problem
Details - A problem details document compatible with RFC 7807.
Enums§
- DapAbort
- DAP aborts.
- DapAggregate
Result - The aggregate result computed by the Collector.
- DapBatch
Bucket - A batch bucket.
- DapCollect
Job - Status of a collect job.
- DapError
- DAP errors.
- DapHelper
Transition - Helper state transition during the aggregation flow.
- DapLeader
Transition - Leader state transition during the aggregation flow.
- DapMeasurement
- A measurement from which a Client generates a report.
- DapQuery
Config - DAP Query configuration.
- DapVersion
- DAP version used for a task.
- Prio3
Config - Supported data types for prio3.
- Vdaf
Config - Specificaiton of a concrete VDAF.