CN112162768B - 一种区块链升级方法和系统 - Google Patents

一种区块链升级方法和系统 Download PDF

Info

Publication number
CN112162768B
CN112162768B CN202011097872.6A CN202011097872A CN112162768B CN 112162768 B CN112162768 B CN 112162768B CN 202011097872 A CN202011097872 A CN 202011097872A CN 112162768 B CN112162768 B CN 112162768B
Authority
CN
China
Prior art keywords
block chain
blockchain
protocol
round
nodes
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.)
Active
Application number
CN202011097872.6A
Other languages
English (en)
Other versions
CN112162768A (zh
Inventor
乔肖瑞
李康
李帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202011097872.6A priority Critical patent/CN112162768B/zh
Publication of CN112162768A publication Critical patent/CN112162768A/zh
Application granted granted Critical
Publication of CN112162768B publication Critical patent/CN112162768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本说明书实施例公开了区块链节点升级方法和系统。所述方法包括:分轮次升级区块链网络中区块链节点的区块链程序,区块链节点包括共识节点;当升级完所有共识节点的区块链程序后,在区块链网络中广播升级交易。其中,第T‑1轮的升级包括:停止第T‑1轮对应的区块链节点运行的支持第一区块链协议的第一区块链程序;启动第T‑1轮对应的区块链节点中支持第二区块链协议的第二区块链程序,第二区块链程序兼容第一区块链协议;当满足预设条件时,开始第T轮的升级。若升级交易通过共识,则区块链网络中的共识节点此后将生成新区块所基于的区块链协议由第一区块链协议更换为第二区块链协议。

Description

一种区块链升级方法和系统
技术领域
本说明书涉及信息技术领域,特别涉及一种区块链升级方法和系统。
背景技术
区块链系统属于分布式系统,包括多个节点。升级节点意味着需要关停节点运行的区块链程序,导致该节点在接下来的一段时间内无法正常提供区块链服务。在一些共识机制下,当一定数量的节点无法参与共识时,区块链系统将无法正常提供服务。
因此,希望在保证区块链系统可以正常提供服务的前提下,提供一种节点升级方案。
发明内容
本说明书实施例之一提供一种区块链节点升级方法。所述方法包括:分轮次升级区块链网络中区块链节点的区块链程序,所述区块链节点包括共识节点;当升级完所有共识节点的区块链程序后,在所述区块链网络中广播升级交易。其中,不同轮次对应不同的区块链节点,第T-1轮的升级包括:停止第T-1轮对应的区块链节点运行的第一区块链程序,所述第一区块链程序支持第一区块链协议;启动第T-1轮对应的区块链节点中的第二区块链程序,所述第二区块链程序支持第二区块链协议,兼容所述第一区块链协议,以便启动所述第二区块链程序的区块链节点能够继续基于所述第一区块链协议生成区块;当满足预设条件时,开始第T轮的升级;其中,T为大于2的整数。并且,若所述升级交易通过共识,则所述区块链网络中的共识节点此后将生成新区块所基于的区块链协议由所述第一区块链协议更换为所述第二区块链协议。
本说明书实施例之一提供一种区块链节点升级系统。所述系统包括:区块链程序升级模块,用于分轮次升级区块链网络中区块链节点的区块链程序,所述区块链节点包括共识节点;升级交易发起模块,用于当升级完所有共识节点的区块链程序后,在所述区块链网络中广播升级交易。其中,不同轮次对应不同的区块链节点,第T-1轮的升级包括:停止第T-1轮对应的区块链节点运行的第一区块链程序,所述第一区块链程序支持第一区块链协议;启动第T-1轮对应的区块链节点中的第二区块链程序,所述第二区块链程序支持第二区块链协议,兼容所述第一区块链协议,以便启动所述第二区块链程序的区块链节点能够继续基于所述第一区块链协议生成区块;当满足预设条件时,开始第T轮的升级。其中,T为大于2的整数。若所述升级交易通过共识,则所述区块链网络中的共识节点此后将生成新区块所基于的区块链协议由所述第一区块链协议更换为所述第二区块链协议。
本说明书实施例之一提供一种区块链节点升级装置。所述装置包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的区块链节点升级方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图;
图2是根据本说明书一些实施例所示的区块链节点升级流程的示意图;
图3是根据本说明书一些实施例所示的区块链节点升级系统的模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图。图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图。如图1所示,区块链系统可以包括区块链网络110、用户端120和网络130。区块链网络110可以包括多个区块链节点,如节点110-1、节点110-2、节点110-3、...、110-n节点。
区块链节点可以分为共识节点和非共识节点。顾名思义,共识节点是指参与共识的区块链节点,非共识节点是指不参与共识的区块链节点(非共识节点,也可称为普通节点)。
区块链系统整体上属于分布式系统,每个节点上都运行了区块链程序。区块链程序按照某种区块链协议运行以处理区块链事务和/或提供区块链服务。区块链协议约束着区块链系统的行为,其可以规定交易的执行逻辑、区块的生成逻辑、共识逻辑(共识协议)等等。
交易可以用于记录各类事件和/或数据。在一些实施例中,交易记录的事件可以包括表征新节点的加入、节点的退出、转账等中的一种或多种。在一些实施例中,交易记录的数据可以包括医疗信息、电子合同、电子凭据、电子订单、数字指纹等中的一种或多种。
期望的代码可以通过交易触发执行,也可称作交易的执行。例如,用于记录转账行为的交易可以触发对转账双方账户的更新。又如,用于记录数据的交易可以触发区块链数据的更新。
共识机制是区块链的必要组件之一,也就是说共识协议是区块链协议的重要组成部分。各共识节点可基于区块链协议生成新区块并确认新区块的有效性,进而将有效的新区块一致添加进区块链数据(或简称为上链),此过程也被称为共识。可以理解,通过共识机制,能够保证至少大部分共识节点存储的区块链数据是相同的,从而保证区块链的可靠性。
区块的有效性是指新区块是否满足区块链协议的规定。例如,区块是否包含了符合区块链协议所规定的各个字段。
取决于具体类型的共识机制,对区块的有效性的定义也有所不同。
例如,PoW(ProofofWork,工作量证明)机制中,有效区块中的某个字段被设计为特定数学问题的解,而求解该数学问题的难度较高(或者说概率较低)。任一节点可以“声称”自己生成了有效的新区块,并将生成的新区块发给其他节点验证(确认有效性)。其他节点确认新区块有效后,可将新区块添加进本地的区块链数据。
又如,在诸如PBFT(Practical Byzantine Fault Tolerance,使用拜占庭容错)、Raft之类的机制中,各共识节点可以约定一段时间内接收到的交易的执行顺序(可视为共识的一部分),并各自按该顺序执行交易以及生成新区块。其中,需要有超过预设比例(如,2/3、1/2等)的共识节点承认新区块的有效性,该新区块才会被一致添加进区块链数据。
除了不支持修改的区块数据外,区块链数据还可以包括支持增删查改的状态数据。状态数据可以包括执行交易用到的输入和/或交易的执行结果(可以是中间结果,也可以是最终输出)。状态数据可以以键值对形式被写入区块链数据。例如,在以太坊或类似架构中,状态数据的总和也被叫作世界状态或全局状态,其中,全局的键可以是账户(实体账户或合约账户)标识,全局的值可称作(该账户的)账户存储。账户存储中可进一步包括键值对,这些键值对即与账户关联的状态数据。例如,实体(个人或组织)控制的账户的账户存储可以包括不同资产类型的余额。又如,(智能)合约账户的账户存储可以包括智能合约代码中的状态变量,其中,变量名即键,变量值即值。
用户端120可以是使用区块链服务的终端,其可以通过网络130链接至区块链网络110中的某一节点。在一些实施例中,用户端120可以生成交易,并通过网络130将交易传输给区块链节点,接收到交易的节点可以在区块链网络中广播该交易,以便区块链中的各共识节点基于一段时间内接收到的交易生成区块。在一些实施例中,区块链节点还可以将交易执行结果返回给用户端。此外,节点也可以生成交易并在区块链网络110中广播生成的交易。为了方便描述,生成并传输交易也被称作发起交易。
可以理解,共识节点可通过执行交易提供服务,如转账服务、数据存证服务等。
在一些共识机制下,需要保证有一定数量的共识节点能够参与共识,才有可能生成有效的区块或者保证可观的出块效率。例如,在工作量证明机制下,当解决生成有效区块相关的数学问题的概率已经很低时,若参与共识的节点数量过少,产出有效区块的时间可能会过分延长,出块效率低下。又如,在PBFT、Raft或类似机制下,需要有超过预设比例的共识节点承认新区块的有效性。
如果无法生成有效的新区块(即未通过/达成共识),交易的执行会被认为是不可靠的。例如,当无法达成共识时,共识节点可以执行回滚,即将交易执行过程中涉及的状态数据恢复至交易执行前的状态。因此,在一些共识机制下,需要保证有一定数量的共识节点能够参与共识,区块链系统才能正常提供服务。
有鉴于此,在保证区块链系统能够正常提供服务的前提下,本说明书实施例提供了区块链节点的区块链协议升级方案,更多细节可以参考图2、图3及其相关描述。
在一些实施例中,用户端120也可以直接集成在某一区块链节点上。换句话说,用户端120可以作为节点加入区块链网络110中。在一些实施例中,用户端120可以作为普通节点加入区块链网络110,也可以作为共识节点加入区块链网络110。
在一些实施例中,用户端120/区块链网络110中的节点可以包括各类计算设备,如膝上型计算机、台式计算机、服务器等等。其中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。
网络130连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以包括有线网络和/或无线网络。例如,网络130可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络(ZigBee)、近场通信(NFC)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。可以理解,网络130与区块链网络110不必具有明显的分界,在更一般的应用场景中,区块链节点与普通网络节点可以共同接入同一物理网络中,其中的区块链节点在逻辑上构成区块链网络。
图2是根据本说明书一些实施例所示的区块链节点升级流程的示意图。如图2所示,升级流程可以由提供升级服务的设备(简称为升级服务)执行。在一些实施例中,可以将升级服务集成于区块链节点,也可以由各区块链节点共同信任的其他设备提供升级服务。
升级流程包括两个阶段:第一阶段,分轮次升级区块链网络中区块链节点的区块链程序;第二阶段,完成所有轮次的升级后,在区块链网络中广播升级交易。升级的目的可以包括使所有共识节点基于升级后的(即新版本的)区块链协议生成新区块。当然,参考前文对区块链协议的介绍,升级的目的还可以包括使所有共识节点基于新版本的区块链协议执行交易以及确认新区块的有效性等。
下面参考图2详细介绍这两个阶段。
不同轮次对应不同的区块链节点。在一些实施例中,升级服务可以在升级节点前确定区块链网络中的节点对应的升级轮次,进而根据确定的升级轮次升级区块链网络中区块链节点的区块链程序。例如,如图2所示,升级服务可以对各区块链节点进行编号,从而可按编号顺序依次升级节点1、节点2、...、节点N的区块链程序,节点的编号即节点对应的升级轮次(圆圈中的数字)。在一些实施例中,升级服务可以抽取节点进行第一轮的(区块链程序)升级,在之后的每一轮升级中,从未升级的节点中继续抽取节点进行升级。在一些实施例,任一轮次对应的节点数量可以是一个(如图2所示),也可以是两个或以上。
如图2所示,每一轮的升级可以包括停止本轮升级的区块链节点的第一区块链程序(程序V1),以及启动本轮升级的区块链节点的第二区块链程序(程序V2)。其中,第一区块链程序支持第一区块链协议,第二区块链程序支持第二区块链协议且兼容第一区块链协议。
可以理解,第二区块链程序/协议的版本高于第一区块链程序/协议的版本。区块链程序可以经历过多次版本升级,相应地,最新版本的区块链程序可以向前兼容所有历史版本区块链程序支持的区块链协议。例如,区块链程序经历了V1-V2-V3的版本升级,且程序V1、程序V2、程序V3分别支持区块链协议C1、区块链协议C2、区块链协议C3,则区块链程序V3不仅支持区块链协议C3,还兼容区块链协议C1和C2。依此类推,当区块链程序升级到第N个版本时,不仅支持第N个版本的区块链协议,还兼容前N-1个版本的区块链协议。值得说明的是,向前兼容所有历史版本区块链程序支持的区块链协议,使得最新版本的区块链程序具备验证按任一历史版本的区块链协议生成的历史区块的有效性的能力。
兼容旧协议的方式可以有多种。例如,新版本的区块链程序中可以同时包含新旧版本的区块链协议。又如,新版本的区块链协议可以包含与旧版本的区块链协议相同的内容以及新增内容。
在一些实施例中,升级服务可以仅分轮次升级区块链网络中共识节点的区块链程序。在一些实施例中,不区分共识节点和普通节点,升级服务可以分轮次升级区块链网络中所有节点的区块链程序。
分轮次升级区块链节点的区块链程序对区块链网络中的共识节点有着重要意义。参考前述内容,在一些共识机制下,需要保证有一定数量的共识节点能够参与共识,区块链系统才能正常提供服务。那么,在同一时刻必须有一定数量的共识节点启动了区块链程序,因此可以分轮次升级共识节点。升级服务启动任一轮(记为第T-1轮)对应的共识节点的第二区块链程序后,且满足预设条件时,开始第T轮的升级。其中,预设条件可以是第T-1轮对应的(所有)共识节点是否可以恢复工作,如提供区块链服务或处理区块链事务。具体地,检测预设条件是否满足可以包括至少检测第T-1轮对应的(所有)共识节点是否已完成区块的同步,或者检测第T-1轮对应的(所有)共识节点启动第二区块链程序是否达到预设时长。
升级服务启动任一轮(记为第T-1轮)对应的共识节点的第二区块链程序后,可以先检测第T-1轮对应的(所有)共识节点是否已完成区块的同步。
在一些实施例中,升级服务可以通过检查第T-1轮对应的共识节点的本地区块高度(表征保存的有效区块数量)和当前区块高度(表征当前区块链系统产生的全部有效区块的数量)是否相同,来确认第T-1轮对应的共识节点是否已完成区块的同步。类似地,升级服务还可以通过检查第T-1轮对应的共识节点保存的最后一个有效区块的时间戳和当前区块时间戳(表征最新有效区块的产出时间)是否相同,来确认第T-1轮对应的共识节点是否已完成区块的同步。可以理解,升级服务可以通过检查尚未升级的节点保存的最后一个有效区块中的字段来获取当前区块高度/当前区块时间戳。
在一些实施例中,升级服务可以通过查询共识节点是否处于“正常状态”来确定该共识节点是否完成区块的同步。其中,共识节点可以基于共识协议判断自己是否完成最新一次的共识,若是,则确定自己处于“正常状态”。
在一些实施例中,共识节点是否已完成区块的同步可以通过其他预设条件的达成来等效。例如,当第T-1轮对应的共识节点启动第二区块链程序达到预设时长时,升级服务开始第T轮的升级。即,认为共识节点在启动第二区块链程序达到预设时长时已完成区块的同步。
追赶区块的方式有多种。例如,共识节点启动第二区块链程序后可以向尚未升级的共识节点获取关停第一区块链程序期间生成的区块,进而还可以验证这些区块的有效性。又如,共识节点启动第二区块链程序后可以重放世界状态,即向尚未升级的共识节点获取关停第一区块链程序期间生成的区块的顺序(如果期间生成了两个或以上区块)以及区块中交易的执行顺序,进而按顺序执行这些交易,从而实现区块及世界状态的同步。
此外,同一轮次对应的共识节点的数量过多,即同时关停区块链程序的共识节点过多,也可能导致没有足够数量的共识节点能够参与共识,进而使得区块链系统无法正常提供服务。因此,需要控制同一轮次对应的共识节点的数量,以平衡升级效率和系统可靠性。以实用拜占庭容错(PBFT)协议为例,该共识协议规定共识通过的必要条件包括超过2/3的共识节点承认新区块有效,相应地,对应同一升级轮次的共识节点数量x可以不大于(n-1)/3的向下取整结果,其中,n表示区块链网络中(所有)共识节点的数量。应当理解,可以在x和(n-1)/3之间预留足够的取值空间(如x取1)以应付共识节点可能出现的影响区块链系统正常提供服务的状况,例如,故障、意外停机等等。
所有共识节点从同一时刻起将生成新区块所基于的区块链协议由旧版本(如第一区块链协议)更换为新版本(如第二区块链协议),即激活新版本的区块链协议,需要在升级完所有共识节点的区块链程序之后统一进行。反过来说,同一时刻不允许任何共识节点基于不同的区块链协议生成新区块。当然,新版本区块链协议的激活还可以包括执行交易和/或共识所基于的区块链协议由旧版本更换为新版本。可以理解,节点虽然启用了第二区块链程序,但是各个节点的第二区块链程序在一段时间内仍然可基于第一区块链协议处理区块链事务,直到第二区块链协议被激活。在一些实施例中,升级服务可以生成升级交易并在区块链网络中广播升级交易,以促成新版本区块链协议的激活。在一些场景下,各个共识节点的管理员可以提前确定要共同激活的区块链协议的版本。若升级交易通过共识(例如,超过预设比例的共识节点或者所有共识节点同意激活更高版本的第二区块链协议),则区块链网络中的(所有)共识节点此后将生成新区块所基于的区块链协议由第一区块链协议更换为第二区块链协议。可以理解,升级服务可以是区块链网络的用户端或节点。
值得说明的是,在任一时刻,节点即可以生成新区块,也可以重构历史(旧)区块。重构历史区块所基于的区块链协议的版本应当于相应共识过程所基于的区块链协议的版本保持一致。
在一些实施例中,区块链程序中可设置有指示当前生成新区块所基于的区块链协议的版本的变量,共识节点在某一时刻生成新区块时可查询该时刻的该变量值,进而基于相应版本的区块链协议生成新区块。在一些实施例中,区块中可以设置有[当前区块版本号]字段,该字段指示生成本区块所基于的区块链协议的版本,节点可以确定区块中的[当前区块版本号]字段,进而基于相应版本的区块链协议验证该区块的有效性。在一些实施例中,区块链程序还可以设置有[区块版本号]字段,该字段指示本程序支持的最新版本的区块链协议。例如,区块链程序中的[区块版本号]字段可以是3,意味着该程序支持版本号为3的区块链协议C3且兼容版本号为1的区块链协议和版本号为2的区块链协议,即凡是区块版本号<=3的区块,该程序都可以执行该区块中的交易以及验证该区块的有效性。如果接收到一个[当前区块版本号]为4的区块,那么共识节点无法执行该区块中的交易以及验证该区块的有效性。在一些实施例中,升级交易可以包括[目标区块版本号]字段,[目标区块版本号]字段指示待激活的区块链协议的版本。不妨假设版本越高版本号的数值越大,则任一共识节点可判断[目标区块版本号]是否小于[区块版本号]。若是,说明运行的区块链程序支持/兼容[目标区块版本号]对应的区块链协议,则该共识节点可同意激活[目标区块版本号]对应的区块链协议。否则,该共识节点可拒绝激活[目标区块版本号]对应的区块链协议。当升级交易完成共识后,各节点将区块链程序中的所述变量值修改为升级交易中的[目标区块版本号]。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。例如,如图2所示的升级流程可以仅用于区块链系统中的共识节点的升级,而对区块链系统中的普通节点的升级过程不做约束。换句话说,该升级流程中,每个轮次的节点仅包括共识节点,而普通节点则可按照其他流程进行升级。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图3是根据本说明书一些实施例所示的区块链节点升级系统的模块图。如图3所示,系统300可以包括区块链程序升级模块310和升级交易发起模块320。
区块链程序升级模块310可以用于分轮次升级区块链网络中区块链节点的区块链程序,所述区块链节点包括共识节点。
不同轮次对应不同的区块链节点,第T-1轮的升级包括:停止第T-1轮对应的区块链节点运行的第一区块链程序,第一区块链程序支持第一区块链协议;启动第T-1轮对应的区块链节点中的第二区块链程序,第二区块链程序支持第二区块链协议,兼容第一区块链协议,以便启动第二区块链程序的区块链节点能够继续基于第一区块链协议生成区块。当满足预设条件时,开始第T轮的升级。其中,T为大于2的整数。
升级交易发起模块320用于当升级完所有共识节点的区块链程序后,在区块链网络中广播升级交易。其中,若升级交易通过共识,则区块链网络中的共识节点此后将生成新区块所基于的区块链协议由第一区块链协议更换为第二区块链协议。
关于系统300及其模块的更多细节,可以参考图2及其相关描述。
应当理解,图3所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,升级交易发起模块320可以是一个单独的模块,也可以由升级交易生成模块和升级交易传输模块的组合来实现这一个模块的功能。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)通过分轮次升级以及在满足预设条件时启动下一轮升级,保证有一定数量的共识节点能够参与共识,以在尽量不影响区块链系统正常提供服务的前提下实现升级;(2)通过适当提高同一轮次对应的区块链节点的数量,以在尽量不影响区块链系统正常提供服务的前提下提高升级效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (7)

