pub struct Entry {
    pub num_hashes: u64,
    pub hash: Hash,
    pub transactions: Vec<VersionedTransaction>,
}
Expand description

Each Entry contains three pieces of data. The num_hashes field is the number of hashes performed since the previous entry. The hash field is the result of hashing hash from the previous entry num_hashes times. The transactions field points to Transactions that took place shortly before hash was generated.

If you multiply num_hashes by the amount of time it takes to generate a new hash, you get a duration estimate since the last Entry. Since processing power increases over time, one should expect the duration num_hashes represents to decrease proportionally. An upper bound on Duration can be estimated by assuming each hash was generated by the world’s fastest processor at the time the entry was recorded. Or said another way, it is physically not possible for a shorter duration to have occurred if one assumes the hash was computed by the world’s fastest processor at that time. The hash chain is both a Verifiable Delay Function (VDF) and a Proof of Work (not to be confused with Proof of Work consensus!)

Fields

num_hashes: u64

The number of hashes since the previous Entry ID.

hash: Hash

The SHA-256 hash num_hashes after the previous Entry ID.

transactions: Vec<VersionedTransaction>

An unordered list of transactions that were observed before the Entry ID was generated. They may have been observed before a previous Entry ID but were pushed back into this list to ensure deterministic interpretation of the ledger.

Implementations

source

impl Entry

Creates the next Entry num_hashes after start_hash.

Verifies self.hash is the result of hashing a start_hash self.num_hashes times. If the transaction is not a Tick, then hash that as well.

Trait Implementations

source

impl Clone for Entry

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

source

impl Debug for Entry

Formats the value using the given formatter. Read more

source

impl Default for Entry

Returns the “default value” for a type. Read more

source

impl<'de> Deserialize<'de> for Entry

Deserialize this value from the given Serde deserializer. Read more

source

impl PartialEq<Entry> for Entry

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

source

impl Serialize for Entry

Serialize this value into the given Serde serializer. Read more

source

impl Eq for Entry

source

impl StructuralEq for Entry

source

impl StructuralPartialEq for Entry

Auto Trait Implementations

impl RefUnwindSafe for Entry

impl Send for Entry

impl Sync for Entry

impl Unpin for Entry

impl UnwindSafe for Entry

Blanket Implementations

impl<T> AbiEnumVisitor for Twhere
    T: Serialize + AbiExample + ?Sized,

impl<T> AbiEnumVisitor for Twhere
    T: Serialize + ?Sized,

impl<T> AbiExample for T

source

impl<T> Any for Twhere
    T: 'static + ?Sized,

Gets the TypeId of self. Read more

source

impl<T> Borrow<T> for Twhere
    T: ?Sized,

Immutably borrows from an owned value. Read more

source

impl<T> BorrowMut<T> for Twhere
    T: ?Sized,

Mutably borrows from an owned value. Read more

source

impl<Q, K> Equivalent<K> for Qwhere
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized,

Compare self to key and return true if they are equal.

source

impl<T> From<T> for T

Returns the argument unchanged.

source

impl<T> Instrument for T

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

source

impl<T, U> Into<U> for Twhere
    U: From<T>,

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

impl<T> Pointable for T

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

source

impl<T> Same<T> for T

Should always be Self

source

impl<T> ToOwned for Twhere
    T: Clone,

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

Uses borrowed data to replace owned data, usually by cloning. Read more

source

impl<T, U> TryFrom<U> for Twhere
    U: Into<T>,

The type returned in the event of a conversion error.

Performs the conversion.

source

impl<T, U> TryInto<U> for Twhere
    U: TryFrom<T>,

The type returned in the event of a conversion error.

Performs the conversion.

impl<V, T> VZip<V> for Twhere
    V: MultiLane<T>,

source

impl<T> WithSubscriber for T

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

source

impl<T> DeserializeOwned for Twhere
    T: for<'de> Deserialize<'de>,