【技术实现步骤摘要】
一种新增节点快速参与共识的方法、装置及电子设备
本说明书实施例涉及网络
,尤其涉及一种新增节点快速参与共识的方法、装置及电子设备。
技术介绍
区块链中使用的类PBFT的BFT共识算法(ByzantineFaultTolerance,拜占庭容错算法),一般可以容忍不超过共识节点总数的1/3的恶意或者错误节点,仍能正常工作。其共识过程是通过统计共识节点投票数,一般共识投票达到共识节点总数的2/3以上,就可以出块。而目前的区块链系统中,在某一区块高度新增共识节点后,一般需要从别的节点同步从创世块开始到链的当前高度的块,然后每个区块逐一的执行,直至当前的高度从而得到最新的状态,然后才能参与共识投票。因此,新的共识节点接入以后,视当时区块的高度而定,可能很长时间无法真正参与区块链的共识,减少了链的共识安全性,而且新节点把时间浪费在历史块的同步和执行上。
技术实现思路
本说明书实施例提供一种新增节点快速参与共识方法、装置及电子设备,用以解决现有技术的新增节点无法立即参与共识的问题。为了解决上述技术问题,本说明书实施例采用下述技术方案:第一方面,提供了一种新增节点快速参与共识的方法,应用于采用BFT共识算法的区块链系统,所述方法包括:新增共识节点在第一区块高度时加入区块链;所述新增共识节点向已有共识节点同步所述第一区块高度的状态根信息以获得第一状态根信息,其中,所述第一状态根信息为超过共识节点总数三分之一以上的共识节点拥有的内容一致的状态根信息;所述新增节点 ...
【技术保护点】
1.一种新增节点快速参与共识的方法,应用于采用BFT共识算法的区块链系统,所述方法包括:/n新增共识节点在第一区块高度时加入区块链;/n所述新增共识节点向已有共识节点同步所述第一区块高度的状态根信息以获得第一状态根信息,其中,所述第一状态根信息为超过共识节点总数三分之一以上的共识节点拥有的内容一致的状态根信息;/n所述新增节点对以所述第一状态根信息为根部的所有叶子节点的正确性进行验证;/n当所述叶子节点的正确性验证通过后,所述新增节点依次同步所述第一区块高度到当前区块高度的区块信息,并执行得到当前区块的状态信息;/n所述新增节点在当前区块高度的下一高度参与共识。/n
【技术特征摘要】
1.一种新增节点快速参与共识的方法,应用于采用BFT共识算法的区块链系统,所述方法包括:
新增共识节点在第一区块高度时加入区块链;
所述新增共识节点向已有共识节点同步所述第一区块高度的状态根信息以获得第一状态根信息,其中,所述第一状态根信息为超过共识节点总数三分之一以上的共识节点拥有的内容一致的状态根信息;
所述新增节点对以所述第一状态根信息为根部的所有叶子节点的正确性进行验证;
当所述叶子节点的正确性验证通过后,所述新增节点依次同步所述第一区块高度到当前区块高度的区块信息,并执行得到当前区块的状态信息;
所述新增节点在当前区块高度的下一高度参与共识。
2.如权利要求1所述的方法,所述新增共识节点向已有共识节点同步所述第一区块高度的状态根信息以获得第一状态根信息;进一步包括:
所述第一状态根信息为N个共识节点拥有的内容一致的状态根信息;所述N为共识节点总数除以3的结果向下取整加1得到;
所述新增共识节点随机向N个已有共识节点同步所述第一区块高度的状态根信息;
如果得到的N个状态根信息是一致的,则该状态根信息即为第一状态根信息;如果得到的N个状态根信息是不一致的,则所述新增共识节点继续向其他共识节点同步所述第一区块高度的状态根信息,直至获得N个共识节点拥有的内容一致的状态根信息。
3.如权利要求1所述的方法,所述新增节点对以所述第一状态根信息为根部的所有叶子节点的正确性进行验证;进一步包括:
所述新增节点向拥有第一状态根信息的共识节点请求以所述第一状态根信息为根部的所有叶子节点的状态信息;
所述新增节点对所有叶子节点的状态信息进行计算得到第二状态根信息;
对比所述第一状态根信息和第二状态根信息,如果结果一致,则所述叶子节点的正确性验证通过;
如果结果不一致,则所述新增节点向其他拥有第一状态根信息的共识节点请求以所述第一状态根信息为根部的所有叶子节点的状态信息继续进行验证。
4.如权利要求1-3所述的方法,进一步包括:所述新增节点参与共识后,依次同步从创世块到所述第一区块高度的区块信息,并依次执行。
5.一种新增节点快速参与共识的装置,应用于采用BFT共识算法的区块链系统,所述装置包括:
节点添加模块:用于新增共识节点在第一区块高度时加入区块链;
第一状态根信息获取模块:用于所述新增共识节...
【专利技术属性】
技术研发人员:王晓亮,俞波,
申请(专利权)人:杭州溪塔科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。