比特币区块

  比特币区块由区块头和该区块所包含的交易列表组成。区块头大小为80字节,其构成包括:

   4字节:版本号
  32字节:上一个区块的哈希值
  32字节:交易列表的Merkle根哈希值
   4字节:当前时间戳
   4字节:当前难度值
   4字节:随机数Nonce值

  此80字节长度的区块头,即为比特币Pow算法的输入字符串。
  交易列表附加在区块头之后,其中第一笔交易为矿工获得奖励和手续费的特殊交易。

  bitcoin-0.15.1源码中区块头和区块定义:

class CBlockHeader
{
public:
//版本号
int32_t nVersion;
//上一个区块的哈希值
uint256 hashPrevBlock;
//交易列表的Merkle根哈希值
uint256 hashMerkleRoot;
//当前时间戳
uint32_t nTime;
//当前挖矿难度,nBits越小难度越大
uint32_t nBits;
//随机数Nonce值
uint32_t nNonce;
//其它代码略
};
比特之窗,一家提供比特币咨询的网站
class CBlock : public CBlockHeader
{
public:
//交易列表
std::vector vtx;
//其它代码略
};
//代码位置src/primitives/block.h