Skip to main content

BlockHeader

Struct BlockHeader 

Source
pub struct BlockHeader {
    pub version: u32,
    pub prev_blockhash: Hash,
    pub merkle_root: Hash,
    pub time: u32,
    pub bits: u32,
    pub nonce: u32,
}
Expand description

A block header, which contains all the block’s information except the actual transactions

Fields§

§version: u32

The protocol version. Should always be 1.

§prev_blockhash: Hash

Reference to the previous block in the chain

§merkle_root: Hash

The root hash of the merkle tree of transactions in the block

§time: u32

The timestamp of the block, as claimed by the miner

§bits: u32

The target value below which the blockhash must lie, encoded as a a float (with well-defined rounding, of course)

§nonce: u32

The nonce, selected to obtain a low enough blockhash

Implementations§

Source§

impl BlockHeader

Source

pub fn target(&self) -> Uint256

Computes the target [0, T] that a blockhash must land in to be valid

Source

pub fn compact_target_from_u256(value: &Uint256) -> u32

Computes the target value in float format from Uint256 format.

Source

pub fn difficulty(&self, network: Network) -> u64

Compute the popular “difficulty” measure for mining

Source

pub fn spv_validate(&self, required_target: &Uint256) -> Result<(), Error>

Performs an SPV validation of a block, which confirms that the proof-of-work is correct, but does not verify that the transactions are valid or encoded correctly.

Source

pub fn work(&self) -> Uint256

Returns the total work of the block

Trait Implementations§

Source§

impl BitcoinHash for BlockHeader

Source§

fn bitcoin_hash(&self) -> Hash

Produces a Sha256dHash which can be used to refer to the object
Source§

impl Clone for BlockHeader

Source§

fn clone(&self) -> BlockHeader

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for BlockHeader

Source§

impl Debug for BlockHeader

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<D: Decoder> Decodable<D> for BlockHeader

Source§

fn consensus_decode(d: &mut D) -> Result<BlockHeader, Error>

Decode an object with a well-defined format
Source§

impl<S: Encoder> Encodable<S> for BlockHeader

Source§

fn consensus_encode(&self, s: &mut S) -> Result<(), Error>

Encode an object with a well-defined format, should only ever error if the underlying Encoder errors.
Source§

impl Eq for BlockHeader

Source§

impl PartialEq for BlockHeader

Source§

fn eq(&self, other: &BlockHeader) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for BlockHeader

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

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

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

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

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.