区块链中区块的构成详解

绝地灬酷狼 2022-04-22 05:48 1196阅读 0赞

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpZGl5YTAwNw_size_16_color_FFFFFF_t_70

  那作为区块链的数据元素,区块的构成又是怎样的呢?

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

20181102163554447.gif

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

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

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

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

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

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

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

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

  numTransactionsBytes,numTransactions,transactions。

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

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

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

  在区块体部分中,numTransactions(记录区块内交易数量)是存储交易信息的重要字段,将numTransactions(记录区块内交易数量)部分使用压缩存储方式,这样可以大量的节约存储空间。numTransactionsBytes字段的存在是为了指出numTransactions在区块体中存在的部位,为读取交易数量而做准备,因此,应最先读取numTransactionsBytes字段值,并根据该字段值的不同做出如下规定:

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

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

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

  否则,交易数量为numTransactionsBytes字段值之后的8个字节。

  作者:f珞珈山神

  原文链接:https://www.kg.com/article/507675167221223424

发表评论

表情:
评论列表 (有 0 条评论,1196人围观)

还没有评论,来说两句吧...

相关阅读

    相关 区块

    1.概念定义 什么是区块链?从科技层面来看,区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题。从应用视角来看,简单来说,区块链是一个分布式的共享账本和数据库,

    相关 区块安全性(区块应用)

    区块链的特征包括什么 安全性高。区块链不受任何人和实体的控制,数据在多台计算机上完整的复制。攻击者没有一个单一的入口点,数据安全更有保障。数据不可篡改,一旦进入区块链,任

    相关 区块

    什么是区块链? 区块链可以简单理解成一种记账本(分布式数据库)。不过,这种账本不是纸质的,而是电子记账本,存放于于互联网中,有无数本,并且每一本的内容都一样。如果其中一本账本

    相关 区块

    什么是区块链 区块链是一种技术,比特币交易用到了区块链技术 中心化交易模式:转账需要经过第三方,比如银行,银行就是中心 去中心化交易模式:区块链模式。A将虚拟货币(

    相关 详解区块EOS作用。

    我认为,区块链的核心功能是去中心化的价值表示和价值转移,它们分别对应的是以上分类中的财富与计算。当试图构建应用时,我们应把重点放在这两者上面。和其他主要的区块链一样,EOS在这