CN116208487A - 区块链系统中的共识算法升级方法、装置、设备及介质 - Google Patents
区块链系统中的共识算法升级方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116208487A CN116208487A CN202211723132.8A CN202211723132A CN116208487A CN 116208487 A CN116208487 A CN 116208487A CN 202211723132 A CN202211723132 A CN 202211723132A CN 116208487 A CN116208487 A CN 116208487A
- Authority
- CN
- China
- Prior art keywords
- consensus protocol
- version
- protocol version
- system software
- block chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 abstract description 12
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请适用于区块链技术领域,提供一种区块链系统中的共识算法升级方法、装置、设备及介质,其中方法包括:区块链节点将旧版本的系统软件更新为新版本;基于新版本的所述系统软件,获取所述区块链系统的所有区块链节点中运行的所述系统软件共同支持的目标共识协议版本;基于所述目标共识协议版本,对所述初始共识协议版本进行更新。该方案确保共识算法升级的同时依旧可以做交易处理,做到用户无感知下的共识算法升级。
Description
技术领域
本申请属于区块链技术领域,尤其涉及一种区块链系统中的共识算法升级方法、装置、设备及介质。
背景技术
随着区块链技术的不断更迭与发展,区块链系统升级困难的问题愈发显著。为了实现区块链共识算法的升级,需要对系统软件升级支持新版本的共识协议,实现区块链系统中共识算法的升级。
目前有两种常见的解决方案:
一种是将区块链系统中的所有节点在统一的时间窗口进行停机,在停机的所有节点中统一替换系统软件及共识协议版本,最后重启完成整个区块链系统的共识算法升级。这种方案的缺点是需要各个节点统一在设定时间窗口内进行节点的停机、版本替换、重启这三步操作,运维操作成本较大,且整个升级过程中区块链系统会面临一段时间的服务不可用,需要等所有节点都替换重启完成之后才能恢复区块链系统的可用性,对于区块链用户来说非常不友好。
另一种是在新的区块链节点集群中启动新版本的系统软件及共识协议,在此基础上将原区块链系统承载的业务请求全部转发至新的区块链集群之后,停止旧的区块链节点集群,完成升级。
这种方案的缺点是业务请求需要在两个区块链节点集群中进行转移,可能导致业务请求丢失,且新区块链节点集群中无法保留旧区块链节点集群中产生的历史区块信息,如果需要保留的话,则需要进行额外的数据迁移,实现难度大,耗费时间久。
发明内容
本申请实施例提供了一种区块链系统中的共识算法升级方法、装置、设备及介质,以解决区块链系统中共识算法的升级会存在一段时间的服务不可用或者需要业务请求及区块信息在不同区块链系统间进行迁移,实现难度大且耗时久的问题。
本申请实施例的第一方面提供了一种区块链系统中的共识算法升级方法,包括:
区块链节点将旧版本的系统软件更新为新版本,其中,所述区块链节点所在的区块链系统中各个区块链节点均运行初始共识协议版本;所述系统软件支持相同版本及旧版本的共识协议;
基于新版本的所述系统软件,获取所述区块链系统的所有区块链节点中运行的所述系统软件共同支持的目标共识协议版本;
基于所述目标共识协议版本,对所述初始共识协议版本进行更新。
本申请实施例的第二方面提供了一种区块链系统中的共识算法升级装置,包括:
软件版本更新模块,用于将旧版本的系统软件更新为新版本,其中,所述区块链节点所在的区块链系统中各个区块链节点均运行初始共识协议版本;所述系统软件支持相同版本及旧版本的共识协议;
获取模块,用于基于新版本的所述系统软件,获取所述区块链系统的所有区块链节点中运行的所述系统软件共同支持的目标共识协议版本;
协议版本更新模块,用于基于所述目标共识协议版本,对所述初始共识协议版本进行更新。
本申请实施例的第三方面提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
本申请的第五方面提供了一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得所述计算机设备执行上述第一方面所述方法的步骤。
由上可见,本申请实施例中,在区块链节点所在的区块链系统中各个区块链节点均运行初始共识协议版本的过程中,区块链节点将旧版本的系统软件更新为新版本,并基于新版本的系统软件,获取区块链系统的所有区块链节点中运行的系统软件共同支持的目标共识协议版本,基于该目标共识协议版本,对初始共识协议版本进行更新,该过程中,先将区块链节点中的系统软件进行版本更新,同时段内整个区块链系统中继续运行旧版本的共识协议,以异步更新的方式,使新版本系统软件与旧版本的共识协议共存,并在后续确定出所有区块链节点中运行的系统软件共同支持的目标共识协议版本后对初始共识协议版本进行更新,确保共识算法升级的同时依旧可以做交易处理,做到用户无感知下的共识算法升级。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链系统中的共识算法升级方法的流程图一;
图2是本申请实施例提供的一种区块链系统中的共识算法升级方法的数据交互图;
图3是本申请实施例提供的一种区块链系统中的共识算法升级方法的流程图二;
图4是本申请实施例提供的一种区块链系统中的共识算法升级装置的结构图;
图5是本申请实施例提供的一种计算机设备的结构图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
具体实现中,本申请实施例中描述的计算机设备包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
在接下来的讨论中,描述了包括显示器和触摸敏感表面的计算机设备。然而,应当理解的是,计算机设备可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
计算机设备支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
可以在计算机设备上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及计算机设备上显示的相应信息。这样,计算机设备的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本申请实施例提供的一种区块链系统中的共识算法升级方法的流程图一。如图1所示,一种区块链系统中的共识算法升级方法,该方法包括以下步骤:
步骤101,区块链节点将旧版本的系统软件更新为新版本,其中,区块链节点所在的区块链系统中各个区块链节点均运行初始共识协议版本。
其中,该系统软件支持相同版本及旧版本的共识协议。
系统软件具体为区块链系统中各个区块链节点中配置的能够完成区块链系统中功能的二进制程序。
系统软件中可以运行共识协议。具体地,新版本的系统软件中可以运行与其版本相同或者比其版本旧的共识协议。
本申请实施例涉及到两个系统软件版本:旧版本(old_binary)与新版本(new_binary)。其中新版本的系统软件需要支持运行至少两个版本的共识协议。
该至少两个版本的共识协议分别是旧版本系统软件运行的旧版本共识协议(old_consensus_protocol)与系统软件升级后期望运行的新版本共识协议(new_consensus_protocol)。
这里,旧版本共识协议的版本具体为上述的初始共识协议版本,期望运行的新版本共识协议具体为后续对初始共识协议版本进行更新后的共识协议版本。可选地,对初始共识协议版本进行更新后的共识协议版本即为后续出现的目标共识协议版本。
其中,在具体实施中,将旧版本的系统软件更新为新版本时,可以是:
所有区块链节点的节点管理员均可以选择任意时间对其管理的区块链节点进行停机操作,停机之后,节点管理员触发指令,使区块链节点将旧版本的系统软件替换为新版本的系统软件,并启动新版本的系统软件。
其中,区块链节点在新版本的系统软件启动之后,依旧运行旧版本的共识协议(old_consensus_protocol),此时区块链系统依旧可以通过旧版本共识协议对外提供正常服务。
该处理过程中,先将区块链节点中的系统软件进行版本更新,而与此同时,继续运行旧版本的共识协议,以异步更新的方式,使新版本系统软件与旧版本的共识协议共存。
且本申请实施例中,在实施共识算法升级方法时,以区块链系统中的不同区块链节点进行各自独立实施。其中,在将旧版本的系统软件更新为新版本时,支持任意区块链系统在任意时间进行停机进行系统软件版本更新,而不需要将区块链系统中的所有区块链节点在设定时间窗口内均停机来进行系统软件与共识协议的集中更新。在该过程中,区块链系统仍能为用户提供业务服务,例如当部分区块链节点停机更新系统软件时,区块链系统中其他节点未停机,若客户端需要向该节点发送业务请求,那么该业务请求会被转发给区块链系统中的其他节点进行业务处理,不影响用户的业务的正常处理及响应,确保共识算法升级过程中服务可用。
步骤102,基于新版本的所述系统软件,获取所述区块链系统的所有区块链节点中运行的所述系统软件共同支持的目标共识协议版本;
同一时间内,区块链系统中不同的区块链节点运行的系统软件的版本可能是不同的,不同版本的系统软件支持运行的共识协议的版本也存在差别,因此需要在当前区块链节点中将系统软件的版本升级的新版本后,获取区块链系统的所有区块链节点中运行的系统软件共同支持的目标共识协议版本。
基于该目标共识协议版本对当前区块链节点中运行的初始共识协议版本进行升级更新。
在一个可选的实施例中,该基于新版本的所述系统软件,获取所述区块链系统的所有区块链节点中运行的所述系统软件共同支持的目标共识协议版本,包括:
将新版本的所述系统软件支持的共识协议版本写入至共识协议合约中;其中,所述共识协议合约用于写入所述区块链系统的所有区块链节点中所述系统软件支持的共识协议版本,并确定所述所有区块链节点中运行的所述系统软件均支持的所述目标共识协议版本;
基于所述共识协议合约,获取所述目标共识协议版本。
在具体应用中,结合图2所示,节点管理员在区块链节点中触发一笔信息上链的交易,通过该信息上链交易将本区块链节点当前支持的共识协议版本信息记录到区块链系统中一个特殊的共识协议智能合约中。或者,信息上链的交易可以由区块链节点自身构造并发送到链上。
等待所有区块链节点的共识协议版本信息都记录到了共识协议智能合约之后,由系统管理员在区块链系统层面发起一笔协议升级的交易,可选地,该协议升级的交易可以等待各个区块链节点的节点管理员进行投票并在投票达到一定阈值之后同意协议升级请求,提升系统协议升级的安全性。
在共识协议智能合约处理该协议升级交易时,会计算出所有区块链节点均支持的目标共识协议版本,并将其作为当前区块链系统可选择的最新共识协议存储到区块链中。
其中,当所有区块链节点均支持的共识协议版本为多个时,需要选择其中最高版本的共识协议作为目标共识协议版本,或者根据指令定制化选取其中一个共识协议版本作为目标共识协议版本。
本申请实施例中方案将共识算法的灰度升级与区块链机制连接到了一起,通过区块链上的智能合约来进行区块链共识算法信息的维护,并辅助进行共识算法的升级。
进一步,可选地,所述基于所述共识协议合约,获取所述目标共识协议版本,包括:
获取协议升级交易请求;
根据所述协议升级交易请求,调用所述共识协议合约,得到所述共识协议合约确定的所述目标共识协议版本。
该过程中,根据协议升级交易,调用共识协议合约,在共识协议合约确定出目标共识协议版本后将目标共识协议版本上链存储,区块链节点从存储有目标共识协议版本的区块链中对其进行提取。
在具体实施中,由于所有区块链节点会生成同一区块高度的区块并执行上述的协议升级的交易,执行该区块内的交易逻辑把目标共识协议版本存储至节点内的区块链上,因此所有节点在执行完该区块之后,可以在读取到节点自身内区块链上记录的该目标共识协议版本,如果发现共识协议版本号与区块链节点中当前正在运行共识协议版本号不一致,则进入到共识协议版本升级过程。
由于区块链集群中所有节点维护了一份相同的区块链账本,因此他们的数据是保证实时一致的,这也为本方案中所有节点能够在同一个区块高度统一进行共识算法的升级提供了保证。
步骤103,基于所述目标共识协议版本,对所述初始共识协议版本进行更新。
这里,对所述初始共识协议版本进行更新,具体为将初始共识协议版本更新为目标共识协议版本。
本申请实施例中,在区块链节点所在的区块链系统中各个区块链节点均运行初始共识协议版本的过程中,区块链节点将旧版本的系统软件更新为新版本,并基于新版本的系统软件,获取区块链系统的所有区块链节点中运行的系统软件共同支持的目标共识协议版本,基于该目标共识协议版本,对初始共识协议版本进行更新,先将区块链节点中的系统软件进行版本更新,同时段内整个区块链系统中继续运行旧版本的共识协议,以异步更新的方式,使新版本系统软件与旧版本的共识协议共存,并在后续确定出所有区块链节点中运行的系统软件共同支持的目标共识协议版本后对初始共识协议版本进行更新,确保共识算法升级的同时依旧可以做交易处理,做到用户无感知下的共识算法升级。
在可选的实施方式中,该基于所述目标共识协议版本,对所述初始共识协议版本进行更新的步骤,包括:
判断所述目标共识协议版本与所述初始共识协议版本的版本号是否相同;
若不相同,则将所述初始共识协议版本更新为所述目标共识协议版本。
对应地,若相同,则保持运行当前初始共识协议版本不变。
进一步地,在可选的实施方式中,该方法还包括:
判断所述区块链节点中运行的所述系统软件是否支持所述初始共识协议版本;
所述将所述初始共识协议版本更新为所述目标共识协议版本的步骤,在确定所述区块链节点中运行的所述系统软件支持所述初始共识协议版本的情况下执行。
区块链节点在发现区块链上记录的新版本共识协议(new_consensus_protocol)与当前运行的旧版本共识协议(old_consensus_protocol)不一致时,尝试进行共识协议的升级,首先判断当前系统软件是否支持新版本共识协议,如果不支持的话,则退出升级,依旧运行旧版本的共识协议,否则进入到后续协议自动升级过程。
对应地,在一个示例中,结合图3所示,所述初始共识协议版本更新为所述目标共识协议版本;所述基于所述目标共识协议版本,对所述初始共识协议版本进行更新之后,还包括:
步骤104,读取所述初始共识协议版本对应的未处理缓存交易;
步骤105,将所述未处理缓存交易写入至所述目标共识协议版本对应的交易待处理列表中。
进一步地,所述基于所述目标共识协议版本,对所述初始共识协议版本进行更新之后,还包括:
步骤106,接收业务请求;
步骤107,根据业务请求生成待处理交易,将所述待处理交易依序写入至所述交易待处理列表中。
区块链节点先将旧版本共识协议停止并读取旧版本共识协议中缓存的还未提交的交易列表(即还未开始处理的业务请求),将其写入到新版本共识协议的交易待处理列表中,等待新协议运行时进行处理。在该过程中,如果有新的业务请求进入区块链系统,也是一并注入到新共识协议的交易待处理列表中,实现用户角度的无感知升级。
等所有交易请求在交易待处理列表中写入完成之后,直接启动新版本共识协议,所有区块链节点以新版本共识协议开始共识、提交交易请求等,此时完成升级。
在具体应用中,结合图2所示,客户端发起的交易请求1发送到当前区块链节点时,由于节点处在停机替换系统软件版本的短暂离线状态,因此客户端可以将请求转发给区块链集群中的其他节点,由于区块链系统本身具有容错性,当前节点的宕机并不影响整个集群的运行,因此交易请求可以被其他节点处理,等待该节点启动以后可以通过区块同步算法进行数据同步。
客户端发起的交易请求2发送到当前区块链节点时,节点正在运行新版本的系统软件并在该新版本的系统软件中运行旧版本的共识协议,因此整个区块链集群依旧在使用旧的共识协议进行共识运转,交易请求可以被正常处理。
客户端发起的交易请求3发送到当前区块链节点时,节点正在进行共识协议的线上升级过程,此时交易请求会被短暂的缓存到交易待处理列表中,等到升级完成后,集群会以新版本的共识协议开始共识运转,并最终提交交易请求3,由于算法升级的过程是线上完成的并且升级速度非常快,因此可以做到用户无感知。
客户端发起的交易请求4发送到当前区块链节点时,节点正在运行新版本的系统软件并在该新版本的系统软件中运行新版本的共识协议,因此整个区块链集群可以使用新的共识协议进行共识运转,交易请求可以被正常处理。
基于上述处理过程,区块链系统在进行共识算法升级时的运维成本大大降低,本申请实施例中方案无需让所有节点管理员在一个约定好的时间窗口内统一进行停机、版本替换、重启操作。每个节点管理员只需要各自负责本节点的操作即可,大大降低了时间协调的成本,不会出现所有节点停机的服务不可用问题。且本申请实施例中只需要维护一套区块链系统的节点即可,无需跨区块链系统转发业务请求,无需考虑新旧两个集群中历史区块链信息不一致的问题,大大减少了设计与实现的复杂度。
本申请实施例中方案能够实现区块链系统运行过程中的共识算法不停机灰度升级。这里的不停机指的是从用户角度来看整个区块链系统服务是一直可用的。本申请实施例中方案在共识算法升级过程中会出现节点停机、系统软件的升级及节点重启,但是用户无感知,在升级的整个过程中,用户可以照常进行业务请求,做到用户无感知下的共识算法升级。
参见图4,图4是本申请实施例提供的一种区块链系统中的共识算法升级装置的结构图,为了便于说明,仅示出了与本申请实施例相关的部分。
所述区块链系统中的共识算法升级装置400包括:
软件版本更新模块401,用于将旧版本的系统软件更新为新版本,其中,所述区块链节点所在的区块链系统中各个区块链节点均运行初始共识协议版本;所述系统软件支持相同版本及旧版本的共识协议;
获取模块402,用于基于所述新版本的所述系统软件,获取所述区块链系统的所有区块链节点中运行的所述系统软件共同支持的目标共识协议版本;
协议版本更新模块403,用于基于所述目标共识协议版本,对所述初始共识协议版本进行更新。
其中,所述获取模块402,具体用于:
将所述新版本的所述系统软件支持的共识协议版本写入至共识协议合约中;其中,所述共识协议合约用于写入所述区块链系统的所有区块链节点中所述系统软件支持的共识协议版本,并确定所述所有区块链节点中运行的所述系统软件均支持的所述目标共识协议版本;
基于所述共识协议合约,获取所述目标共识协议版本。
其中,所述获取模块402,具体用于:
获取协议升级交易请求;
根据所述协议升级交易请求,调用所述共识协议合约,得到所述共识协议合约确定的所述目标共识协议版本。
其中,协议版本更新模块403,具体用于:
判断所述目标共识协议版本与所述初始共识协议版本的版本号是否相同;
若相同,则将所述初始共识协议版本更新为所述目标共识协议版本。
其中,该装置还包括:
判断模块,用于判断所述区块链节点中运行的所述系统软件是否支持所述初始共识协议版本;
其中,所述协议版本更新模块403执行的将所述初始共识协议版本更新为所述目标共识协议版本的步骤,在判断模块确定所述区块链节点中运行的所述系统软件支持所述初始共识协议版本的情况下执行。
其中,所述初始共识协议版本更新为所述目标共识协议版本;所述装置还包括:
交易转移模块,用于:
读取所述初始共识协议版本对应的未处理缓存交易;
将所述未处理缓存交易写入至所述目标共识协议版本对应的交易待处理列表中。
其中,所述交易转移模块,还用于:
接收业务请求;
根据业务请求生成待处理交易,将所述待处理交易依序写入至所述交易待处理列表中。
本申请实施例提供的区块链系统中的共识算法升级装置能够实现上述区块链系统中的共识算法升级方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
图5是本申请实施例提供的一种计算机设备的结构图。如该图所示,该实施例的计算机设备5包括:至少一个处理器50(图5中仅示出一个)、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个方法实施例中的步骤。
所述计算机设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是计算机设备5的示例,并不构成对计算机设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述计算机设备5的内部存储单元,例如计算机设备5的硬盘或内存。所述存储器51也可以是所述计算机设备5的外部存储设备,例如所述计算机设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述计算机设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述计算机设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序产品来实现,当计算机程序产品在计算机设备上运行时,使得所述计算机设备执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种区块链系统中的共识算法升级方法,其特征在于,包括:
区块链节点将旧版本的系统软件更新为新版本,其中,所述区块链节点所在的区块链系统中各个区块链节点均运行初始共识协议版本;所述系统软件支持相同版本及旧版本的共识协议;
基于新版本的所述系统软件,获取所述区块链系统的所有区块链节点中运行的所述系统软件共同支持的目标共识协议版本;
基于所述目标共识协议版本,对所述初始共识协议版本进行更新。
2.根据权利要求1所述的方法,其特征在于,所述基于新版本的所述系统软件,获取所述区块链系统的所有区块链节点中运行的所述系统软件共同支持的目标共识协议版本,包括:
将新版本的所述系统软件支持的共识协议版本写入至共识协议合约中;其中,所述共识协议合约用于写入所述区块链系统的所有区块链节点中所述系统软件支持的共识协议版本,并确定所述所有区块链节点中运行的所述系统软件均支持的所述目标共识协议版本;
基于所述共识协议合约,获取所述目标共识协议版本。
3.根据权利要求2所述的方法,其特征在于,所述基于所述共识协议合约,获取所述目标共识协议版本,包括:
获取协议升级交易请求;
根据所述协议升级交易请求,调用所述共识协议合约,得到所述共识协议合约确定的所述目标共识协议版本。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标共识协议版本,对所述初始共识协议版本进行更新,包括:
判断所述目标共识协议版本与所述初始共识协议版本的版本号是否相同;
若不相同,则将所述初始共识协议版本更新为所述目标共识协议版本。
5.根据权利要求4所述的方法,其特征在于,还包括:
判断所述区块链节点中运行的所述系统软件是否支持所述初始共识协议版本;
所述将所述初始共识协议版本更新为所述目标共识协议版本的步骤,在确定所述区块链节点中运行的所述系统软件支持所述初始共识协议版本的情况下执行。
6.根据权利要求1所述的方法,其特征在于,所述初始共识协议版本更新为所述目标共识协议版本;所述基于所述目标共识协议版本,对所述初始共识协议版本进行更新之后,还包括:
读取所述初始共识协议版本对应的未处理缓存交易;
将所述未处理缓存交易写入至所述目标共识协议版本对应的交易待处理列表中。
7.根据权利要求6所述的方法,其特征在于,所述基于所述目标共识协议版本,对所述初始共识协议版本进行更新之后,还包括:
接收业务请求;
根据业务请求生成待处理交易,将所述待处理交易依序写入至所述交易待处理列表中。
8.一种区块链系统中的共识算法升级装置,其特征在于,包括:
软件版本更新模块,用于将旧版本的系统软件更新为新版本,其中,所述区块链节点所在的区块链系统中各个区块链节点均运行初始共识协议版本;所述系统软件支持相同版本及旧版本的共识协议;
获取模块,用于基于新版本的所述系统软件,获取所述区块链系统的所有区块链节点中运行的所述系统软件共同支持的目标共识协议版本;
协议版本更新模块,用于基于所述目标共识协议版本,对所述初始共识协议版本进行更新。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211723132.8A CN116208487A (zh) | 2022-12-30 | 2022-12-30 | 区块链系统中的共识算法升级方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211723132.8A CN116208487A (zh) | 2022-12-30 | 2022-12-30 | 区块链系统中的共识算法升级方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116208487A true CN116208487A (zh) | 2023-06-02 |
Family
ID=86515327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211723132.8A Pending CN116208487A (zh) | 2022-12-30 | 2022-12-30 | 区块链系统中的共识算法升级方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116208487A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117032765A (zh) * | 2023-10-10 | 2023-11-10 | 浙江大华技术股份有限公司 | 模型升级方法、模型升级装置以及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111726370A (zh) * | 2020-08-21 | 2020-09-29 | 支付宝(杭州)信息技术有限公司 | 一种自动切换区块链共识协议的方法、系统和装置 |
CN112650626A (zh) * | 2020-12-29 | 2021-04-13 | 杭州趣链科技有限公司 | 共识算法的切换方法、装置、电子设备及存储介质 |
US20210314392A1 (en) * | 2020-07-03 | 2021-10-07 | Alipay (Hangzhou) Information Technology Co., Ltd. | Consensus node changing method and related apparatus based on honey badger byzantine fault tolerance consensus mechanism |
CN113641391A (zh) * | 2021-10-19 | 2021-11-12 | 杭州趣链科技有限公司 | 升级区块链系统的方法、装置及终端设备 |
CN114816493A (zh) * | 2022-04-29 | 2022-07-29 | 蚂蚁区块链科技(上海)有限公司 | 区块链服务平台的灰度升级方法及装置、电子设备 |
-
2022
- 2022-12-30 CN CN202211723132.8A patent/CN116208487A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210314392A1 (en) * | 2020-07-03 | 2021-10-07 | Alipay (Hangzhou) Information Technology Co., Ltd. | Consensus node changing method and related apparatus based on honey badger byzantine fault tolerance consensus mechanism |
CN111726370A (zh) * | 2020-08-21 | 2020-09-29 | 支付宝(杭州)信息技术有限公司 | 一种自动切换区块链共识协议的方法、系统和装置 |
CN112650626A (zh) * | 2020-12-29 | 2021-04-13 | 杭州趣链科技有限公司 | 共识算法的切换方法、装置、电子设备及存储介质 |
CN113641391A (zh) * | 2021-10-19 | 2021-11-12 | 杭州趣链科技有限公司 | 升级区块链系统的方法、装置及终端设备 |
CN114816493A (zh) * | 2022-04-29 | 2022-07-29 | 蚂蚁区块链科技(上海)有限公司 | 区块链服务平台的灰度升级方法及装置、电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117032765A (zh) * | 2023-10-10 | 2023-11-10 | 浙江大华技术股份有限公司 | 模型升级方法、模型升级装置以及计算机存储介质 |
CN117032765B (zh) * | 2023-10-10 | 2024-01-16 | 浙江大华技术股份有限公司 | 模型升级方法、模型升级装置以及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101643022B1 (ko) | 카탈로그-기반 소프트웨어 컴포넌트 관리 | |
US9612919B2 (en) | Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets | |
CN109471626B (zh) | 页面逻辑结构、页面生成方法、页面数据处理方法及装置 | |
US20190258534A1 (en) | Message oriented middleware with integrated rules engine | |
US20220276878A1 (en) | Method and apparatus for generating image file and computer-readable storage medium | |
WO2022095366A1 (zh) | 基于Redis的数据读取方法、装置、设备及可读存储介质 | |
US20170192764A1 (en) | Automated application installation | |
CN112612853A (zh) | 基于数据库集群的数据处理方法、装置及电子设备 | |
EP3497586A1 (en) | Discovery of calling application for control of file hydration behavior | |
CN104216802B (zh) | 一种内存数据库恢复方法和设备 | |
CN112256676A (zh) | 一种数据库迁移的方法、装置、设备和介质 | |
CN116208487A (zh) | 区块链系统中的共识算法升级方法、装置、设备及介质 | |
CN111767270A (zh) | 数据迁移方法、装置、服务器及存储介质 | |
CN107526838B (zh) | 数据库集群扩容的方法和装置 | |
US10127270B1 (en) | Transaction processing using a key-value store | |
US9292457B2 (en) | Networking cloud and method of using the same | |
CN111767284A (zh) | 数据处理方法、装置、存储介质和服务器 | |
WO2023066246A1 (zh) | 云手机安装应用的方法、系统和客户端云手机 | |
CN115640280A (zh) | 数据迁移方法及装置 | |
US10015248B1 (en) | Syncronizing changes to stored data among multiple client devices | |
CN114969065A (zh) | 分布式网络中数字数据版本的会话级读己之所写一致性 | |
CN109960522B (zh) | 一种软件升级方法及装置 | |
CN112015459A (zh) | 一种镜像文件的升级方法、装置、终端及可读存储介质 | |
CN112787849B (zh) | 区块链状态的管控方法、装置、终端及存储介质 | |
CN107209882B (zh) | 对于处在管理之下的设备的多阶段撤销注册 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |