Crate daphne

Source
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§

DapAggregateShare
An aggregate share computed by combining a set of output shares.
DapGlobalConfig
Global DAP parameters common across tasks.
DapHelperState
The Helper’s state during the aggregation flow.
DapLeaderProcessTelemetry
Telemetry information for the leader’s processing loop.
DapLeaderState
The Leader’s state after sending an AggregateInitReq.
DapLeaderUncommitted
The Leader’s state after sending an AggregateContReq.
DapOutputShare
An ouptut share produced by an Aggregator for a single report.
DapRequest
DAP request.
DapResponse
DAP response.
DapTaskConfig
Per-task DAP parameters.
ProblemDetails
A problem details document compatible with RFC 7807.

Enums§

DapAbort
DAP aborts.
DapAggregateResult
The aggregate result computed by the Collector.
DapBatchBucket
A batch bucket.
DapCollectJob
Status of a collect job.
DapError
DAP errors.
DapHelperTransition
Helper state transition during the aggregation flow.
DapLeaderTransition
Leader state transition during the aggregation flow.
DapMeasurement
A measurement from which a Client generates a report.
DapQueryConfig
DAP Query configuration.
DapVersion
DAP version used for a task.
Prio3Config
Supported data types for prio3.
VdafConfig
Specificaiton of a concrete VDAF.