Skip to main content

BlockHeader

Struct BlockHeader 

Source
pub struct BlockHeader {
    pub version: i32,
    pub prev_blockhash: BlockHash,
    pub merkle_root: TxMerkleNode,
    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: i32

The protocol version. Should always be 1.

§prev_blockhash: BlockHash

Reference to the previous block in the chain

§merkle_root: TxMerkleNode

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 block_hash(&self) -> BlockHash

Return the block hash.

Source

pub fn target(&self) -> Uint256

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

Source

pub fn u256_from_compact_target(bits: u32) -> Uint256

Computes the target value in Uint256 format, from a compact representation.

use bitcoin::blockdata::block::BlockHeader;

assert_eq!(0x1d00ffff,
    BlockHeader::compact_target_from_u256(
        &BlockHeader::u256_from_compact_target(0x1d00ffff)
    )
);
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 validate_pow(&self, required_target: &Uint256) -> Result<(), Error>

Checks that the proof-of-work for the block is valid.

Source

pub fn work(&self) -> Uint256

Returns the total work of the block

Trait Implementations§

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 Decodable for BlockHeader

Source§

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

Decode an object with a well-defined format
Source§

impl Encodable for BlockHeader

Source§

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

Encode an object with a well-defined format. Returns the number of bytes written on success. Read more
Source§

impl Eq for BlockHeader

Source§

impl PartialEq for BlockHeader

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
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.