Struct diem_types::ledger_info::LedgerInfo [−][src]
pub struct LedgerInfo { /* fields omitted */ }
Expand description
This structure serves a dual purpose.
First, if this structure is signed by 2f+1 validators it signifies the state of the ledger at
version version
– it contains the transaction accumulator at that version which commits to
all historical transactions. This structure may be expanded to include other information that
is derived from that accumulator (e.g. the current time according to the time contract) to
reduce the number of proofs a client must get.
Second, the structure contains a consensus_data_hash
value. This is the hash of an internal
data structure that represents a block that is voted on in HotStuff. If 2f+1 signatures are
gathered on the same ledger info that represents a Quorum Certificate (QC) on the consensus
data.
Combining these two concepts, when a validator votes on a block, B it votes for a
LedgerInfo with the version
being the latest version that will be committed if B gets 2f+1
votes. It sets consensus_data_hash
to represent B so that if those 2f+1 votes are gathered a
QC is formed on B.
Implementations
Constructs a LedgerInfo
object based on the given commit info and vote data hash.
Create a new LedgerInfo at genesis with the given genesis state and initial validator set.
The BlockInfo
of a committed block.
A series of wrapper functions for the data stored in the commit info. For the detailed
information, please refer to BlockInfo
Returns hash of consensus voting data in this LedgerInfo
.
Trait Implementations
type Hasher = LedgerInfoHasher
type Hasher = LedgerInfoHasher
The associated Hasher
type which comes with a unique salt for this type.
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl RefUnwindSafe for LedgerInfo
impl Send for LedgerInfo
impl Sync for LedgerInfo
impl Unpin for LedgerInfo
impl UnwindSafe for LedgerInfo
Blanket Implementations
Mutably borrows from an owned value. Read more
Generates a hash used only for tests.