1.一种区块链节点升级方法,其中,包括:
分轮次升级区块链网络中区块链节点的区块链程序,所述区块链节点包括共识节点;其中,不同轮次对应不同的区块链节点,第T-1轮的升级包括:停止第T-1轮对应的区块链节点运行的第一区块链程序,所述第一区块链程序支持第一区块链协议;启动第T-1轮对应的区块链节点中的第二区块链程序,所述第二区块链程序支持第二区块链协议,兼容所述第一区块链协议,以便启动所述第二区块链程序的区块链节点能够继续基于所述第一区块链协议生成区块;当满足预设条件时,开始第T轮的升级;其中,T为大于2的整数;
当升级完所有共识节点的区块链程序后,在所述区块链网络中广播升级交易;其中,若所述升级交易通过共识,则所述区块链网络中的共识节点此后将生成新区块所基于的区块链协议由所述第一区块链协议更换为所述第二区块链协议。
2.如权利要求1所述的方法,其中,所述分轮次升级区块链网络中区块链节点的区块链程序,包括:
确定区块链网络中区块链节点对应的升级轮次;
根据确定的升级轮次升级区块链网络中区块链节点的区块链程序。
3.如权利要求1所述的方法,其中,所述当满足预设条件时,开始第T轮的升级,包括:
至少检测第T-1轮对应的共识节点是否完成区块的同步;
当检测到第T-1轮对应的共识节点已完成区块的同步时,开始第T轮的升级。
4.如权利要求1所述的方法,其中,所述当满足预设条件时,开始第T轮的升级,包括:
当第T-1轮对应的共识节点启动所述第二区块链程序达到预设时长时,开始第T轮的升级。
5.如权利要求1所述的方法,其中,所述第一区块链协议包括PBFT协议,对应同一升级轮次的共识节点的数量x不大于(n-1)/3的向下取整结果,其中,n表示所述区块链网络中共识节点的数量。
6.一种区块链节点升级系统,其中,包括区块链程序升级模块和升级交易发起模块;
所述区块链程序升级模块用于分轮次升级区块链网络中区块链节点的区块链程序,所述区块链节点包括共识节点;其中,不同轮次对应不同的区块链节点,第T-1轮的升级包括:停止第T-1轮对应的区块链节点运行的第一区块链程序,所述第一区块链程序支持第一区块链协议;启动第T-1轮对应的区块链节点中的第二区块链程序,所述第二区块链程序支持第二区块链协议,兼容所述第一区块链协议,以便启动所述第二区块链程序的区块链节点能够继续基于所述第一区块链协议生成区块;当满足预设条件时,开始第T轮的升级;其中,T为大于2的整数;
所述升级交易发起模块用于当升级完所有共识节点的区块链程序后,在所述区块链网络中广播升级交易;其中,若所述升级交易通过共识,则所述区块链网络中的共识节点此后将生成新区块所基于的区块链协议由所述第一区块链协议更换为所述第二区块链协议。
7.一种区块链节点升级装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求1~5中任一项所述的方法。
CN202011097872.6A 2020-10-14 2020-10-14 一种区块链升级方法和系统 Active CN112162768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011097872.6A CN112162768B (zh) 2020-10-14 2020-10-14 一种区块链升级方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011097872.6A CN112162768B (zh) 2020-10-14 2020-10-14 一种区块链升级方法和系统

