快讯:
12月17日消息,日前在新加坡旧国会大厦举行的全球数字经济论坛上,中央电视台品牌顾问、中国电子商务协会互联网金融委员会首席顾问李光斗发布了最新著作《区块链财富革命》,并荣获全球数字经济论坛图书大奖。
12月17日消息,物联网应用与数字海南建设——2018年南渡江高峰会在海口举行。省工信厅、海口市政府、海南大学、中国有线海南公司、中国联通海南公司等15家单位签署了《共建物联网应用创新基地和智慧海甸岛合作备忘录》。据悉,这15家单位将在海南大学边联合建设国家级物联网应用创新基地。海南物联网应用创新基地计划引进100家物联网、人工智能和区块链创新企业。
12月17日,区块链数学科学会议在北京召开,著名经济学家朱嘉明在开幕致辞上表示:“我们正处于科学主导、科学集群和技术混合成长、‘技术奇点’不再是猜想的时代,物质与观念界的平行世界已经形成,应用数学在物化生、工程领域、IT与互联网革命、经济学等领域连结了这两个世界。观念世界的圈可能超过物理世界的圈。应用数学在相当程度上将物质世界和观念世界联结在一起。而区块链的根本功能在于,它是非物质和非物理世界的‘基本结构’,也是物质、物理世界和非物质、非物理世界的‘桥梁’。数学孕育了区块链,区块链推动了数学,数学又将进一步改造区块链。”
12月17日消息,日前在新加坡旧国会大厦举行的全球数字经济论坛上,中央电视台品牌顾问、中国电子商务协会互联网金融委员会首席顾问李光斗发布了最新著作《区块链财富革命》,并荣获全球数字经济论坛图书大奖。
12月17日消息,物联网应用与数字海南建设——2018年南渡江高峰会在海口举行。省工信厅、海口市政府、海南大学、中国有线海南公司、中国联通海南公司等15家单位签署了《共建物联网应用创新基地和智慧海甸岛合作备忘录》。据悉,这15家单位将在海南大学边联合建设国家级物联网应用创新基地。海南物联网应用创新基地计划引进100家物联网、人工智能和区块链创新企业。
12月17日,区块链数学科学会议在北京召开,著名经济学家朱嘉明在开幕致辞上表示:“我们正处于科学主导、科学集群和技术混合成长、‘技术奇点’不再是猜想的时代,物质与观念界的平行世界已经形成,应用数学在物化生、工程领域、IT与互联网革命、经济学等领域连结了这两个世界。观念世界的圈可能超过物理世界的圈。应用数学在相当程度上将物质世界和观念世界联结在一起。而区块链的根本功能在于,它是非物质和非物理世界的‘基本结构’,也是物质、物理世界和非物质、非物理世界的‘桥梁’。数学孕育了区块链,区块链推动了数学,数学又将进一步改造区块链。”
12月17日消息,日前在新加坡旧国会大厦举行的全球数字经济论坛上,中央电视台品牌顾问、中国电子商务协会互联网金融委员会首席顾问李光斗发布了最新著作《区块链财富革命》,并荣获全球数字经济论坛图书大奖。
12月17日消息,物联网应用与数字海南建设——2018年南渡江高峰会在海口举行。省工信厅、海口市政府、海南大学、中国有线海南公司、中国联通海南公司等15家单位签署了《共建物联网应用创新基地和智慧海甸岛合作备忘录》。据悉,这15家单位将在海南大学边联合建设国家级物联网应用创新基地。海南物联网应用创新基地计划引进100家物联网、人工智能和区块链创新企业。
12月17日,区块链数学科学会议在北京召开,著名经济学家朱嘉明在开幕致辞上表示:“我们正处于科学主导、科学集群和技术混合成长、‘技术奇点’不再是猜想的时代,物质与观念界的平行世界已经形成,应用数学在物化生、工程领域、IT与互联网革命、经济学等领域连结了这两个世界。观念世界的圈可能超过物理世界的圈。应用数学在相当程度上将物质世界和观念世界联结在一起。而区块链的根本功能在于,它是非物质和非物理世界的‘基本结构’,也是物质、物理世界和非物质、非物理世界的‘桥梁’。数学孕育了区块链,区块链推动了数学,数学又将进一步改造区块链。”

以太坊源码之POA区块生成机制

汪晓明 发布在 技术指南 17203

作者:HPB芯链团队

  1. 名词介绍
  2. POA区块数据结构
  3. 新区块生成周期
  4. 新区块生成优先级
1 名词介绍

节点:普通的以太坊节点,没有区块生成的权利。

矿工:具有区块生成权利的以太坊节点

委员会:所有矿工的集合

2 POA区块数据结构
POA共识中,区块数据与POW有些区别,主要体现在header结构:
序号 字段 POW POA
1 Coinbase 挖矿奖励地址 被提名为矿工的节点地址
2 Nonce 随机数 提名分类,添加或者删除
3 Extra 其他数据 在Epoch时间点,存储当前委员会集合Singners
4 Difficulty 挖矿难度 优先级,1或者2,同一个Number的区块,只有一个矿工是2
3 新区块生成周期

矿工在三中情况下开始生成区块:

● 程序启动时,执行newWorker方法初始化worker对象时,调用commitNewWork方法,开始生成新的区块。(miner/worker.go)

● 网络接收到其他矿工广播过来的新区块,该区块验证有效插入到区块链后,会产生ChainHeadEvent日志,worker对象的update协程检测到到该日志后,会调用commitNewWork方法,开始生成新的区块。(miner/worker.go)

● 矿工自己生成新的区块并入链后,会调用commitNewWork方法,开始生成新的区块。

(wait协程,miner/worker.go)

● 生成新区块时,矿工会进行一定的延时,延时算法:

高优先级矿工:

header.Time = new(big.Int).Add(parent.Time, new(big.Int).SetUint64(c.config.Period))

delay := time.Unix(header.Time.Int64(), 0).Sub(time.Now())

(consensus/clique/clique.go中的prepare和seal**两个方法定义)

其他矿工:

header.Time = new(big.Int).Add(parent.Time, new(big.Int).SetUint64(c.config.Period))

delay := time.Unix(header.Time.Int64(), 0).Sub(time.Now())

wiggle := time.Duration(len(snap.Signers)/2+1) * wiggleTime

delay += time.Duration(rand.Int63n(int64(wiggle)))

(consensus/clique/clique.go中的prepare和seal两个方法定义)

4 新区块生成优先级

POA共识算法中,委员会中的每一个矿工都会持续的生成新的区块,对于同一个Number的区块,不通的矿工生成该块时优先级不同。

优先级计算方法:

● Number:要生成的区块的块号

● Signers:snapshot中记录的委员会集合,并根据矿工的地址进行了升序排列

● Offset:矿工在Signers集合中的位置

● 若:(number % uint64(len(signers))) == uint64(offset),则优先级最高,header. Difficulty =2;否则,header.Difficulty = 1

本篇文章由芯链团队整理。

文章标签: poa
评论
登录 账号发表你的看法,还没有账号?立即免费 注册