Skip to content

Bootstrap Certificate Chain w/ Genesis Certificate #364

Closed
@jpraynaud

Description

@jpraynaud

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

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

Depends on #316

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions