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
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl 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>
Decode Self
from a size-limited reader. Read more
sourcefn consensus_decode<R: Read + ?Sized>(r: &mut R) -> Result<BlockHeader, Error>
fn consensus_decode<R: Read + ?Sized>(r: &mut R) -> Result<BlockHeader, Error>
Decode an object with a well-defined format. Read more
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>,
Deserialize this value from the given Serde deserializer. Read more
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 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialEq<BlockHeader> for BlockHeader
impl PartialEq<BlockHeader> for BlockHeader
sourcefn eq(&self, other: &BlockHeader) -> bool
fn eq(&self, other: &BlockHeader) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &BlockHeader) -> bool
fn ne(&self, other: &BlockHeader) -> bool
This method tests for !=
.
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>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl Serialize for BlockHeader
impl Serialize for BlockHeader
impl Copy for BlockHeader
impl Eq for BlockHeader
impl StructuralEq for BlockHeader
impl StructuralPartialEq for BlockHeader
Auto Trait Implementations
impl RefUnwindSafe for BlockHeader
impl Send for BlockHeader
impl Sync for BlockHeader
impl Unpin for BlockHeader
impl UnwindSafe for BlockHeader
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more