Closed
Description
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
- Add a
Genesis Signer
that signs a message with aGenesis Secret Key
(only for test purpose) - Add a
Genesis Verifier
that verifies aGenesis Signature
against aGenesis Verification Key
- Implement the
verify_genesis_certificate
of theCertificate 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 newMithril Certificates
- Add a sub command to the Aggregator CLI to generate test only
Genesis Keys
, and boostrap a test onlyGenesis Certificate
- Add a sub command to the Aggregator CLI to export the message that must be signed with
Genesis Secret Key
into aGenesis Signature
- Add a sub command to the Aggregator CLI to import the
Genesis Signature
and create aGenesis Certificate
- Update
test lab
to bootstrap aGenesis Certificate
- Update
devnet
standalone to bootstrap aGenesis Certificate
- Update GCP Aggregator to use the test
Genesis Keys
- Update documentations
- Deploy to GCP Aggregator (and bootstrap
Genesis Certificate
)
Depends on #316