mithril_aggregator/
lib.rs1#![warn(missing_docs)]
2mod artifact_builder;
15mod commands;
16mod configuration;
17pub mod database;
18pub mod dependency_injection;
19pub mod entities;
20pub mod event_store;
21mod file_uploaders;
22mod http_server;
23mod immutable_file_digest_mapper;
24mod message_adapters;
25pub mod metrics;
26mod multi_signer;
27mod runtime;
28pub mod services;
29mod store;
30mod tools;
31
32pub use crate::artifact_builder::ArtifactBuilder;
33pub use crate::configuration::{
34 ConfigurationSource, DefaultConfiguration, ExecutionEnvironment, ServeCommandConfiguration,
35 SnapshotUploaderType, ZstandardCompressionParameters,
36};
37pub use crate::multi_signer::{MultiSigner, MultiSignerImpl};
38pub use commands::{CommandType, MainOpts};
39pub use dependency_injection::ServeCommandDependenciesContainer;
40pub use file_uploaders::{DumbUploader, FileUploader};
41pub use message_adapters::FromRegisterSignerAdapter;
42pub use metrics::*;
43pub use runtime::{
44 AggregatorConfig, AggregatorRunner, AggregatorRunnerTrait, AggregatorRuntime, RuntimeError,
45};
46pub use services::{
47 MithrilSignerRegistrationFollower, MithrilSignerRegistrationLeader,
48 MithrilSignerRegistrationVerifier, SignerRecorder, SignerRegisterer, SignerRegistrationError,
49 SignerRegistrationRound, SignerRegistrationRoundOpener, SignerRegistrationVerifier,
50 SignerSynchronizer,
51};
52pub use store::{EpochSettingsStorer, ProtocolParametersRetriever, VerificationKeyStorer};
53pub use tools::{
54 CExplorerSignerRetriever, SignersImporter, SignersImporterPersister, SignersImporterRetriever,
55 SingleSignatureAuthenticator,
56};
57
58pub use immutable_file_digest_mapper::ImmutableFileDigestMapper;
59
60#[cfg(test)]
61pub(crate) use dependency_injection::tests::initialize_dependencies;
62
63#[cfg(all(not(target_env = "msvc"), feature = "jemallocator"))]
65use tikv_jemallocator::Jemalloc;
66
67#[cfg(all(not(target_env = "msvc"), feature = "jemallocator"))]
68#[global_allocator]
69static GLOBAL: Jemalloc = Jemalloc;
70
71#[cfg(test)]
72pub(crate) mod test_tools {
73 use std::io;
74 use std::sync::Arc;
75
76 use slog::{Drain, Logger};
77 use slog_async::Async;
78 use slog_term::{CompactFormat, PlainDecorator};
79
80 use mithril_common::test_utils::{MemoryDrainForTest, MemoryDrainForTestInspector};
81
82 pub struct TestLogger;
83
84 impl TestLogger {
85 fn from_writer<W: io::Write + Send + 'static>(writer: W) -> Logger {
86 let decorator = PlainDecorator::new(writer);
87 let drain = CompactFormat::new(decorator).build().fuse();
88 let drain = Async::new(drain).build().fuse();
89 Logger::root(Arc::new(drain), slog::o!())
90 }
91
92 pub fn stdout() -> Logger {
93 Self::from_writer(slog_term::TestStdoutWriter)
94 }
95
96 pub fn memory() -> (Logger, MemoryDrainForTestInspector) {
97 let (drain, inspector) = MemoryDrainForTest::new();
98 (Logger::root(drain.fuse(), slog::o!()), inspector)
99 }
100 }
101}