mithril
mithril copied to clipboard
Bootstrap Certificate Chain w/ Genesis Certificate
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 Certificatethat embeds theAVKof theStake Distributionand itsGenesis Signaturein the Aggregator - Verify the
Genesis Certificatein the Client - Implement this feature in the
End to End Tests
Tasks
- [x] Add a
Genesis Signerthat signs a message with aGenesis Secret Key(only for test purpose) - [x] Add a
Genesis Verifierthat verifies aGenesis Signatureagainst aGenesis Verification Key - [x] Implement the
verify_genesis_certificateof theCertificate 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 Chainis valid before trying to produce newMithril Certificates - [x] Add a sub command to the Aggregator CLI to generate test only
Genesis Keys, and boostrap a test onlyGenesis Certificate - [x] Add a sub command to the Aggregator CLI to export the message that must be signed with
Genesis Secret Keyinto aGenesis Signature - [x] Add a sub command to the Aggregator CLI to import the
Genesis Signatureand create aGenesis Certificate - [x] Update
test labto bootstrap aGenesis Certificate - [x] Update
devnetstandalone to bootstrap aGenesis 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