主页 > imtoken钱包下载注册教程 > 详解区块链中区块的组成

详解区块链中区块的组成

imtoken钱包下载注册教程 2023-07-06 05:22:07

区块链是一种链式存储结构。 块是链式存储结构中的数据元素。 区块链相互连接,形成单向链式结构。 第一个区块称为创始区块。

区块链与比特币的关系_比特币区块的主要组成部分_比特币的区块是什么意思

作为区块链的数据元素,区块的组成是什么?

事实上,每个区块的大小都规定不超过1M,其结构分为区块头和区块体两部分。

比特币的区块是什么意思_比特币区块的主要组成部分_区块链与比特币的关系

区块链与比特币的关系_比特币区块的主要组成部分_比特币的区块是什么意思

区块头一共80字节,分为6个部分:version、prevBlockHash、merkleRoot、time difficultyTarget、nonce。

version:大小为4字节,记录区块头的版本号,用于跟踪软件/协议更新;

prevBlockHash:大小为32字节,记录本区块上一个区块的Hash地址;

比特币的区块是什么意思_比特币区块的主要组成部分_区块链与比特币的关系

merkleRoot:大小为32字节,记录本区块交易的merkle根的哈希值;

time:大小为4字节,记录了区块的创建时间戳;

difficultyTarget:大小为4字节,记录了区块链工作量证明的难度目标;

区块链与比特币的关系_比特币区块的主要组成部分_比特币的区块是什么意思

nonce:大小为4字节,记录了用于证明工作量的计算参数。

区块体的内容是区块的交易信息,包括交易数量和交易数据。 块体分为三部分:

numTransactionsBytes、numTransactions、交易。

区块链与比特币的关系_比特币的区块是什么意思_比特币区块的主要组成部分

numTransactionsBytes:大小为1字节,记录了交易数量占用的字节数;

numTransactions:大小为0-8字节,记录区块中交易的数量;

transactions:大小不确定,记录了区块内存中的多个交易数据。

比特币区块的主要组成部分_区块链与比特币的关系_比特币的区块是什么意思

在区块体部分,numTransactions(记录区块中的交易数量)是存储交易信息的重要字段,numTransactions(记录区块中的交易数量)部分采用压缩存储方式存储,可以节省大量存储空间。 numTransactionsBytes字段的存在是为了指明numTransactions在区块体中的位置,为读取交易数量做准备。 因此比特币区块的主要组成部分,首先要读取numTransactionsBytes字段的值,根据该字段的值做如下规定:

如果numTransactionsBytes字段的值小于253,则交易笔数为numTransactionsBytes字段的值;

如果numTransactionsBytes字段的值等于253,则交易数量在numTransactionsBytes字段的值之后两个字节;

如果numTransactionsBytes字段的值等于254,则交易数量为numTransactionsBytes字段值后4个字节;

否则比特币区块的主要组成部分,事务数是 numTransactionsBytes 字段值后面的 8 个字节。