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
Bitcoin block header.
Contains all the block’s information except the actual transactions, but including a root of a merkle tree commiting to all transactions in the block.
Bitcoin Core References
Fields
version: i32
Originally protocol version, but repurposed for soft-fork signaling.
Relevant BIPs
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
sourceimpl BlockHeader
impl BlockHeader
sourcepub fn block_hash(&self) -> BlockHash
pub fn block_hash(&self) -> BlockHash
Returns the block hash.
sourcepub fn target(&self) -> Uint256
pub fn target(&self) -> Uint256
Computes the target [0, T] that a blockhash must land in to be valid.
sourcepub fn u256_from_compact_target(bits: u32) -> Uint256
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)
)
);
sourcepub fn compact_target_from_u256(value: &Uint256) -> u32
pub fn compact_target_from_u256(value: &Uint256) -> u32
Computes the target value in float format from Uint256 format.
sourcepub fn difficulty(&self, network: Network) -> u64
pub fn difficulty(&self, network: Network) -> u64
Computes the popular “difficulty” measure for mining.
Trait Implementations
sourceimpl Clone for BlockHeader
impl Clone for BlockHeader
sourcefn clone(&self) -> BlockHeader
fn clone(&self) -> BlockHeader
1.0.0 · sourceconst fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for BlockHeader
impl Debug for BlockHeader
sourceimpl Decodable for BlockHeader
impl Decodable for BlockHeader
sourcefn consensus_decode_from_finite_reader<R: Read + ?Sized>(
r: &mut R
) -> Result<BlockHeader, Error>
fn consensus_decode_from_finite_reader<R: Read + ?Sized>(
r: &mut R
) -> Result<BlockHeader, Error>
Self
from a size-limited reader. Read moresourcefn consensus_decode<R: Read + ?Sized>(r: &mut R) -> Result<BlockHeader, Error>
fn consensus_decode<R: Read + ?Sized>(r: &mut R) -> Result<BlockHeader, Error>
sourceimpl<'de> Deserialize<'de> for BlockHeader
impl<'de> Deserialize<'de> for BlockHeader
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
sourceimpl Encodable for BlockHeader
impl Encodable for BlockHeader
sourceimpl Hash for BlockHeader
impl Hash for BlockHeader
sourceimpl Ord for BlockHeader
impl Ord for BlockHeader
sourcefn cmp(&self, other: &BlockHeader) -> Ordering
fn cmp(&self, other: &BlockHeader) -> Ordering
1.21.0 · sourceconst fn max(self, other: Self) -> Selfwhere
Self: Sized,
const fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 · sourceconst fn min(self, other: Self) -> Selfwhere
Self: Sized,
const fn min(self, other: Self) -> Selfwhere
Self: Sized,
1.50.0 · sourceconst fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
const fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
sourceimpl PartialEq<BlockHeader> for BlockHeader
impl PartialEq<BlockHeader> for BlockHeader
sourcefn eq(&self, other: &BlockHeader) -> bool
fn eq(&self, other: &BlockHeader) -> bool
sourceimpl PartialOrd<BlockHeader> for BlockHeader
impl PartialOrd<BlockHeader> for BlockHeader
sourcefn partial_cmp(&self, other: &BlockHeader) -> Option<Ordering>
fn partial_cmp(&self, other: &BlockHeader) -> Option<Ordering>
1.0.0 · sourceconst fn le(&self, other: &Rhs) -> bool
const fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more