Publications (2)

Publication Number Publication Date
CN112162768A CN112162768A (zh) 2021-01-01
CN112162768B true CN112162768B (zh) 2022-09-30

Family

ID=73868247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011097872.6A Active CN112162768B (zh) 2020-10-14 2020-10-14 一种区块链升级方法和系统

Country Status (1)

Country Link
CN (1) CN112162768B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438109B (zh) * 2021-06-23 2022-06-07 预言机(重庆)科技有限公司 一种基于网络节点的区块链协议升级方法及系统
CN114257600A (zh) * 2021-08-02 2022-03-29 美的集团股份有限公司 区块链的网络通信方法、通信装置及计算机存储介质
CN113641391B (zh) * 2021-10-19 2022-02-18 杭州趣链科技有限公司 升级区块链系统的方法、装置及终端设备
CN117118986B (zh) * 2023-10-25 2024-02-06 腾讯科技(深圳)有限公司 基于区块链的容错验证方法、装置、设备及介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170449A (zh) * 2017-12-27 2018-06-15 邵美 一种区块链系统中核心协议的升级方法
EP3582439B1 (en) * 2018-06-11 2021-10-06 Paradox Engineering Sa Method for providing an over the air (ota) update to devices of an internet of things (iot) platform
CN110798331B (zh) * 2018-08-02 2021-11-09 华为技术有限公司 一种设备升级方法和装置
CN109327548A (zh) * 2018-11-27 2019-02-12 北京瑞卓喜投科技发展有限公司 一种区块链更新方法及区块链更新系统
CN111258599B (zh) * 2018-12-03 2023-06-20 中国电信股份有限公司 固件升级方法、系统和计算机可读存储介质
CN109814905B (zh) * 2019-01-17 2023-06-16 上海边界智能科技有限公司 一种基于区块链的软件升级方法及装置
CN109992285B (zh) * 2019-04-02 2022-09-16 杭州秘猿科技有限公司 区块链代码块独立升级方法、装置及电子设备
CN110413304B (zh) * 2019-07-31 2023-07-14 中国工商银行股份有限公司 基于区块链网络的智能合约热升级方法及装置
CN111010394B (zh) * 2019-08-15 2021-06-08 腾讯科技(深圳)有限公司 区块链多链管理方法和装置
CN110535938B (zh) * 2019-08-29 2021-07-27 腾讯科技(深圳)有限公司 一种基于智能合约的数据处理方法、设备及存储介质
CN111506327B (zh) * 2020-04-15 2023-04-21 深圳市迅雷网络技术有限公司 区块链节点热升级方法及相关设备
CN111596937B (zh) * 2020-05-14 2023-09-15 北京众享比特科技有限公司 一种区块链中节点的新特征同步生效的实现方法和系统
CN111381866A (zh) * 2020-05-29 2020-07-07 支付宝(杭州)信息技术有限公司 区块链系统的版本升级方法、系统、及装置

