Crate consensus_core

Source

Re-exports§

Modules§

Macros§

Structs§

  • 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.

Enums§

Traits§

  • Accessors to Commit info.
  • TransactionVerifier implementation is supplied by Sui to validate transactions in a block, before acceptance of the block.

Type Aliases§

  • Index of a commit among all consensus commits.