[][src]Struct grin_chain::types::Tip

pub struct Tip {
    pub height: u64,
    pub last_block_h: Hash,
    pub prev_block_h: Hash,
    pub total_difficulty: Difficulty,
}

The tip of a fork. A handle to the fork ancestry from its leaf in the blockchain tree. References the max height and the latest and previous blocks for convenience and the total difficulty.

Fields

Height of the tip (max height of the fork)

Last block pushed to the fork

Previous block

Total difficulty accumulated on that fork

Methods

impl Tip
[src]

TODO - why do we have Tip when we could just use a block header? Creates a new tip based on header.

Trait Implementations

impl Clone for Tip
[src]

Performs copy-assignment from source. Read more

impl Default for Tip
[src]

impl PartialEq<Tip> for Tip
[src]

impl Debug for Tip
[src]

impl Serialize for Tip
[src]

impl<'de> Deserialize<'de> for Tip
[src]

impl Readable for Tip
[src]

impl Writeable for Tip
[src]

Serialization of a tip, required to save to datastore.

Auto Trait Implementations

impl Send for Tip

impl Sync for Tip

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> SafeBorrow for T where
    T: ?Sized

impl<'a, T> DefaultFeatures for T where
    T: 'a + Send + Sync + Clone

impl<'a, T> NonSyncFeatures for T where
    T: 'a + Clone

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> DebugAny for T where
    T: Any + Debug

impl<T> CloneAny for T where
    T: Clone + Any

impl<T> UnsafeAny for T where
    T: Any

impl<T> Erased for T

impl<T> PMMRIndexHashable for T where
    T: Writeable
[src]

impl<W> Hashed for W where
    W: Writeable
[src]

impl<T> Same for T

Should always be Self

impl<H> ShortIdentifiable for H where
    H: Hashed
[src]

Generate a short_id via the following -

  • extract k0/k1 from block_hash hashed with the nonce (first two u64 values) * initialize a siphasher24 with k0/k1
    • self.hash() passing in the siphasher24 instance
    • drop the 2 most significant bytes (to return a 6 byte short_id)