区块链系统中防止出现硬分叉现象的方法、介质、装置和区块链系统制造方法及图纸

技术编号:20431059 阅读:32 留言:0更新日期:2019-02-23 10:50
本发明专利技术公开了一种区块链系统中防止出现硬分叉现象的方法、介质、装置及区块链系统;方法包括以下步骤:生产节点进行当前区块生产时,获取当前在线节点总数N,并对生产节点生产的当前区块进行编号;通过解析第m个区块的内容以获取第m个区块生产时区块链系统的在线节点总数Nm;获取Nm与N之间的差值,并判断差值是否小于N/2;如果差值小于N/2,则控制继续进行当前区块生产;如果差值大于等于N/2,则控制停止当前区块生产,并通过当前生产节点广播区块链系统处于不可用状态;从而实现通过监控区块链系统中在线节点数量,并根据在线节点数量判别系统升级状况,以及根据判别控制区块链系统状态,防止因区块链系统而导致的区块链系统硬分叉现象的发生。

Method, medium, device and block chain system for preventing hard bifurcation in block chain system

The invention discloses a method, medium, device and block chain system for preventing hard bifurcation in a block chain system. The method comprises the following steps: when a production node produces a current block, the total number of current online nodes N is obtained, and the current block produced by the production node is numbered; and the block chain at the production time of the M block is obtained by analyzing the content of the m block. The total number of on-line nodes in the system is Nm; the difference between Nm and N is obtained, and the difference is judged to be less than N/2; if the difference is less than N/2, the current block production is controlled to continue; if the difference is greater than or equal to N/2, the current block production is stopped, and the block chain system is unavailable through the current production node broadcast; thus online monitoring of block chain system is realized. The number of nodes, the upgrade status of the system and the status of block chain system are judged according to the number of on-line nodes, so as to prevent the hard bifurcation of block chain system caused by block chain system.

