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