Also Published As

Publication number Publication date
CN112162768A (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
CN112162768B (zh) 一种区块链升级方法和系统
Nathan et al. Blockchain meets database: Design and implementation of a blockchain relational database
US11611445B2 (en) Changing smart contracts recorded in block chains
EP3522088B1 (en) Securing blockchain access through a gateway
CN109040029B (zh) 在区块链中执行事务的方法和装置
CN107395353B (zh) 一种区块链共识方法及装置
CN111861482B (zh) 一种区块链对账方法和系统
CN112804349A (zh) 区块链共识网络中处理共识请求的方法、装置和电子设备
WO2019219306A1 (en) Identifying faults in a blockchain ordering service
WO2023279972A1 (zh) 区块链一致性处理方法、区块链节点和区块链系统
CN113505520A (zh) 用于支持异构联邦学习的方法、装置和系统
WO2017007981A1 (en) Action correlation framework
CN114936092A (zh) 在区块链中执行交易的方法及区块链的主节点
CN114564500A (zh) 在区块链系统中实现结构化数据存储和查询的方法和系统
CN111061813B (zh) 用于区块链网络中的数据同步的方法、装置和计算设备
US10812586B2 (en) Method and system for high availability topology for master-slave data systems with low write traffic
CN115390939B (zh) 业务处理方法和系统
CN113592645A (zh) 数据验证的方法和装置
CN113254064B (zh) 一种区块链的api管理方法和系统
CN110837536B (zh) 一种信息处理方法、装置和存储介质
CN114268624B (zh) 版本文件传输方法、装置及服务器
US20220052909A1 (en) Blockchain-based network device management methods and devices
US20230305886A1 (en) Automatic update management in a computing infrastructure
CN116822919A (zh) 业务处理方法、装置、电子设备及存储介质
CN115470031A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40043465

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant