Skip to content

Warm up the SRS and circuit key caches in the end to end tests #3424

Description

@jpraynaud

Why

The end to end tests do not prepare the SNARK caches. Each node downloads the SRS and computes its circuit keys lazily during the first aggregation, which forces a long epoch length and makes the test runs slow and vulnerable to a download timeout.

What

Prepare the SRS and the circuit keys before the nodes start, so the first aggregation only pays for the proving.

How

  • Add a cache warmup step to the end to end infrastructure setup (mithril-end-to-end/src/mithril/infrastructure.rs)
  • Share a single cache directory across the nodes of a run, or seed each node from a prepared one
  • Reduce the epoch length once the warmup removes the initial cost
  • Report the warmup duration separately from the test duration
  • How to deal with cache invalidation (e.g. when the circuit verification keys change)?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions