consensus_core/
lib.rs

1// Copyright (c) Mysten Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4/// Consensus modules.
5mod ancestor;
6mod authority_node;
7mod authority_service;
8mod base_committer;
9mod block;
10mod block_manager;
11mod block_verifier;
12mod commit;
13mod commit_consumer;
14mod commit_finalizer;
15mod commit_observer;
16mod commit_syncer;
17mod commit_vote_monitor;
18mod context;
19mod core;
20mod core_thread;
21mod dag_state;
22mod error;
23mod leader_schedule;
24mod leader_scoring;
25mod leader_timeout;
26mod linearizer;
27mod metrics;
28mod network;
29mod proposed_block_handler;
30mod round_prober;
31mod round_tracker;
32mod stake_aggregator;
33pub mod storage;
34mod subscriber;
35mod synchronizer;
36mod threshold_clock;
37mod transaction;
38mod transaction_certifier;
39mod universal_committer;
40
41/// Consensus test utilities.
42#[cfg(test)]
43mod test_dag;
44mod test_dag_builder;
45#[cfg(test)]
46mod test_dag_parser;
47
48/// Randomized integration tests.
49#[cfg(test)]
50#[path = "tests/randomized_tests.rs"]
51mod randomized_tests;
52
53/// Exported Consensus API.
54pub use authority_node::{ConsensusAuthority, NetworkType};
55pub use block::{BlockAPI, CertifiedBlock, CertifiedBlocksOutput};
56
57/// Exported API for testing and tools.
58pub use block::{TestBlock, Transaction, VerifiedBlock};
59pub use commit::{CommitAPI, CommitDigest, CommitIndex, CommitRange, CommitRef, CommittedSubDag};
60pub use commit_consumer::{CommitConsumerArgs, CommitConsumerMonitor};
61pub use context::Clock;
62pub use metrics::Metrics;
63pub use transaction::{
64    BlockStatus, ClientError, TransactionClient, TransactionVerifier, ValidationError,
65};
66
67// Exported API for benchmarking
68pub use block_verifier::{BlockVerifier, NoopBlockVerifier};
69pub use commit_finalizer::CommitFinalizer;
70pub use context::Context;
71pub use dag_state::DagState;
72pub use linearizer::Linearizer;
73pub use storage::mem_store::MemStore;
74pub use test_dag_builder::DagBuilder;
75pub use transaction_certifier::TransactionCertifier;
76
77// Exported API for simtests.
78#[cfg(msim)]
79pub use network::tonic_network::to_socket_addr;
80#[cfg(msim)]
81pub use transaction::NoopTransactionVerifier;