mithril icon indicating copy to clipboard operation
mithril copied to clipboard

Bootstrap Certificate Chain w/ Genesis Certificate

Open jpraynaud opened this issue 2 years ago • 0 comments

Issue

Create a genesis command of the Aggregator (manual operation):

  • (Re)Use a private key (Cardano keys) for testing purpose
  • (Re)Use a public key stored on a public location (Github)
  • Create and store a Genesis Certificate that embeds the AVK of the Stake Distribution and its Genesis Signature in the Aggregator
  • Verify the Genesis Certificate in the Client
  • Implement this feature in the End to End Tests

Tasks

  • [x] Add a Genesis Signer that signs a message with a Genesis Secret Key (only for test purpose)
  • [x] Add a Genesis Verifier that verifies a Genesis Signature against a Genesis Verification Key
  • [x] Implement the verify_genesis_certificate of the Certificate Verifier
  • [x] Make Client load/use the Genesis Verification Key
  • [x] Make Aggregator load/use the Genesis Verification Key
  • [x] Make Aggregator verify that the Certificate Chain is valid before trying to produce new Mithril Certificates
  • [x] Add a sub command to the Aggregator CLI to generate test only Genesis Keys, and boostrap a test only Genesis Certificate
  • [x] Add a sub command to the Aggregator CLI to export the message that must be signed with Genesis Secret Key into a Genesis Signature
  • [x] Add a sub command to the Aggregator CLI to import the Genesis Signature and create a Genesis Certificate
  • [x] Update test lab to bootstrap a Genesis Certificate
  • [x] Update devnet standalone to bootstrap a Genesis Certificate
  • [x] Update GCP Aggregator to use the test Genesis Keys
  • [ ] Fix flakiness test end to end in CI
  • [ ] Update documentations
  • [ ] Deploy to GCP Aggregator (and bootstrap Genesis Certificate)

Depends on #316

jpraynaud avatar Jul 19 '22 08:07 jpraynaud