首页 > 资讯 > 白话解读 > 正文

Nervos和火币公链的Overlord 共识算法有哪些改进?

2020-02-29 19:44:42作者:投稿来源:Nervos社区
Overlord 共识算法与 Tendermint 等共识算法相比有哪些改进?

  为什么 block 1 的proof.blockHash和prevHash不一致?

  在链成功启动后,你可能会发现在链的 block 1(创世块后是 block 1)中,proof.blockHash和prevHash是不一致的。为什么呢?其实在链的整个共识过程中,prevHash和proof.blockhash都是上一个 block 序列化之后算出的 hash,两者应该是一致的。但是由于创世块的共识不是来源于共识机制,而是来源于社区共识,而第一个块的 proof 是对创世块的共识的证明,所以针对创世块的这种特殊性,我们对第一个块中的proof.blockhash做了特殊处理:高度 0 是创世块,我们从高度 1 开始共识,高度 1 的 block 中的prevHash是创世块序列化之后的 hash,proof.blockhash是空 hash。所以才有了这样的不一致,这是正常的。

  interval(出块间隔,单位为 ms)设置为 3000 时,实际出块时间却不是严格的 3s?

  这个是正常现象。这是因为在共识过程中,我们让出块节点的interval保持在 3s,非出块节点则没有限制,因此实际出块时间并不是严格的 3s。通常情况下,如果网络条件较好,实际出块时间可能在 1.5s~3s 之前波动,如果网络条件较差,实际出块时间可能会略高于 3s。

合作联系/投稿/纠错

标签

    热文推荐