一种基于区块链的软件升级方法及装置制造方法及图纸

技术编号:21224322 阅读:27 留言:0更新日期:2019-05-29 05:04
本发明专利技术提供一种基于区块链的软件升级方法及装置,该方法包括:提议用户节点发起软件升级提议;区块链网络上的验证用户节点对软件升级提议进行投票表决;如果投票表决结果满足预设通过条件,则通知区块链网络上的所有用户节点进行软件升级;区块链网络上的各用户节点下载并安装新版本软件;统计区块链网络上软件版本信息为新版本软件的用户节点的数量;如果新版本软件的用户节点的数量满足预设数值范围,则区块链网络软件升级成功。本发明专利技术的软件升级方法及装置,能支持区块链软件通过链上治理的方式向前兼容平滑升级,通过各个节点参与投票提议开启软件升级流程,在约定的未来区块高度切换到新版本的协议,并对历史版本的链上数据做到完全兼容。

A Software Upgrading Method and Device Based on Block Chain

The invention provides a software upgrade method and device based on block chain, which includes: proposing user nodes to initiate software upgrade proposals; voting on software upgrade proposals by authenticating user nodes on block chain network; notifying all user nodes on block chain network to upgrade software if the result of voting meets the preset passing conditions; Each user node downloads and installs the new version software on the block chain network; counts the number of user nodes whose software version information is the new version software; if the number of user nodes of the new version software meets the preset numerical range, the block chain network software upgrades successfully. The software upgrade method and device of the present invention can support block chain software to be smoothly upgraded forward compatible by means of chain governance, initiate the software upgrade process through the participation of each node, switch the agreed future block height to a new version of the protocol, and fully compatible with the historical version of the chain data.

