资讯专栏INFORMATION COLUMN

【许晓笛】EOS 区块数据结构

imingyu / 401人阅读

摘要:区块长啥样对于一个区块链项目来说,最核心的数据莫过于区块数据,区块数据结构是整个区块链项目的技术基础。区块头首先是区块头数据结构,包括了哈希时间戳默克尔根见证人账户等。完整交易信息总结我们用图形绘出了区块数据结构,便于大家理解。

EOS 区块长啥样?

对于一个区块链项目来说,最核心的数据莫过于区块数据,区块数据结构是整个区块链项目的技术基础。不过由于 EOS 项目一直在快速迭代,区块数据结构也不断更新,所以今天才向大家介绍。

区块头(block_header)

首先是区块头数据结构,包括了哈希、时间戳、默克尔根、见证人账户等。

//区块头结构体
struct block_header
{
   //前一区块哈希  
   block_id_type           previous;
   //区块时间戳
   block_timestamp_type    timestam
   交易的默克尔根
   checksum256_type        transaction_mroot; /// mroot of cycles_summary
   //Action 的默克尔根
   checksum256_type        action_mroot;
   //区块默克尔根
   checksum256_type        block_mroot;
   //见证人账号
   account_name            producer;
   //见证人排序版本号
   uint32_t                 schedule_version = 0;
   //下一个见证人(可以为空)
   optional  new_producers;
};
区块头(已签名)(signed_block_header)

在区块头的基础上,出块见证人进行签名,就是签名区块头:

//签名区块头结构体
struct signed_block_header : public block_header
{
   见证人签名
   signature_type             producer_signature;
};
区块摘要(已签名)(signed_block_summary)

签名区块摘要的目的是将区块中的交易(Transactions)分配到各个层级中,这里并没有交易的完整信息,只展示了交易的层级和分组结构。

   struct signed_block_summary : public signed_block_header {
      
      vector    regions;
   };

EOS 白皮书里说明了区块摘要的结构:

    Region

      Cycles (sequential)(串行)

        Shards (parallel)(并行)

          Transactions (sequential)(串行)

可以看到,多个 Transactions 组成了一个 Shards(片区),多个 Shards 组成了一个 Cycles(周期),多个周期组成一个 Region(区域)。每个区块所包含的交易就被这样的层级结构组织起来,并将最终的组织结构多带带记录在区块中。这也是 EOS 以后开发并行执行的基础。

区块(已签名)(signed_block)

前面提到区块摘要只说明了交易的组织结构,并没有具体的交易信息,我们要在区块最后添加完整的交易信息,就形成了一个 EOS 完整区块。

struct signed_block : public signed_block_summary {
  //完整交易信息
  vector   input_transactions;
};
总结

我们用图形绘出了 EOS 区块数据结构,便于大家理解。


相关文章和视频推荐

[【许晓笛】49行代码就能发币?而且EOS连例子都给你了]()

圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。
公开课地址:https://ke.qq.com/course/345101

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24414.html

相关文章

  • 晓笛EOS 系统架构图解

    摘要:了解系统架构之前我们先看看目前系统的主要组成部分系统的核心进程,也就是所谓的节点。 其实没有那么复杂 相信关心 EOS 系统的同学肯定见过下面这张蓝图。对,目前只是一个蓝图,而且以 BM 的尿性,肯定在心理已经把这张图改的面目全非了(比如图中的 eosd 早就改名了)。所以这张图只能作为未来 EOS 发展方向的参考而已,目前的 EOS 还远没有这么复杂和完善。 showImg(http...

    vibiu 评论0 收藏0
  • 晓笛EOS 上线前,先搞懂这两个基本概念

    摘要:的跟其他区块链项目是类似的,都是一个基本功能本地储存密钥,仅此而已。公网上线后,一定要将存有密钥的加密,并且将文件单独备份好。字面意思是账户,但我觉得有个概念更适合法人。代币就是由持有的。对于权限,则需要列表里至少两个账户的授权才能行使。 如果你曾经尝试在本地运行 EOS 测试节点,会发现编译、运行并不是特别复杂,但官方教程里两个概念很容易把人搞晕: Account(账户) 和 Wal...

    alogy 评论0 收藏0
  • 晓笛EOS:IPFS落地的重要途径

    摘要:写在前面,这一篇文章是许晓笛在北京开发者圆桌会议上的发言实录,感谢主办方戴嘉乐和董天一的邀请,感谢编辑们。我这次分享题目是有可能有点标题党,前面拉了三个字有可能是落地的一个非常重要的途径。共识机制共识机制,就是所有代币持有人选举。 写在前面,这一篇文章是许晓笛 2018.05.20 在北京 《IPFS开发者圆桌会议》上的发言实录,感谢主办方戴嘉乐和董天一的邀请,感谢编辑们。先介绍一下《...

    tuomao 评论0 收藏0
  • 晓笛】重新理解EOS的系统架构

    摘要:所以想要实现真正实用的智能合约平台,就要脱离比特币系统的架构,寻找新的系统组织形式。比特币和以太坊之所以设计了手续费机制,就是防止大量垃圾交易使得系统拥堵。 区块链系统中,去中心化程度与效率之间天然地存在矛盾关系。 如果区块链智能合约系统想追求类似比特币的去中心化程度,理论上效率就会大打折扣。现实也是这样的:比特币每秒钟只能处理7笔左右的交易,每一笔交易要用至少30分钟才能确认,这种效...

    Alan 评论0 收藏0
  • 晓笛】听说你买了EOS ,连代码什么样都不知道?

    摘要:说点题外话如果你想提高英语的话,持有一点代币吧,你会急于搞清楚白皮书在讲什么,要是想短时间快速提高英语,持有大量代币吧,别问我是怎么知道的。 最近发现很多人投资了EOS,却并不关心 EOS 目前的开发进度和技术细节,如果你投资了 EOS, 还有一定的技术基础,那就更应该关心 EOS 的开发情况了,下面我们就从 EOS 的源代码说起: Github 是目前最流行的源码管理网站,无数明星项...

    imccl 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<