Struct bitcoin::blockdata::block::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
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§
source§impl 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§
source§impl Clone for BlockHeader
impl Clone for BlockHeader
source§fn clone(&self) -> BlockHeader
fn clone(&self) -> BlockHeader
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for BlockHeader
impl Debug for BlockHeader
source§impl Decodable for BlockHeader
impl Decodable for BlockHeader
source§fn 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 moresource§fn consensus_decode<R: Read + ?Sized>(r: &mut R) -> Result<BlockHeader, Error>
fn consensus_decode<R: Read + ?Sized>(r: &mut R) -> Result<BlockHeader, Error>
source§impl<'de> Deserialize<'de> for BlockHeader
impl<'de> Deserialize<'de> for BlockHeader
source§fn 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>,
source§impl Encodable for BlockHeader
impl Encodable for BlockHeader
source§impl Hash for BlockHeader
impl Hash for BlockHeader
source§impl Ord for BlockHeader
impl Ord for BlockHeader
source§fn cmp(&self, other: &BlockHeader) -> Ordering
fn cmp(&self, other: &BlockHeader) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<BlockHeader> for BlockHeader
impl PartialEq<BlockHeader> for BlockHeader
source§fn eq(&self, other: &BlockHeader) -> bool
fn eq(&self, other: &BlockHeader) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<BlockHeader> for BlockHeader
impl PartialOrd<BlockHeader> for BlockHeader
source§fn partial_cmp(&self, other: &BlockHeader) -> Option<Ordering>
fn partial_cmp(&self, other: &BlockHeader) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more