Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support the next interop target #698

Open
cjpatton opened this issue Oct 15, 2024 · 0 comments
Open

Support the next interop target #698

cjpatton opened this issue Oct 15, 2024 · 0 comments
Assignees

Comments

@cjpatton
Copy link
Contributor

cjpatton commented Oct 15, 2024

As described here, the next set of drafts to implement are (DAP-12):

The draft set we currently support is (DAP-09):

  • draft-ietf-ppm-dap-09
  • draft-irtf-cfrg-vdaf-08 for Prio3
  • draft-wang-ppm-dap-taskprov-06
  • draft-dcook-ppm-dap-interop-test-design-07

We will need to add support for DAP-12 alongside DAP-09.

Requirements

  1. The version of a VDAF, of taskprov, or of the interop API that is used is determined by the version of DAP. In particular, we won't try to support multiple versions of a VDAF or of the taskprov extension with the same DAP version.
  2. Our implementations of Prio2 and Prio3 come from the prio crate. Version 0.16 is compatible with DAP-09; a future version of the crate, perhaps 0.17, will be compatible with DAP-12. We will need to import both versions of the crate at the same time.
  3. DAP-09 MUST support all VDAFs currently supported by the taskprov extension. This includes Prio2, PINE (see below), and some non-standard Prio3SumVec variants.
  4. DAP-12 MUST support all currently supported VDAFs, excluding PINE: draft-chen-cfrg-vdaf-pine-01 is not API compatible with DAP-12, so for now we'll only maintain support for DAP-09.

Notes

  1. DapVersion::Latest is currently set to DAP-10; this should be replaced with DAP-12.
  2. The most important changes since DAP-09 are summarized in the draft's change log. Most are relatively minor, but it will be necessary to plumb the DAP version down more code paths to, for example, account for changes in message formats.
  3. The most significant change since DAP-09 is asynchronous aggregation. This feature is optional, however, and we'll handle it in a separate issue. See Support for asynchronous aggregation #697.
  4. Note that there are some known discrepancies between our implementation and the spec: see Repeated requests PUT /tasks/{tasks}/aggregation_jobs/{aggregation-job-id} are handled as fresh aggregation jobs #522 and Repeated requests to POST {helper}/tasks/{task-id}/aggregate_shares are aborted #557.

Validation

  1. This repo has unit tests and end-to-end tests, but for the most part they don't enforce interop. We mainly rely on additional tests in the internal repo for the Helper deployment. These will be useful for making sure we don't regress DAP-09.
  2. Janus is currently working on DAP-12 support as well. The interop/ folder in this directory defines a docker image they can use to automatically run a bunch of interop tests with our Helper; we can use this to test interop with DAP-12.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants