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 Certificate
that embeds theAVK
of theStake Distribution
and itsGenesis 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 aGenesis Secret Key
(only for test purpose) - [x] Add a
Genesis Verifier
that verifies aGenesis Signature
against aGenesis Verification Key
- [x] Implement the
verify_genesis_certificate
of 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 Chain
is 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 Key
into aGenesis Signature
- [x] Add a sub command to the Aggregator CLI to import the
Genesis Signature
and create aGenesis Certificate
- [x] Update
test lab
to bootstrap aGenesis Certificate
- [x] Update
devnet
standalone 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