A block header is like the metadata at the top of a block of transactions.
The fields in the block header provide a unique summary of the entire block.
Here's the block header for block 123,456:
|Version||The version of the block.|
|Previous Block ID||The Block ID of the block that this block is being built on top of. This is what "chains" the blocks together.|
|Merkle Root||All of the transactions in this block, hashed together. Basically provides a single-line summary of all the transactions in this block.|
|Time||When a miner is trying to mine this block, the Unix time at which this block header is being hashed is noted within the block header itself.|
|Bits||A shortened version of the Target.|
|Nonce||The field that miners change in order to try and get a hash of the block header (a Block ID) that is below the Target.|
|Previous Block ID||32 bytes||Big-endian|
|Merkle Root||32 bytes||Big-endian|
- Hash Block Header - Insert individual block header fields, and get the serialized block header and the Block ID.