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.
42mod commit_test_fixture;
43#[cfg(test)]
44mod test_dag;
45mod test_dag_builder;
46#[cfg(test)]
47mod test_dag_parser;
48
49/// Randomized integration tests.
50#[cfg(test)]
51#[path = "tests/randomized_tests.rs"]
52mod randomized_tests;
53
54/// Exported Consensus API.
55pub use authority_node::{ConsensusAuthority, NetworkType};
56pub use block::{BlockAPI, CertifiedBlock, CertifiedBlocksOutput};
57
58/// Exported API for testing and tools.
59pub use block::{TestBlock, Transaction, VerifiedBlock};
60pub use commit::{CommitAPI, CommitDigest, CommitIndex, CommitRange, CommitRef, CommittedSubDag};
61pub use commit_consumer::{CommitConsumerArgs, CommitConsumerMonitor};
62pub use context::Clock;
63pub use metrics::Metrics;
64pub use transaction::{
65    BlockStatus, ClientError, TransactionClient, TransactionVerifier, ValidationError,
66};
67
68// Exported API for benchmarking
69pub use block_verifier::{BlockVerifier, NoopBlockVerifier};
70pub use commit_finalizer::CommitFinalizer;
71pub use context::Context;
72pub use dag_state::DagState;
73pub use linearizer::Linearizer;
74pub use storage::mem_store::MemStore;
75pub use test_dag_builder::DagBuilder;
76pub use transaction_certifier::TransactionCertifier;
77
78// Exported API for simtests.
79#[cfg(msim)]
80pub use block::Slot;
81pub use commit_test_fixture::{
82    CommitTestFixture, RandomDag, RandomDagConfig, RandomDagIterator, assert_commit_sequences_match,
83};
84#[cfg(msim)]
85pub use network::tonic_network::to_socket_addr;
86#[cfg(msim)]
87pub use transaction::NoopTransactionVerifier;