【技术实现步骤摘要】
一种基于区块链的软件升级方法及装置
本专利技术属于区块链
,尤其涉及一种基于区块链的软件升级方法及装置。
技术介绍
区块链网络软件升级要完成网络中各节点自主安装新版本软件并重启节点,然后支持升级后的协议在某个约定的未来区块高度生效。区块链系统是通过多点计算机运行网络节点软件共同维护分布式的账本,可以可信高效地支持去中心化业务协作,因其去中心化/分布式运行的特点,无法像一般中心化系统那样通过单个节点或单服务器的软件升级完成整个网络的软件升级,如何在开放的分布式区块链网络中协调所有节点完成分布式的软件升级是个很大的难题,现阶段不同类型区块链根据其所使用的共识算法有不同的实现,也有其各种局限。区块链的共识算法包括概率性共识和确定性共识。概率性共识是以比特币/以太坊为代表所使用的工作量证明算法,它的特点是会不断产生分叉,但以最长链作为生效链的共识,其概率性表现在每个块的数据后面一般需要等待6个区块才不可逆转。因为只需要在新产生的区块中维护其上一个区块数据的哈希值,故一个区块后面可以同时链接上不同分叉的区块数据。由于这种分叉的特性,工作量证明的区块链一般采用软分叉或硬分叉的方式进行软件升级,新老版本的协议可以并行不悖的在两个网络上运行。硬分叉,是指当区块链节点代码发生改变后,旧节点拒绝接受由新节点创造的区块,不符合原规则的区块将被忽略,记账节点会按照原规则,在他们最后验证的区块之后创建新的区块。而软分叉是指旧的节点并不会意识到其他节点代码发生改变,并继续接受由新节点创造的区块。软分叉和硬分叉如果能支持"向后兼容",就能保证新节点可以从头验证区块链。向后兼容是指新软件接受由旧软件所产生的数据或者代码。概率性共识由于其效率低下对环境不友好,以及网络升级产生的分叉造成账本信息不一致等情况,越来越多的区块链开始转向拜占庭容错算法支持的确定性共识,它的特点是正常情况下不会产生分叉,每个区块被生产出来后立即生效,不需要等待6个区块的确认。这种特性是由于每个区块中不仅维护其上一个区块数据的哈希值,还包含2/3以上矿工对上一个区块投票签名信息,因此投票通过后区块数据即刻得到确认。此外,上一个区块交易执行后的应用状态哈希或验证人集合等数据也被维护在当前区块中,因此随意使用非共识协议的软件升级节点,会导致区块执行的应用状态哈希冲突而受到惩罚,共识算法会选取其他验证人来生产区块。但在这一类拜占庭容错共识算法的区块链中,其强一致性的特性,会导致在生产区块的验证人节点随意使用不同协议版本的软件时,网络共识可能会由于不同权重的验证人所生产区块的应用状态哈希相互冲突,没有超过2/3的投票权重一致认同某一版本协议而进入无法共识,网络无法生产区块而停机。
技术实现思路
本专利技术提供一种基于区块链的软件升级方法及装置,解决了区块链共识网络中无法协同进行全网络的分布式软件升级的问题。。为解决上述技术问题,本专利技术提供了一种基于区块链的软件升级方法,包括:提议用户节点发起软件升级提议;区块链网络上的验证用户节点对所述软件升级提议进行投票表决;如果所述投票表决结果满足预设通过条件,则通知区块链网络上的所有用户节点进行软件升级;区块链网络上的各用户节点下载并安装新版本软件;统计区块链网络上软件版本信息为新版本软件的用户节点的数量;如果所述新版本软件的用户节点的数量满足预设数值范围,则区块链网络软件升级成功。根据本专利技术的一实施方式,所述提议用户节点发起软件升级提议的步骤之前还包括:获取区块链网络的系统变量值;如果所述系统变量值满足预设升级条件,则允许所述提议用户节点发起软件升级提议。根据本专利技术的另一实施方式,所述提议用户节点发起软件升级提议的步骤包括:区块链网络上的用户节点利用区块链通证对所述软件升级提议进行通证低押,其中所述区块链网络上的用户节点为提议用户节点,或者提议用户节点和验证用户节点;获取抵押的所述区块链通证的抵押额;如果所述抵押额超过预设抵押额,则所述软件升级提议转入投票表决,并退还抵押的所述区块链通证,否则,继续所述软件升级提议的通证抵押。根据本专利技术的另一实施方式,所述提议用户节点发起软件升级提议的步骤还包括:获取所述软件升级提议在通证抵押停留期内区块链的出块数目;如果在通证抵押的停留期内的所述区块链的出块数目超过抵押周期区块链阈值,则所述软件升级提议关闭。根据本专利技术的另一实施方式,所预设通过条件为:所述验证用户节点数量与所述区块链网络上的用户节点的总数之比大于2/3且所述验证用户节点中赞成所述软件升级提议的用户节点数量大于一半。根据本专利技术的另一实施方式,所述区块链网络上的所有用户节点下载并安装新版本软件的步骤包括:区块链网络上的用户节点下载并安装新版本软件;重新启动用户节点;将用户节点当前的软件版本信息打包在所述用户节点新生产的区块内。根据本专利技术的另一实施方式,所述统计区块链网络上软件版本信息为新版本软件的用户节点的数量的步骤包括:逐个判断用户节点新生产的区块内的当前的软件版本信息与所述软件升级提议中的软件版本信息是否一致;如果所述用户节点新生产的区块内的当前的软件版本信息与所述软件升级提议中的软件版本信息一致,则统计数量加1。根据本专利技术的另一实施方式,所述重新启动用户节点的步骤之后还包括:区块链网络上的用户节点切换到所述新版本软件。根据本专利技术的另一实施方式,所述区块链网络的用户节点的软件架构包括:应用层、共识层和网络层;所述应用层自上而下包括:基础类型定义层、数据访问对象层、交易处理控制器层以及应用管理层。另一方面,本专利技术还提供了一种基于区块链的软件升级装置,包括:升级提议发起模块,用于提议用户节点发起软件升级提议;投票表决模块,用于区块链网络上的验证用户节点对所述软件升级提议进行投票表决;软件升级通知模块,用于如果所述投票表决结果满足预设通过条件,则通知区块链网络上的所有用户节点进行软件升级;下载及安装模块,用于区块链网络上的各用户节点下载并安装新版本软件;统计模块,用于统计区块链网络上软件版本信息为新版本软件的用户节点的数量;判断模块,用于如果所述新版本软件的用户节点的数量满足预设数值范围,则区块链网络软件升级成功。本专利技术的有益效果:本专利技术实施例的一种基于区块链的软件升级方法及装置,解决了区块链共识网络中无法协同进行全网络的分布式软件升级的问题。本专利技术实施例的基于区块链网络的软件升级方法能支持区块链软件通过链上治理的方式向前兼容平滑升级,通过链上各个节点参与投票提议开启软件升级工作流程,在约定的未来区块高度切换到新版本的协议,并对历史版本的链上数据做到完全兼容。另外,当未升级新版本软件的节点将因为共识失败而停机时,可以重新使用新版软件的重播模式启动重新加入网络;区块链网络在完成多次协议版本升级后,新加入网络的节点能够使用新版软件启动并同步和执行所有历史版本的区块。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术的一种基于区块链的软件升级方法的一个实施例的流程示意图;图2是本专利技术的一种基于区块链的软件升级方法的步骤10本文档来自技高网
...

