A block certified by consensus for fast path execution.
A batch of certified blocks output by consensus for processing.
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.
Arguments from commit consumer to this consensus instance.
This includes both parameters and components for communications.
Helps monitor the progress of the consensus commit handler (consumer).
Digest of a consensus commit.
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.
Uniquely identifies a commit with its index and digest.
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.
Context contains per-epoch configuration and metrics shared by all components
of this authority.
DagBuilder API
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.
Expand a committed sequence of leader into a sequence of sub-dags.
Exported API for testing and tools.
Creates fake blocks for testing.
This struct is public for testing in other crates.
Exported API for testing and tools.
Sui transaction in serialised bytes
TransactionCertifier has the following purposes:
Exported API for testing and tools.
VerifiedBlock allows full access to its content.
Note: clone() is relatively cheap with most underlying data refcounted.