【技术实现步骤摘要】
区块链系统中防止出现硬分叉现象的方法、介质、装置和区块链系统
本专利技术涉及区块链
,特别涉及一种区块链系统中防止出现硬分叉现象的方法、介质、装置和区块链系统。
技术介绍
区块链系统,是一种以去中心化、去信任的方式维护可靠数据库的技术方案;因其去中心化、去信任式以及数据难以篡改的特点而受到广泛地应用。在现有的区块链系统中,当区块链系统要进行功能扩展或者其他需求需要对组成的节点进行升级时,经常会出现部分节点不接受升级的情况发生,进而导致该部分不接受升级的节点仍然在旧有的区块链系统上进行区块的生产,而升级后的节点在新的区块链系统上进行区块的生产,使得区块链系统出现硬分叉,进而导致两个版本系统的同时存在致使用户被分流。
技术实现思路
本专利技术旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本专利技术的一个目的在于提出一种区块链系统中防止出现硬分叉现象的方法,能够实现通过监控区块链系统中在线节点数量,并根据在线节点数量判别系统升级状况,以及根据判别控制区块链系统状态,防止因区块链系统而导致的区块链系统硬分叉现象的发生。本专利技术的第二个目的在于提出一种计算机可读存储介质。本专利技术的第三个目的在于提出一种区块链系统中防止出现硬分叉现象的装置。本专利技术的第四个目的在于提出一种区块链系统。为达到上述目的,本专利技术第一方面实施例提出了一种区块链系统中防止出现硬分叉现象的方法,包括以下步骤:每当所述区块链系统中生产节点进行当前区块生产时,获取所述区块链系统的当前在线节点总数N,并对所述生产节点生产的当前区块进行编号;通过解析第m个区块的内容以获取第m个区块生产时所述区块链系统的在线节点总数Nm,其中,m=u-i,u为当前区块的编号,i小于u且为预设值,u、i和Nm均为正整数;获取Nm与N之间的差值,并判断所述差值是否小于N/2;如果所述差值小于N/2,则控制当前生产节点继续进行当前区块生产;如果所述差值大于等于N/2,则控制当前生产节点停止当前区块生产,并通过当前生产节点全网广播所述区块链系统当前处于不可用状态。根据本专利技术实施例的区块链系统中防止出现硬分叉现象的方法,首先,每当区块链系统中生产节点进行当前区块生产时,获取区块链系统的当前在线节点总数N,并对生产节点生产的当前区块进行编号;接着,通过解析第m个区块的内容以获取第m个区块生产时区块链系统的在线节点总数Nm,其中,m=u-i,u为当前区块的编号,i小于u且为预设值,u、i和Nm均为正整数;然后,获取Nm与N之间的差值,并判断差值是否小于N/2;接着,如果差值小于N/2,则控制当前生产节点继续进行当前区块生产;然后,如果差值大于等于N/2,则控制当前生产节点停止当前区块生产,并通过当前生产节点全网广播区块链系统当前处于不可用状态;从而实现通过监控区块链系统中在线节点数量,并根据在线节点数量判别系统升级状况,以及根据判别控制区块链系统状态,防止因区块链系统升级而导致的区块链系统硬分叉现象的发生。另外,根据本专利技术上述实施例提出的区块链系统中防止出现硬分叉现象的方法还可以具有如下附加的技术特征:可选地,当所述区块链系统中任意一个节点接收到新节点接入请求时,对新节点的连接地址进行监听以判断所述新节点是否连入所述区块链系统,并在所述新节点连入所述区块链系统时进行全网广播,以便所述生产节点对所述区块链系统的在线节点总数进行加1操作。可选地,还通过对所述区块链系统中每个节点的地址进行监听以判断所述区块链系统中是否存在下线节点,并在所述区块链系统中存在任意一个下线节点时进行全网广播,以便所述生产节点对所述区块链系统的在线节点总数进行减1操作。可选地,当所述区块链系统中的任意一个节点接收到所述区块链系统当前处于不可用状态的广播时,进入休眠状态。为达到上述目的,本专利技术第二方面实施例提出了一种计算机可读存储介质,其上存储有区块链系统中防止出现硬分叉现象的程序,该区块链系统中防止出现硬分叉现象的程序被处理器执行时实现上述的区块链系统中防止出现硬分叉现象的方法。为达到上述目的,本专利技术第三方面实施例提出了一种区块链系统中防止出现硬分叉现象的装置,包括:获取模块,用于每当所述区块链系统中生产节点进行当前区块生产时,获取所述区块链系统的当前在线节点总数N,并对所述生产节点生产的当前区块进行编号;解析模块,用于通过解析第m个区块的内容以获取第m个区块生产时所述区块链系统的在线节点总数Nm,其中,m=u-i,u为当前区块的编号,i小于u且为预设值,u、i和Nm均为正整数;控制模块,用于获取Nm与N之间的差值,并判断所述差值是否小于N/2,其中,如果所述差值小于N/2,则控制当前生产节点继续进行当前区块生产;如果所述差值大于等于N/2,则控制当前生产节点停止当前区块生产,并通过当前生产节点全网广播所述区块链系统当前处于不可用状态。根据本专利技术实施例的区块链系统中防止出现硬分叉现象的装置,获取模块,用于每当区块链系统中生产节点进行当前区块生产时,获取区块链系统的当前在线节点总数N,并对生产节点生产的当前区块进行编号;解析模块,用于通过解析第m个区块的内容以获取第m个区块生产时区块链系统的在线节点总数Nm,其中,m=u-i,u为当前区块的编号,i小于u且为预设值,u、i和Nm均为正整数;控制模块,用于获取Nm与N之间的差值,并判断差值是否小于N/2,其中,如果差值小于N/2,则控制当前生产节点继续进行当前区块生产;如果差值大于等于N/2,则控制当前生产节点停止当前区块生产,并通过当前生产节点全网广播区块链系统当前处于不可用状态;从而实现通过监控区块链系统中在线节点数量,并根据在线节点数量判别系统升级状况,以及根据判别控制区块链系统状态,防止因区块链系统升级而导致的区块链系统硬分叉现象的发生。另外,根据本专利技术上述实施例提出的区块链系统中防止出现硬分叉现象的装置还可以具有如下附加的技术特征:可选地,所述获取模块还用于,当所述区块链系统中任意一个节点接收到新节点接入请求时,对新节点的连接地址进行监听以判断所述新节点是否连入所述区块链系统,并在所述新节点连入所述区块链系统时进行全网广播,以便所述生产节点对所述区块链系统的在线节点总数进行加1操作。可选地,所述获取模块还用于,通过对所述区块链系统中每个节点的地址进行监听以判断所述区块链系统中是否存在下线节点,并在所述区块链系统中存在任意一个下线节点时进行全网广播,以便所述生产节点对所述区块链系统的在线节点总数进行减1操作。可选地,当所述区块链系统中的任意一个节点接收到所述区块链系统当前处于不可用状态的广播时,进入休眠状态。为达到上述目的,本专利技术第四方面实施例提出了一种区块链系统,包括上述的区块链系统中防止出现硬分叉现象的装置。附图说明图1为根据本专利技术实施例的区块链系统中防止出现硬分叉现象的方法的流程示意图;图2为根据本专利技术实施例的在线节点统计方法的流程示意图;图3为根据本专利技术实施例的区块链系统中防止出现硬分叉现象的装置的方框示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。本文档来自技高网...