【技术保护点】
1.一种基于区块链的软件升级方法,其特征在于,包括:提议用户节点发起软件升级提议;区块链网络上的验证用户节点对所述软件升级提议进行投票表决;如果所述投票表决结果满足预设通过条件,则通知区块链网络上的所有用户节点进行软件升级;区块链网络上的各用户节点下载并安装新版本软件;统计区块链网络上软件版本信息为新版本软件的用户节点的数量;如果所述新版本软件的用户节点的数量满足预设数值范围,则区块链网络软件升级成功。

【技术特征摘要】
1.一种基于区块链的软件升级方法,其特征在于,包括:提议用户节点发起软件升级提议;区块链网络上的验证用户节点对所述软件升级提议进行投票表决;如果所述投票表决结果满足预设通过条件,则通知区块链网络上的所有用户节点进行软件升级;区块链网络上的各用户节点下载并安装新版本软件;统计区块链网络上软件版本信息为新版本软件的用户节点的数量;如果所述新版本软件的用户节点的数量满足预设数值范围,则区块链网络软件升级成功。2.根据权利要求1所述的基于区块链的软件升级方法,其特征在于,所述提议用户节点发起软件升级提议的步骤之前还包括:获取区块链网络的系统变量值;如果所述系统变量值满足预设升级条件,则允许所述提议用户节点发起软件升级提议。3.根据权利要求1所述的基于区块链的软件升级方法,其特征在于,所述提议用户节点发起软件升级提议的步骤包括:区块链网络上的用户节点利用区块链通证对所述软件升级提议进行通证低押,其中所述区块链网络上的用户节点为提议用户节点,或者提议用户节点和验证用户节点;获取抵押的所述区块链通证的抵押额;如果所述抵押额超过预设抵押额,则所述软件升级提议转入投票表决,并退还抵押的所述区块链通证,否则,继续所述软件升级提议的通证抵押。4.根据权利要求3所述的基于区块链的软件升级方法,其特征在于,所述提议用户节点发起软件升级提议的步骤还包括:获取所述软件升级提议在通证抵押停留期内区块链的出块数目;如果在通证抵押的停留期内的所述区块链的出块数目超过抵押周期区块链阈值,则所述软件升级提议关闭。5.根据权利要求1所述的基于区块链的软件升级方法,其特征在于,所预设通过条件为:所述验证用户节点数量与所述区块链网络上的用户节点的总数之比大于2/3且所述验证用户节点中赞成所述软件升级提议...

【专利技术属性】
技术研发人员:奚海峰程司雷曹恒徐嘉城刘浩洋程文席
申请(专利权)人:上海边界智能科技有限公司
类型:发明
国别省市:上海,31

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

1