Crate mithril_aggregator
source ·Expand description
Mithril aggregator The Aggregator is responsible for:
- registering signers
- producing aggregate multi-signatures
- creating, storing & serving the certificate chain
- creating, storing & serving certified snapshots
This crate is divided in two parts: a HTTP server that exposes an API to communicate with signers and a Runtime that tracks the blockchain to provide signed certificates. You can find more information on how it works reading the documentation website.
Re-exports§
pub use dependency_injection::DependencyContainer;
pub use metrics::*;
Modules§
- database module. This module contains the entities definition tied with database representation with their associated queries.
- Dependency injection module. This module provides tools to initialize and share resources and services amongst different threads.
- Entities module
- Event Store module This module proposes tools to send messages between processes and how to persist them in a separate database.
- metrics module. This module contains the aggregator metrics service.
- Services
Macros§
- Match the given result and do an early return with an internal server error (500) if it was an Error. Else return the unwrapped value.
Structs§
- Configuration structure dedicated to the AggregatorRuntime.
- The runner responsibility is to expose a code API for the state machine. It holds services and configuration.
- The AggregatorRuntime responsibility is to create a state machine to handle all actions required by the process of getting multi-signatures. See the documentation for more explanations about the Aggregator state machine.
- A SignersImporterRetriever fetching signers data from CExplorer.
- Store for CertificatePending.
- Compressed Archive Snapshotter create a compressed file.
- Aggregator configuration
- Default configuration with all the default values for configurations.
- Dummy uploader for test purposes.
- Snapshotter that does nothing. It is mainly used for test purposes.
- Adapter to convert RegisterSignerMessage to Signer instances.
- LocalSnapshotUploader is a snapshot uploader working using local files
- Mithril Aggregator Node
- Implementation of a SignerRegisterer
- MultiSignerImpl is an implementation of the MultiSigner
- GCPSnapshotUploader is a snapshot uploader working using Google Cloud Platform services
- Represents the information needed to handle a signer registration round
- Tool that can import a list of signers
- Authenticates single signatures against a signed message.
- Adapter to turn CertificatePending instances into CertificatePendingMessage.
- Store for the
VerificationKey
. - Zstandard specific parameters
Enums§
- Identifies the type of command
- Different kinds of execution environments
- Error encountered or produced by the Runtime. This enum represents the faith of the errors produced during the state transitions.
- Error type for signer registerer service.
- Snapshotter error type.
- Uploader needed to copy the snapshot once computed.
- Compression algorithm and parameters of the CompressedArchiveSnapshotter.
Traits§
- This trait is intended to allow mocking the AggregatorRunner in tests. It exposes all the methods needed by the state machine.
- ArtifactBuilder is trait for building an artifact
- Store and get aggregator epoch settings for given epoch.
- MultiSigner is the cryptographic engine in charge of producing multi signatures from individual signatures
- Signer recorder trait
- Trait to register a signer
- Trait to open a signer registration round
- Trait that define how a SignersImporter persist the retrieved signers.
- Trait that define how a SignersImporter retrieve the signers to import.
- SnapshotUploader represents a snapshot uploader interactor
- Define the ability to create snapshots.
- Store and get signers verification keys for given epoch.