【技术保护点】
1.一种区块链系统中防止出现硬分叉现象的方法,其特征在于,包括以下步骤:每当所述区块链系统中生产节点进行当前区块生产时,获取所述区块链系统的当前在线节点总数N,并对所述生产节点生产的当前区块进行编号;通过解析第m个区块的内容以获取第m个区块生产时所述区块链系统的在线节点总数Nm,其中,m=u‑i,u为当前区块的编号,i小于u且为预设值,u、i和Nm均为正整数;获取Nm与N之间的差值,并判断所述差值是否小于N/2;如果所述差值小于N/2,则控制当前生产节点继续进行当前区块生产;如果所述差值大于等于N/2,则控制当前生产节点停止当前区块生产,并通过当前生产节点全网广播所述区块链系统当前处于不可用状态。

【技术特征摘要】
1.一种区块链系统中防止出现硬分叉现象的方法,其特征在于,包括以下步骤:每当所述区块链系统中生产节点进行当前区块生产时,获取所述区块链系统的当前在线节点总数N,并对所述生产节点生产的当前区块进行编号;通过解析第m个区块的内容以获取第m个区块生产时所述区块链系统的在线节点总数Nm,其中,m=u-i,u为当前区块的编号,i小于u且为预设值,u、i和Nm均为正整数;获取Nm与N之间的差值,并判断所述差值是否小于N/2;如果所述差值小于N/2,则控制当前生产节点继续进行当前区块生产;如果所述差值大于等于N/2,则控制当前生产节点停止当前区块生产,并通过当前生产节点全网广播所述区块链系统当前处于不可用状态。2.如权利要求1所述的区块链系统中防止出现硬分叉现象的方法,其特征在于,当所述区块链系统中任意一个节点接收到新节点接入请求时,对新节点的连接地址进行监听以判断所述新节点是否连入所述区块链系统,并在所述新节点连入所述区块链系统时进行全网广播,以便所述生产节点对所述区块链系统的在线节点总数进行加1操作。3.如权利要求1所述的区块链系统中防止出现硬分叉现象的方法,其特征在于,还通过对所述区块链系统中每个节点的地址进行监听以判断所述区块链系统中是否存在下线节点,并在所述区块链系统中存在任意一个下线节点时进行全网广播,以便所述生产节点对所述区块链系统的在线节点总数进行减1操作。4.如权利要求1-3中任一项所述的区块链系统中防止出现硬分叉现象的方法,其特征在于,当所述区块链系统中的任意一个节点接收到所述区块链系统当前处于不可用状态的广播时,进入休眠状态。5.一种计算机可读存储介质,其特征在于,其上存储有区块链系统中防止出现硬分叉现象的程序,该区块链系统中防止出现硬分叉现象的程序被处理器执行时实现如权利要求1-4中任一项所述的区块链系统中防止出现硬分...

【专利技术属性】
技术研发人员:吴胜文
申请(专利权)人:泰链厦门科技有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1