3.02 EOS核心框架

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010986776/article/details/84843226

1.EOS核心框架介绍

  • 架构图
    在这里插入图片描述
  • EOSIO程序模块图
    在这里插入图片描述

2.区块结构

  • Merkel Tree:比较两个节点数据是否同步,直接比较树根是否一样就可以,EOS节点数据是用Merkel Tree组织的
  • 如果2个节点比较不一样,可以快速查找树中哪个节点不一样,能快速定位修改
  • 互相验证时,密码学中叫零知识证明,比较Merkel Tree是否相同就可以
  • EOS通过Merkle Tree做验证,成本比比特币低的多
  • 定义区块的文件位置:eos\libraries\chain\include\eosio\chain\block_header.hpp
struct block_header
{
	//时间戳
	block_timestamp_type             timestamp;
	//哪个超级节点生产的区块
	account_name                     producer;
	//确认节点的数量
	//默认自己是确认的
	//达到15就是21节点的一多半,就不可逆了
	uint16_t                         confirmed = 1;
	//指向前一个区块
	block_id_type                    previous;
	//EOS包含了两个Merkel Tree的根
	checksum256_type                 transaction_mroot;
	checksum256_type                 action_mroot;
	//版本号
	uint32_t                          schedule_version = 0;
	//下一个producer是谁
	optional<producer_schedule_type>  new_producers;
	//扩展字段
	extensions_type                   header_extensions;
	//指纹信息
	digest_type       digest()const;
	block_id_type     id() const;
	uint32_t          block_num() const { return num_from_id(previous) + 1; }
	static uint32_t   num_from_id(const block_id_type& id);
};

3.区块结构并行化设计

  • EOS目标是使两个账户能够在同一个区块内来回进行交换的操作,不必为每次操作都等待0.5秒
  • 只读操作可以并行处理,写操作必须串行
  • 允许多账户之间原子交易执行
  • 超级节点自主优化并行调度

猜你喜欢

转载自blog.csdn.net/u010986776/article/details/84843226
eos
今日推荐