一个区块是一个容器数据结构,用于聚合交易以便包含在区块链中。区块由一个包含元数据的头部组成,后面跟着一个包含大部分数据的交易列表。区块头部通常为 80 字节,而一个区块中所有交易的总大小可以达到约 4,000,000 字节。因此,一个完整的区块,包含所有交易,几乎可以比区块头部大约 50,000 倍。表 11-1 描述了比特币核心如何存储一个区块的结构。
表 11-1. 区块的结构
大小 | 字段 | 描述 |
---|---|---|
4 字节 | 区块大小(Block Size) | 该字段后面跟着区块的大小,以字节为单位 |
80字节 | 区块头(Block Header) | 几个字段形成了区块头部 |
1-3字节(compactSize) | 交易计数器(Transaction Counter) | 接下来有多少个交易 |
可变字节 | 交易(Transactions) | 记录在此区块中的交易 |