A clock that allows to derive the current UNIX system timestamp while guaranteeing that timestamp
will be monotonically incremented, tolerating ntp and system clock changes and corrections.
Explicitly avoid to make [Clock] cloneable to ensure that a single instance is shared behind an [Arc]
wherever is needed in order to make sure that consecutive calls to receive the system timestamp
will remain monotonically increasing.
CommitFinalizer accepts a continuous stream of CommittedSubDag and outputs
them when they are finalized.
In finalized commits, every transaction is either finalized or rejected.
It runs in a separate thread, to reduce the load on the core thread.
CommitRange stores a range of CommitIndex. The range contains the start (inclusive)
and end (inclusive) commit indices and can be ordered for use as the key of a table.
The output of consensus to execution is an ordered list of CommittedSubDag.
Each CommittedSubDag contains the information needed to execution transactions in
the consensus commit.
DagState provides the API to write and read accepted blocks from the DAG.
Only uncommitted and last committed blocks are cached in memory.
The rest of blocks are stored on disk.
Refs to cached blocks and additional refs are cached as well, to speed up existence checks.
Exported API for testing and tools.
VerifiedBlock allows full access to its content.
Note: clone() is relatively cheap with most underlying data refcounted.
Exported Consensus API.
ConsensusAuthority is used by Sui to manage the lifetime of AuthorityNode.
It hides the details of the implementation from the caller, MysticetiManager.