最近的测试网超级节点启动计划已经告一段落了,挖矿奖励还在持续兑换!加入共识委员会的人数与日俱增。那么如何加入共识委员会,共识委员又是如何选举的呢? PDX共识委员会使用PDX共识机制,“区块生产者”进入共识委员会的战役是忙碌的,现在PDX共识委员已经涌入了很多重量级玩家,共识委员将对整个系统有相当大的影响,也可以从自己的生产服务中获益,共识委员也可能会进一步推动PDX成为最受欢迎的公有链。 共识委员主要负责以下事务: 收集网络里的交易; 验证交易并把交易打包到区块; 广播区块给其他节点,在通过验证后将区块添加到自己本地区块链上。 共识委员有什么收益: 成为共识委员获得的直接收益来自区块生产奖励,可以理解为系统中的矿工。 共识委员=挖矿权+挖矿奖励+手续费收入。 加入共识委员会首先要了解共识委员的算法规则,PDX将为您全方位解析。 区块链的验证存储 Normal块是PDX节点产生的最普遍的块,遵循正常的区块链存储流程,例如甲乙双方均有块1的状态,甲用块1解析出块2并发送给了邻居乙,乙要信任这个块首先需要验证甲发的块2是否真实才可进行存储广播,于是乙将自己的块1和甲发来的块2累加的状态去验证块2的真实性,若算出的哈希值一致那么块2就是真实的。 甲将块2发送给邻居乙只是给乙一个条件输入,输出结果由乙自己进行计算,如果结果即出块哈希值相同,乙将会存储并进行全网的P2P广播,若不同,则不会存储,这就是普通Normal块的存储规则。 Normal块的存储流程如下图: 按照这样的一个逻辑往下生成块2、3、4块,虽然出块的节点可能不一样,但是所有人都可以这样验证。接受到信息的人经过检验一致后会进行P2P广播,通过P2P广播接受到信息的所有人,都需要再计算一遍,必须全部一致才会被储存,如果有一人算出的结果不一致就不会被储存。 如果按照这样的一个逻辑往下生成块3、4、5、6一直的往下验证,但是这只是目前普通normal块的计算,如果存到第5块的时候,会出现一个断言的状态assertion,此时一个节点都有5个状态到一个分界值CFD,会把5个统一成assertion块、commit块、normal块分为三种块(5也可以=N)。 PDX共识点在于当存储到块5的时候,会进入一个临界值CFD的断沿状态,将5个Normal块状态打包成一个assertion块,如图所示: 当到达临界值CFD(1~5)的块的哈希打包起来,打包成一个assertion块,然后把assertion发送给出commit块的出块的master,那么到5的时候已经知道下一个commit的节点了,甲会把assertion发送给乙,乙会通过大家发过来的assertion进行计算。 举例说明:甲有一个assertion ,乙也有一个assertion,甲发送给乙一个,乙就有两个assertion了,甲的asssertion是12345,乙的asssertion也是12345,两个是一样的,这个时候乙会进行判断看标准的块哈希值是什么,要是一样的乙会把12345给确定好,确定好之后会打包commit块里,打包好之后乙在发送给甲,甲会根据commit块的12345,来纠正本地里的12345,甲会判断两者是否一样,一致就不需要纠正了。 节点加入委员会算法规则详情如下图: Master节点进行commit块打包规则 1.收集assertion并且验证签名; 节点每次发送assertion 会有一个签名,先验证签名用来证明是节点发出的不会被更改。 2.过滤出委员会中节点的assertion; 3.计算标准BlockPath(统计委员会节点的存块情况,多数共识,计算标准BlockPath); 4.根据assertion数量判断链的状态(如果assertion数量小于当前委员会数量的2/3,当前链变为岛屿状态); 大陆状态:节点不可更改。 岛屿状态:共识人数不够,可篡改,有可能被回滚。 5.统计当前链的assertion总数(相当于链的节点参与度,用于同步时比较); 6.更新节点活跃度; 7.判断节点发送assertion的数量; 8.判断节点N个区间内的assertion数量; 9.给符合要求并且质押的节点活跃证明; 10.过滤双签; 11.撒销不符合要求的节点的活跃度证明; 12.根据节点活跃度计算委员会增减; 13.检查节点活跃度证明; 14.有证明的如果不在委员会中加入预备委员会列表; 15.没有证明的节点,如果在委员会中,加入失格委员会列表; 16.对失格委员会列表中的节点进行惩罚; 17.签名区块并且广播给所有节点。 注意:commit块打包时会根据委员会assertion的数量来判断链的状态,必须搜集到共识委员会中2/3以上数量的assertion才是正常,否则当前链就会变成岛屿状态。 验证commit块规则 1.验证commit块Rank和签名(验证数据没有被更改); 2.验证commit块中assertion的签名,得到assertion地址,用本地节点存的委员会查看地址是否合法; 3.验证assertion总数,标准blockPath、链状态; 4.存块上链(后面验证如果出错,会被回滚); 5.验证活跃度,用本地数据重新计算一边活跃度然后和commit块中活跃度进行对比,对比成功更新本地活跃度,出错回滚; 6.验证预备委员会列表和失格委员会列表,出错回滚; 7.查看是否是更新委员会的高度,更新完后(根据预备委员会列表和失格委员会列表),计算下次更新高度; 8.根据标准BlockPath验证本地区块。 注意:所有验证都是通过节点本地的数据,依据其它节点输入的条件,把所有的条件计算完毕后会得到一个结果,将计算结果进行对比,如果一致进行存储及广播。 怎么进入共识委员会? 根据节点的活跃度计算委员会增减,检查活跃度证明,根据活跃度证明来判断节点是否有资格进入共识委员会。 加入或被剔除共识委员会有以下四种情况: ①有活跃度证明,已进入共识委员会 ②有活跃度证明,未进共识委员会 ③无活跃度证明,已进入共识委员会 ④无活跃度证明,未进入共识委员会 1.如果有活跃度证明但是没有在委员会里,会被列入预备委员会列表,当系统更新之后,系统会随机选择有活跃度证明的节点进入共识委员会; 2.如果没有活跃度证明的节点在委员会里,会失去在共识委员会的资格,被列入失格委员会列表中,当系统更新之后,这些节点会被剔除共识委员会并且扣除10%的质押金额; 3.如果有足够的活跃度证明,并且已进入共识委员会,那么会一直是共识委员会成员; 4.如果无活跃度证明,也未进入共识委员会,那么这些节点依然游离在共识委员会之外; 注:剔除规则 1.每个commit块均会审核,在审核块之前的10个commit块区间中如果存在三分之一或以上的assertion没发送就会被剔除委员会; 2.节点作恶,发送无效的块,双签等; 3.被t除的节点会扣除质押金的10%,需要再次质押,才能加入委员会进行挖矿。 如何增加活跃度证明? 系统自动统计每个节点发送assertion的数量,节点每发送一个assertion就会累计一点活跃度,系统计算当前链的节点参与度,进行同步比较,更新节点活跃度。 —- 编译者/作者:PDX公有链 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
PDX节点加入共识委员会算法规则详解
2019-12-19 PDX公有链 来源:区块链网络
LOADING...
相关阅读:
- 在未来的数字资产市场,目前股票中的三种权益会分开交易2020-08-04
- Gate.io区块链新闻一分钟2020.08.032020-08-04
- Gate.io芝麻开门区块链新闻一分钟202008042020-08-04
- ETC遭受的廉价51%攻击迷局2020-08-04
- 《进展周报 | 夸克链信周报2020.7.27-2020.8.2》2020-08-04