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
impl LedgerInfo
[src]
impl LedgerInfo
[src]pub fn new(commit_info: BlockInfo, consensus_data_hash: HashValue) -> Self
[src]
pub fn new(commit_info: BlockInfo, consensus_data_hash: HashValue) -> Self
[src]Constructs a LedgerInfo
object based on the given commit info and vote data hash.
pub fn genesis(
genesis_state_root_hash: HashValue,
validator_set: ValidatorSet
) -> Self
[src]
pub fn genesis(
genesis_state_root_hash: HashValue,
validator_set: ValidatorSet
) -> Self
[src]Create a new LedgerInfo at genesis with the given genesis state and initial validator set.
pub fn commit_info(&self) -> &BlockInfo
[src]
pub fn commit_info(&self) -> &BlockInfo
[src]The BlockInfo
of a committed block.
pub fn epoch(&self) -> u64
[src]
pub fn epoch(&self) -> u64
[src]A series of wrapper functions for the data stored in the commit info. For the detailed
information, please refer to BlockInfo
pub fn next_block_epoch(&self) -> u64
[src]
pub fn round(&self) -> Round
[src]
pub fn consensus_block_id(&self) -> HashValue
[src]
pub fn transaction_accumulator_hash(&self) -> HashValue
[src]
pub fn version(&self) -> Version
[src]
pub fn timestamp_usecs(&self) -> u64
[src]
pub fn next_epoch_state(&self) -> Option<&EpochState>
[src]
pub fn ends_epoch(&self) -> bool
[src]
pub fn consensus_data_hash(&self) -> HashValue
[src]
pub fn consensus_data_hash(&self) -> HashValue
[src]Returns hash of consensus voting data in this LedgerInfo
.
pub fn set_consensus_data_hash(&mut self, consensus_data_hash: HashValue)
[src]
Trait Implementations
impl Clone for LedgerInfo
[src]
impl Clone for LedgerInfo
[src]fn clone(&self) -> LedgerInfo
[src]
fn clone(&self) -> LedgerInfo
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl CryptoHash for LedgerInfo
[src]
impl CryptoHash for LedgerInfo
[src]type Hasher = LedgerInfoHasher
type Hasher = LedgerInfoHasher
The associated Hasher
type which comes with a unique salt for this type.
impl Debug for LedgerInfo
[src]
impl Debug for LedgerInfo
[src]impl<'de> Deserialize<'de> for LedgerInfo
[src]
impl<'de> Deserialize<'de> for LedgerInfo
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
impl Display for LedgerInfo
[src]
impl Display for LedgerInfo
[src]impl PartialEq<LedgerInfo> for LedgerInfo
[src]
impl PartialEq<LedgerInfo> for LedgerInfo
[src]fn eq(&self, other: &LedgerInfo) -> bool
[src]
fn eq(&self, other: &LedgerInfo) -> bool
[src]This method tests for self
and other
values to be equal, and is used
by ==
. Read more
fn ne(&self, other: &LedgerInfo) -> bool
[src]
fn ne(&self, other: &LedgerInfo) -> bool
[src]This method tests for !=
.
impl Serialize for LedgerInfo
[src]
impl Serialize for LedgerInfo
[src]impl TryFrom<&'_ LedgerInfo> for TrustedState
[src]
impl TryFrom<&'_ LedgerInfo> for TrustedState
[src]impl Eq for LedgerInfo
[src]
impl StructuralEq for LedgerInfo
[src]
impl StructuralPartialEq for LedgerInfo
[src]
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
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<T> TestOnlyHash for T where
T: Serialize + ?Sized,
[src]
impl<T> TestOnlyHash for T where
T: Serialize + ?Sized,
[src]pub fn test_only_hash(&self) -> HashValue
[src]
pub fn test_only_hash(&self) -> HashValue
[src]Generates a hash used only for tests.
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,