Skip to content

Support an IVC follower aggregator joining the network at any time #3446

Description

@jpraynaud

Why

An IVC follower aggregator can currently only produce certificates on a chain that has been IVC since its genesis: the recursion is seeded from the parent certificate, and the synchronizer mirrors the leader's certificates whatever their proof system. Behind a Concatenation leader, an IVC follower therefore never produces a certificate, and the only bootstrap window (the epoch right after a genesis) can be missed depending on synchronization timing. An analysis has been led in #3389.

What

Make a follower aggregator able to join the network and start producing certificates at any time, for the following topologies:

# Follower Leader for signers Source for certificates Certification start
1 IvcSnark Concatenation leader Concatenation leader At the epoch after the next re-genesis, once the follower is warmed up
2 IvcSnark Concatenation leader Caught-up IVC follower aggregator At any epoch, by inheriting the rolling state from the synchronized parent certificate
3 Concatenation Concatenation leader Concatenation leader Unchanged current behavior (warm follower: next epoch; cold follower: two epochs after genesis)
4 Concatenation Concatenation leader Caught-up Concatenation follower aggregator Same as case 3, with the certificate chain synchronized from the intermediate follower

How

  • Add an integration test checking that a warm follower signs at the epoch immediately after the genesis even when it synchronizes the genesis certificate only at that epoch
  • Fetch the parent of a certificate that certifies the full certificate chain, as its verification stops early, so the synchronized chain stays contiguous down to the genesis certificate
  • Support following one aggregator for the signer registrations and, optionally when specified, another one for the certificate chain (which defaults to the aforementioned)
    • Add the optional certificate chain aggregator endpoint to the configuration, the command line and the documentation
    • Instantiate a second aggregator client on that endpoint for the certificate chain synchronizer and its certificate verifier
    • Add the endpoint to the infrastructure (Terraform variable, aggregator environment, follower docker compose override)
    • Add the endpoint to the deployment workflows
  • Adapt the end-to-end test to support a follower of follower topology for the certificate chain

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions