区块链的区块结构

在比特币网络中,数据会以文件的形式被永久记录,我们称这些文件为区块。一个区块是一些或所有最新比特币交易的记录集,且未被其他先前的区块记录。可以将区块想象为一个城市记录者其记录本上单独的一页纸(对房地产产权的变更记录),或者是股票交易所的总账本。在绝大多数情况下,新区块会被加入到记录的最后(在比特币中的名称为区块链),一旦写上,就再也不能改变和删除。每个区块记录了它被创建之前发生的所有事件。

一个区块的区块结构如下所示:

数据项 描述 长度
Magic no(魔法数) 总是0xD9B4BEF9 4字节
Blocksize(区块大小) 到区块结束的字节长度 4字节
Blockheader(区块头) 包含6个数据项 80字节
Transaction counter(交易数量) 正整数VI=VarInt 1-9字节
Transactions(交易) 交易列表(非空) <Transaction counter>-许多交易










每个区块都包括了一个被称为魔法数的常数、区块的大小、区块头、区块所包含的交易数量及部分或所有的近期新交易。在每个区块中,对整个区块链起决定作用的是区块头。

区块头描述:

数据项 目的 更新时间 大小(字节)
Version(版本) 区块版本号 更新软件后,它指定了一个新的版本号 4
hashPrevBlock(前一区块的Hash) 前一区块的256位Hash值 新的区块进来时 32
hashMerkleRoot Merkle(根节点Hash值) 基于一个区块中所有交易的256位Hash值 接受一个交易时 32
Time(时间戳) 从1970-01-01 00:00 UTC开始到现在,以秒为单位的当前时间戳 每几秒就更新 4
Bits(当前目标的Hash值) 压缩格式的当前目标Hash值 当挖矿难度调整时 4
Nonce(随机数) 从0开始的32位随机数 产生Hash时(每次产生Hash随机数时都要增长) 4

没有更多推荐了,返回首页