The invention discloses a processing method of bifurcation license chain consensus based on the provisions of \first choice bifurcate\ special transactions within the system, and set the permissions in the system initiated, bifurcation conditions, by the chain decided the need to retain the block, initiated in accordance with permissions, send \choose bifurcate\ transactions, the nodes that receive after the transaction, compare your fork, if the correct replacement consensus algorithm, from the beginning of the zeroth round to consensus, if the error deleting fork block, right after the bifurcation of the synchronization block, from the beginning of the zeroth round of the new consensus. The invention solves the problem that the license chain is bifurcated and the consensus is jammed because of the loopholes in the design or implementation of the consensus algorithm.
【技术实现步骤摘要】
一种基于许可链的共识分叉处理方法
本专利技术涉及许可链模型下的确定性共识算法领域,致力于解决由于共识算法设计或实现上的漏洞,导致特殊情况下许可链出现分叉、共识卡住的问题。
技术介绍
区块链是一种新的分布式技术,由一个个顺序排列而成的交易组成块,再由一个个顺序排列而成的块组成链,每个块包含一个自增的高度作为编号,还有一个时间戳用于记载打包时间。许可链一般是指有节点和账户准入的区块链,运行现实生活中的真实商业场景,甚至于银行等大型金融场景。这类业务一般对于确定性要求较高,不能容忍区块链产生分叉,交易被删除或者交易重新排序等问题。所以许可链一般选用确定性的共识算法,需要对每个块进行100%的确定性投票,不会产生分叉和不一致的情况。一般选用基于PBFT的算法,比如Tendermint等。但是确定性共识算法博大精深,分布式系统纷繁复杂,即使一个在论文级别设计的完好的共识算法,考虑到了所有的可能情况,依然有可能在代码实现上产生漏洞。如果由于共识算法设计本身的问题,或者实现方面的问题,导致系统出现分叉,比如总共4个节点,出现2v2分叉或者3v1分叉等,导致两组节点在同一个高度出了不同的区块。一般情况下,确定性共识算法都无法在产生分叉的情况下自我修正,并继续共识,这样就会导致共识永远不会再达成,系统卡住。目前的处理方法一般是首先选择一组包含正确分叉的节点,然后由运维人员,手工删除其他节点错误的区块或者删除全链,然后同步正确的区块。最终由于两组节点的共识轮次差异,还需将全部节点停机,再重启,才能继续共识。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种基于许可链 ...
【技术保护点】
一种基于许可链的共识分叉处理方法,其特征在于,该方法包括:(1)制定发起有效的“选择分叉”交易的权限规则;(2)在出现分叉的情况下,用户在链下决定需要保留的区块,用区块高度h和块头哈希b两个参数进行标识,按照步骤1所述的权限规则发起“选择分叉”交易tx;(3)节点收到交易tx后,首先验证管理权限规则,如果不通过,则丢弃交易,如果通过则比对本地节点高度为h的区块:如果该区块的块头哈希为b,则保留该高度为h的区块;否则,删除该高度为h的区块,并同步高度为h,块头哈希为b的区块。(4)各节点重置共识算法,按照从轮次0开始对合法的高度为h+1区块进行共识;(5)出块节点在打包h+1的区块时,将“选择分叉”交易tx放在交易列表的首位,其他同步节点在收到h+1的区块时,都需要验证交易tx,如果“选择分叉”交易tx在交易列表的首位,则为合法的分叉后第一个块,否则为非法块。
【技术特征摘要】
1.一种基于许可链的共识分叉处理方法,其特征在于,该方法包括:(1)制定发起有效的“选择分叉”交易的权限规则;(2)在出现分叉的情况下,用户在链下决定需要保留的区块,用区块高度h和块头哈希b两个参数进行标识,按照步骤1所述的权限规则发起“选择分叉”交易tx;(3)节点收到交易tx后,首先验证管理权限规则,如果不通过,则丢弃交易,如果通过则比对本地节点高度为h的区块:如果该区块的块头哈希为b,则保留该高度为h的区块;否则,删除该高度为h的区块,并同步高度为h,块...
【专利技术属性】
技术研发人员:谢晗剑,
申请(专利权)人:杭州秘猿科技有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。