CN110427385B - 区块链数据更新方法、相关节点及区块链 - Google Patents
区块链数据更新方法、相关节点及区块链 Download PDFInfo
- Publication number
- CN110427385B CN110427385B CN201910710786.9A CN201910710786A CN110427385B CN 110427385 B CN110427385 B CN 110427385B CN 201910710786 A CN201910710786 A CN 201910710786A CN 110427385 B CN110427385 B CN 110427385B
- Authority
- CN
- China
- Prior art keywords
- update
- data
- blockchain
- updating
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种区块链数据更新方法、相关节点及区块链,方法包括:接收针对处于运行状态的区块链的包含有待更新的目标运行数据的数据更新指令;判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行数据更新指令,若是,将目标运行数据发送至自身对应的区块链应用节点,区块链应用节点中包含有更新代理进程且该区块链应用节点为区块链中的节点;控制更新代理进程在区块链应用节点应用目标运行数据对该区块链应用节点中对应的运行数据进行更新。本申请能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及区块链数据更新方法、相关节点及区块链。
背景技术
区块链是一种分布式账本技术,具有去中心化、不可篡改、可溯源等特性。在应用的实际运营中,不可避免地发生区块链应用程序本身的修改,以及区块链应用内智能合约的修改。为描述方便,我们称前者为应用程序更新,后者为智能合约更新。
由于区块链技术本身在不断的发展过程中,区块链应用的应用架构是会随着技术的发展不断调整的,如引入了新型的加密算法,或者引入了新的共识算法等。但是,当前的应用程序的更新会导致区块链应用服务的停机,影响了应用的可持续服务的能力。
另一方面,建立在区块链应用上的智能合约,作为业务逻辑处理的核心代码,也会随着业务的发展有所变更,以便能适应业务的发展改变。智能合约的修改,涉及区块链应用链上所有的用户,需要所有用户达成业务共识才能生效。这就要求有智能合约变更的确认生效机制。而当前的情况是,联盟链上的智能合约变更,在业务达成共识后,智能合约的部署和生效,也是需要停机。这也是影响区块链应用可持续服务能力的重要因素。因为智能合约的变更相比应用程序的变更更为频繁,智能合约的变更对区块链应用的可持续服务能力的影响更大。
因此,当前的区块链应用的停机更新过程通常称之为线下部署,这是因为更新过程涉及到链上多个节点的同步操作,更多的依赖人工进行协调操作,这不仅耗费了巨大的人力资源,且在实时同步处理的效率和准确性方面也是不高。
发明内容
针对现有技术中的问题,本申请提供一种区块链数据更新方法、相关节点及区块链,能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种第一区块链数据更新方法,包括:
接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据;
判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点;
控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新。
进一步地,所述目标运行数据包括:针对所述区块链的待更新的程序文件和/或智能合约。
进一步地,所述区块链更新服务网络中的各个更新服务节点与所述区块链中的各个区块链应用节点之间为一一对应的关系。
进一步地,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制;
相对应的,所述判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,包括:
应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
进一步地,所述控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新,包括:
在所述区块链应用节点处于运行状态的情形下,控制所述更新代理进程在该区块链应用节点中对所述目标运行数据进行存储及更新;
以及,控制所述更新代理进程应用更新后的所述目标运行数据替换所述区块链应用节点中对应的原版本的运行数据,以及将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
第二方面,本申请提供一种第二区块链数据更新方法,包括:
应用本地的更新代理进程接收对应的更新服务节点发送的针对处于运行状态的区块链的待更新的目标运行数据,其中,该目标运行数据由所述更新服务节点在判定其所在的区块链更新服务网络中的全部的更新服务节点均已确认执行所述数据更新指令之后发出;
接收所述更新服务节点发送的针对所述更新代理进程的控制指令;
在自身处于运行状态的情形下,根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新。
进一步地,所述目标运行数据包括:针对所述区块链的待更新的程序文件和/或智能合约。
进一步地,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,以使各个所述更新服务节点应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
进一步地,所述控制指令包括:更新控制指令和切换控制指令;
相对应的,所述根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新,包括:
根据所述更新控制指令,应用所述更新代理进程在本地对所述目标运行数据进行存储及更新;
基于所述切换控制指令,应用所述更新代理进程应用更新后的所述目标运行数据替换本地对应的原版本的运行数据;
以及,应用所述更新代理进程将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
第三方面,本申请提供一种更新服务节点,包括:
数据传输模块,用于接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据;
共识模块,用于判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点;
控制模块,用于控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新。
进一步地,所述目标运行数据包括:针对所述区块链的待更新的程序文件和/或智能合约。
进一步地,所述区块链更新服务网络中的各个更新服务节点与所述区块链中的各个区块链应用节点之间为一一对应的关系。
进一步地,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制;
相对应的,所述共识模块具体用于执行下述内容:
应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
进一步地,所述控制模块包括:
更新控制单元,用于在所述区块链应用节点处于运行状态的情形下,控制所述更新代理进程在该区块链应用节点中对所述目标运行数据进行存储及更新;
切换控制单元,用于控制所述更新代理进程应用更新后的所述目标运行数据替换所述区块链应用节点中对应的原版本的运行数据,以及将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
第四方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的第一区块链数据更新方法的步骤。
第五方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的第一区块链数据更新方法的步骤。
第六方面,本申请提供一种区块链应用节点,包括:
更新数据接收模块,用于应用本地的更新代理进程接收对应的更新服务节点发送的针对处于运行状态的区块链的待更新的目标运行数据,其中,该目标运行数据由所述更新服务节点在判定其所在的区块链更新服务网络中的全部的更新服务节点均已确认执行所述数据更新指令之后发出;
控制指令接收模块,用于接收所述更新服务节点发送的针对所述更新代理进程的控制指令;
控制指令执行模块,用于在自身处于运行状态的情形下,根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新。
进一步地,所述目标运行数据包括:针对所述区块链的待更新的程序文件和/或智能合约。
进一步地,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,以使各个所述更新服务节点应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
进一步地,所述控制指令包括:更新控制指令和切换控制指令;
相对应的,所述控制指令执行模块,用于包括:
更新控制指令执行单元,用于根据所述更新控制指令,应用所述更新代理进程在本地对所述目标运行数据进行存储及更新;
切换控制指令执行单元,用于基于所述切换控制指令,应用所述更新代理进程应用更新后的所述目标运行数据替换本地对应的原版本的运行数据;
转发地址和端口切换单元,用于应用所述更新代理进程将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
第七方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的第二区块链数据更新方法的步骤。
第八方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的第二区块链数据更新方法的步骤。
第九方面,本申请提供一种区块链,包括:多个所述的更新服务节点;
各个所述更新服务节点分别对应至少一个所述的区块链应用节点,且各个所述更新服务节点组成对应有相同的共识机制的所述区块链更新服务网络;
各个所述区块链应用节点中均设有对应的所述更新代理进程。
由上述技术方案可知,本申请提供的区块链数据更新方法、相关节点及区块链,其中的方法包括:接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据;判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点;控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新,能够实现建立在底层服务之上的区块链应用程序和智能合约的自动同步更新和生效,可切实提升区块链应用的可持续服务能力,大大降低人工间的协调成本,提高操作精度,能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的区块链的总体结构布局的架构示意图。
图2为本申请实施例中的区块链应用更新服务中各节点之间的逻辑关系示意图。
图3为本申请实施例中的第一区块链数据更新方法的流程示意图。
图4为本申请实施例中的第一区块链数据更新方法中的步骤130的流程示意图。
图5为本申请实施例中的更新服务节点的结构示意图。
图6为本申请具体应用实例中的更新服务节点的结构示意图。
图7为本申请实施例中的第二区块链数据更新方法的流程示意图。
图8为本申请实施例中的第二区块链数据更新方法中的步骤230的流程示意图。
图9为本申请实施例中的区块链应用节点的结构示意图。
图10为本申请具体应用实例中的区块链应用节点更新过程中,其内部各个进程间的交互关系示意图。
图11为本申请具体应用实例中的应用所述区块链应用节点更新服务节点实现所述区块链数据更新方法的流程示意图。
图12为本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的一个或多个实施例中,区块链是一种分布式账本技术,具有去中心化、不可篡改、可溯源等特性。区块链智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,通常以特定代码的形式存在。区块链应用如果支持智能合约,则可以根据条件自动触发某些逻辑代码的运行。根据区块链的这些技术特性构造的区块链应用,在多个领域广泛应用,构建了可信及相互协作的关系。
但在应用的实际运营中,不可避免地发生区块链应用程序本身的修改,以及区块链应用内智能合约的修改。为描述方便,我们称前者为应用程序更新,后者为智能合约更新。
由于区块链技术本身在不断的发展过程中,区块链应用的应用架构是会随着技术的发展不断调整的,如引入了新型的加密算法,或者引入了新的共识算法等。但是,当前的应用程序的更新会导致区块链应用服务的停机,影响了应用的可持续服务的能力。
另一方面,建立在区块链应用上的智能合约,作为业务逻辑处理的核心代码,也会随着业务的发展有所变更,以便能适应业务的发展改变。智能合约的修改,涉及区块链应用链上所有的用户,需要所有用户达成业务共识才能生效。这就要求有智能合约变更的确认生效机制。而当前的情况是,联盟链上的智能合约变更,在业务达成共识后,智能合约的部署和生效,也是需要停机。这也是影响区块链应用可持续服务能力的重要因素。因为智能合约的变更相比应用程序的变更更为频繁,智能合约的变更对区块链应用的可持续服务能力的影响更大。
当前的区块链应用的停机更新过程通常称之为线下部署,这是因为更新过程涉及到链上多个节点的同步操作,更多的依赖人工进行协调操作,这不仅耗费了巨大的人力资源,且在实时同步处理的效率和准确性方面也是不高。
为解决区块链应用程序和智能合约的更新问题,本申请提出一种区块链应用程序和智能和合约的更新方法,作为区块链应用的底层服务。实现建立在这个底层服务之上的区块链应用程序和智能合约的自动同步更新和生效。
本申请可切实提升区块链应用的可持续服务能力,大大降低人工间的协调成本,提高操作精度。
考虑到上述内容,本申请提供一种区块链数据更新方法、更新服务节点、区块链应用节点、电子设备、计算机可读存储介质和区块链,其基本思路是:使用区块链技术建立一个更新机制,实现其上层区块链应用的版本更新和智能合约的版本更新。具体而言就是区块链更新服务通过建立新版本的区块链服务节点,使用IP转发进程保证区块链节点在物理布局上IP地址结构稳定,但对内可以切换至不同的进程提供区块链节点服务,由此实现了区块链应用版本的更新与瞬间切换。通过接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据;判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点;其中,所述区块链更新服务网络中的各个更新服务节点与所述区块链中的各个区块链应用节点之间为一一对应的关系;控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新,使用区块链技术建立一个更新机制,实现其上层区块链应用的版本更新和智能合约的版本更新。具体而言就是区块链更新服务通过建立新版本的区块链服务节点,使用IP转发进程保证区块链节点在物理布局上IP地址结构稳定,但对内可以切换至不同的进程提供区块链节点服务,由此实现了区块链应用版本的更新与瞬间切换,能够实现建立在底层服务之上的区块链应用程序和智能合约的自动同步更新和生效,可切实提升区块链应用的可持续服务能力,大大降低人工间的协调成本,提高操作精度,能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性。
基于上述内容,本申请提供一种区块链的总体结构布局,参见图1,区块链更新服务自身是一个区块链应用。区块链更新服务以联盟链方式构建,由多个更新服务节点通过网络连接构成。
(1)更新服务节点101:
更新服务节点是指图1中所有标记为U的节点。区块链更新服务中由若干个这样节点组成,共同构造如图1中由多个节点构成的区块链更新服务链。
(2)区块链应用节点102:
区块链更新服务用于更新区块链应用程序文件和智能合约。
其中的标记为BA的节点都是区块链应用节点102。多个这样的节点通过网络连接构成了区块链应用。
由多个区块链应用节点构成的区块链应用103:所标示的环是指代由多个节点构成的区块链网络应用服务。
由多个节点构成的区块链更新服务104:所标示的环是指代由多个更新服务节点构成的区块链更新服务区块链网络应用。
客户端105:用于区块链应用的运维人员发起操控区块链应用的程序更新或智能合约版本更新。
其中,更新服务节点101和区块链服务节点102以网络连通,可以通过网络将文件和数据从更新服务节点101传送给区块链服务节点102,同时控制区块链服务节点的更新和版本切换操作。区块链应用的节点和区块链更新服务的节点可以在同一个机器上,也可以在同一个物理节点的不同的机器上。
图2描述了区块链应用更新服务中各节点之间的逻辑关系。具体包含有:更新服务客户端201、网络连接202、区块链更新服务节点203、更新服务进程204、区块链应用服务节点205、IP转发进程206、区块链节点服务旧版进程207、区块链节点服务新版进程208、更新代理进程209和网络连接210。
各部分功能如下:
(1)更新服务客户端201:
负责发起更新指令,设置版本更新条件,以及版本切换条件,提交上传需要更新的程序文件或智能合约。
(2)网络连接202:
负责连接更新服务客户端201与区块链更新服务节点203,建立新版区块链应用程序和智能合约的上传能力。
(3)区块链更新服务节点203:
提供更新服务对客户端的响应,并根据客户端的指令要求,控制整个更新过程。
(4)更新服务进程204:
区块链更新服务本身是一个使用区块链技术构建的区块链应用。该区块链更新服务由多个这样的节点构成,在更新服务链中达成共识后,启动更新过程,操控版本更新和版本切换过程,直至使用新版区块链应用对外服务。
(5)区块链应用服务节点205:
区块链应用节点,运行区块链应用节点服务。由多个这样的节点通过网络连接,共同构成区块链应用服务网络。
(6)IP转发进程206:
负责IP转发服务,保证区块链应用的节点对外配置的IP地址和端口保持不变。版本切换前,IP转发进程为区块链节点服务旧版进程207提供转发服务;版本切换后,转而为区块链节点服务新版进程208提供转发服务。
(7)区块链节点服务旧版进程207:
负责版本切换前提供区块链应用节点的对外服务。
(8)区块链节点服务新版进程208:
该进程负责提供区块链应用新版本的服务。在更新服务进程204的控制下,通过更新代理进程209控制下,编译新版智能合约,加载新版区块链应用程序,完成初始化,构建一个新版本的区块链节点服务进程。当更新完成后,此进程成为区块链应用节点的当前服务进程。
(9)更新代理进程209:
负责在区块链应用节点中,进行程序文件和智能合约更新,驱动新版智能合约的编译,加载区块链应用新版进程执行初始化操作,使之成为区块链应用服务节点的新版进程。
(10)网络连接210:
负责连接区块链更新服务节点203与区块链应用服务节点205,建立数据传送能力,以便更新服务进程204可以通过网络连接,操控更新代理进程209的行为。
为了能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性,本申请提供一种执行主体为前述的更新服务节点的第一区块链数据更新方法的实施例,参见图3,所述第一区块链数据更新方法具体包含有如下内容:
步骤110:接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据。
可以理解的是,所述目标运行数据具体包含有:针对所述区块链的待更新的程序文件和/或智能合约。
步骤120:判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点。
可以理解的是,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,对应的,所述步骤120具体包含有:
应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
其中,所述区块链更新服务网络中的各个更新服务节点可以分别对应至少一个所述区块链应用节点,也就是说,为了有效节省更新成本,可以设置较少的更新服务节点,使得可以存在一个更新服务节点用于控制多个区块链应用节点进行更新的情形,而在本申请的一种优选的方式中,为了能够有效保证数据更新的效率、可靠性及准确性,所述区块链更新服务网络中的各个更新服务节点与所述区块链中的各个区块链应用节点之间还可以为一一对应的关系,也就是每个所述更新服务节点唯一对应一个区块链应用节点。
步骤130:控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新。
具体来说,参见图4,所述步骤130具体包含有:
步骤131:在所述区块链应用节点处于运行状态的情形下,控制所述更新代理进程在该区块链应用节点中对所述目标运行数据进行存储及更新。
步骤132:控制所述更新代理进程应用更新后的所述目标运行数据替换所述区块链应用节点中对应的原版本的运行数据,以及将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
基于上述内容,从软件层面来说,为了能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性,本申请提供一种用于实现前述的第一区块链数据更新方法的全部或部分内容的更新服务节点,参见图5,该更新服务节点具体包含有如下内容:
数据传输模块402,用于接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据。
共识模块403,用于判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点。
控制模块13,用于控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新。
可以理解的是,所述目标运行数据具体包含有:针对所述区块链的待更新的程序文件和/或智能合约。
所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制;
相对应的,所述共识模块403具体用于执行下述内容:
应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
所述控制模块13具体包含有:
更新控制单元,用于在所述区块链应用节点处于运行状态的情形下,控制所述更新代理进程在该区块链应用节点中对所述目标运行数据进行存储及更新;
切换控制单元,用于控制所述更新代理进程应用更新后的所述目标运行数据替换所述区块链应用节点中对应的原版本的运行数据,以及将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
为进一步说明本方案,本申请还提供一种更新服务节点的具体应用实例,参见图6,所述更新服务节点具体包含有如下内容:
所述更新服务节点由四个模块组成,包括:数据传输模块402、共识模块403、更新控制模块404和切换控制模块405。
各模块作用如下:
(1)数据传输模块402:
该模块主要是相应更新服务客户端的更新请求,传输新版的程序文件或新版的智能合约。通过连接更新服务代理进程,实现新版程序文件或智能合约在区块链节点中的存储。
(2)共识模块403:
该模块主要功能是利用区块链技术建立的共识机制,确保区块链更新服务的各个节点在达成共识后执行程序文件或智能合约的更新。
(3)更新控制模块404:
该模块主要功能是利用区块链技术建立的共识机制,确保区块链更新服务的各个节点在达成共识后,执行区块链程序文件更新。版本更新过程是该模块连接更新服务代理进程具体实现。
(4)切换控制模块405:
该模块主要功能是利用区块链技术建立的共识机制,确保区块链更新服务的各个节点在达成共识后,执行区块链应用版本切换。版本切换过程是该模块连接更新服务代理进程具体实现。
为了能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性,本申请提供一种执行主体为前述的区块链应用节点的第二区块链数据更新方法的实施例,参见图7,所述第二区块链数据更新方法具体包含有如下内容:
步骤210:应用本地的更新代理进程接收对应的更新服务节点发送的针对处于运行状态的区块链的待更新的目标运行数据,其中,该目标运行数据由所述更新服务节点在判定其所在的区块链更新服务网络中的全部的更新服务节点均已确认执行所述数据更新指令之后发出。
可以理解的是,所述目标运行数据具体包含有:针对所述区块链的待更新的程序文件和/或智能合约。
可以理解的是,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,以使各个所述更新服务节点应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
步骤220:接收所述更新服务节点发送的针对所述更新代理进程的控制指令。
可以理解的是,所述控制指令具体包含有:更新控制指令和切换控制指令;
步骤230:在自身处于运行状态的情形下,根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新。
具体来说,参见图8,所步骤230具体包含有:
步骤231:根据所述更新控制指令,应用所述更新代理进程在本地对所述目标运行数据进行存储及更新。
步骤232:基于所述切换控制指令,应用所述更新代理进程应用更新后的所述目标运行数据替换本地对应的原版本的运行数据。
步骤233:应用所述更新代理进程将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
基于上述内容,从软件层面来说,为了能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性,本申请提供一种用于实现前述的第二区块链数据更新方法的全部或部分内容的区块链应用节点,参见图9,该区块链应用节点具体包含有如下内容:
更新数据接收模块21,用于应用本地的更新代理进程接收对应的更新服务节点发送的针对处于运行状态的区块链的待更新的目标运行数据,其中,该目标运行数据由所述更新服务节点在判定其所在的区块链更新服务网络中的全部的更新服务节点均已确认执行所述数据更新指令之后发出。
控制指令接收模块22,用于接收所述更新服务节点发送的针对所述更新代理进程的控制指令。
控制指令执行模块23,用于在自身处于运行状态的情形下,根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新。
可以理解的是,所述目标运行数据具体包含有:针对所述区块链的待更新的程序文件和/或智能合约。
所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,以使各个所述更新服务节点应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
所述控制指令具体包含有:更新控制指令和切换控制指令;
相对应的,所述控制指令执行模块,用于具体包含有:
更新控制指令执行单元,用于根据所述更新控制指令,应用所述更新代理进程在本地对所述目标运行数据进行存储及更新;
切换控制指令执行单元,用于基于所述切换控制指令,应用所述更新代理进程应用更新后的所述目标运行数据替换本地对应的原版本的运行数据;
转发地址和端口切换单元,用于应用所述更新代理进程将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
为了进一步说明本方案,本申请还提供一种区块链应用节点的具体应用实例,参见图10,所述区块链应用节点具体包含有如下内容:
图10说明了一个区块链应用节点更新过程中,其内部各个进程间的交互关系。在区块链应用的节点版本更新的过程中,至少具体包含有四个进程,具体包含有:IP转发进程302、区块链应用旧版进程303、区块链应用新版进程308、更新代理进程311。这些进程可以在一个物理机器中,也可以分散在区块链节点上不同的物理机器中。
(1)区块链应用节点:
是构成区块链应用中,一个参与共识的节点。
(2)IP转发进程302:
该进程用于建立与其他区块链节点的连接。该进程对外节点的IP地址端口配置是固定不变的。对内转发的IP地址端口则是可变的。对内转发的IP地址端口,在更新完成前为区块链应用旧版进程303提供IP转发,更新完成后为308所示的区块链新版进程提供IP转发。
(3)区块链应用旧版进程303:
该进程在切换至新版本完成前,负责对外提供区块链节点服务。
(4)区块链应用旧版进程程序目录304:
区块链旧版服务进程从此目录加载。
(5)区块链应用旧版智能合约目录305:
区块链旧版服务进程编译此目录的智能合约,从此目录加载旧版的智能合约。
(6)旧版进程业务数据目录306:
区块链旧版服务进程从此目录读写业务数据。
(7)新版进程业务数据目录307:
区块链新版服务进程从此目录读写业务数据。
(8)区块链应用新版进程308:
该进程在更新完成后提供区块链节点服务。
(9)区块链应用新版程序目录309:
区块链新版服务进程从此目录加载。
(10)区块链应用新版智能合约目录310:
区块链新版服务进程编译此目录的智能合约,从此目录加载旧版的智能合约。
(11)更新代理进程311:
该进程是区块链应用节点中实施更新的核心进程。该进程负责接收外接收存储传入的新版区块链应用程序和智能合约。并控区块链应用更新进程的更新操作和版本切换操作。该进程负责加载区块链应用新版进程,执行新版区块链节点服务的初始化和新版智能合约的编译。在区块链程序文件和智能合约更新结束后,执行版本切换。更新代理进程负责指示IP转发进程修改转发地址和端口,为区块链应用新版进程的IP地址和端口,并注销区块链应用旧版进程,让区块链应用新版进程作为区块链应用的服务当前服务进程。由此完成整个更新过程。
基于上述内容,本申请还提供一种应用所述区块链应用节点更新服务节点实现所述区块链数据更新方法的具体应用实例,如图11中所示,该图描述了发生在区块链服务节点中的更新过程,具体描述如下:
(1)旧版进程运行中:
在当未发生更新或未完成更新时,区块链应用旧版服务进程负责提供区块链应用节点服务。该进程处于运行中状态。
(2)旧版进程提供转发服务:
在当未完成更新时,IP转发进程的对内IP地址和端口指向区块链应用旧版服务进程,为该进程提供IP转发服务。
(3)启动更新:
此过程如下:
客户端发起了版本更新,由更新服务进程使用数据传输模块进行响应,由客户端连接的区块链更新服务节点收存新版程序文件或智能合约文件。
更新服务进程通过共识模块,使得更新服务区块链中所有节点达成共识机制后,启动更新过程,将更新服务链上的响应更新服务客户端的节点上新版程序文件或智能合约同步给更新服务链中的所有节点。
区块链更新服务进程通过更新控制模块,建立与更新代理进程的连接,并通过该代理,在区块链应用节点内启动区块链应用的更新过程。
(4)智能合约编译部署:
区块链更新服务进程通过更新控制模块,操控更新代理进程启动新版智能合约的编译部署过程。
(5)加载初始化:
在新版智能合约编译部署完成后,执行新版区块链服务进程初始化过程。该进程被加载后,从新版程序目录中加载程序文件,构建新版区块链应用服务节点数据,保持与旧版区块链服务进程读写的数据内容同步一致。
(6)完成新版进程加载:
在更新代理进程完成新版进程加载后,该进程通知更新控制模块。在更新服务进程,根据更新服务客户端的指示,可以在特定条件或时间启动版本切换。
(7)启动版本切换:
当需要更新时,更新服务节点,通过区块链共识机制,在更新服务链中所有节点达成共识后,启动版本切换过程。由更新服务进程控制更新代理进程执行版本切换。
(8)指示IP切换:
当执行版本更新服务进程使用切换控制模块,通过更新代理进程,驱动IP转发进程变更转发的区块链服务节点的地址和端口,为区块链应用新版进程提供IP转发服务。
(9)切换转发IP:
IP转发进程在更新代理进程的控制下,完成IP转发变更,将IP转发的区块链服务节点的地址和端口设置为区块链应用新版进程的地址和端口。
(10)当完成IP切换后,区块链应用已经完成了版本切换工作。区块链应用新版服务进程成为当前区块链节点当前的服务进程。
(11)更新代理进程获知IP转发进程完成了IP切换后,直接终止旧版进程,避免旧版进程占用资源。
(12)当更新代理进程杀死区块链应用旧版服务进程后,版本切换工作结束。
本申请所提出区块链数据更新方法,利用IP转发机制和区块链技术共识同步机制,建立了区块链应用的版本更新机制。该机制能够支持区块链应用所有节点的区块链程序或区块链智能合约的同步更新。由于采用区块链技术实现区块链应用中各节点IP转发地址和端口的同步瞬间切换,实现区块链应用程序或区块链应用智能合约的瞬间升级,无需停机,大大提高了区块链应用的可持续服务能力,为实现区块链24乘7模式的服务,提供了技术解决方案。
同时,通过本文提供的技术,可以进一步拓展实现区块链应用的灰度发布和版本回滚。为加强区块链应用的健壮性提供了技术手段。
从硬件层面来说,为了能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性,本申请提供一种用于实现所述第一区块链数据更新方法或第二区块链数据更新方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现更新服务节点、区块链应用节点、各类数据库以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例中的区块链数据更新方法的实施例,以及,更新服务节点和区块链应用节点的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图12为本申请实施例的电子设备9600的系统构成的示意框图。如图12所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图12是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,区块链数据更新功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤110:接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据。
可以理解的是,所述目标运行数据具体包含有:针对所述区块链的待更新的程序文件和/或智能合约。
步骤120:判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点。
可以理解的是,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,对应的,所述步骤120具体包含有:
应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
步骤130:控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新。
另一实施例中,区块链数据更新功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤210:应用本地的更新代理进程接收对应的更新服务节点发送的针对处于运行状态的区块链的待更新的目标运行数据,其中,该目标运行数据由所述更新服务节点在判定其所在的区块链更新服务网络中的全部的更新服务节点均已确认执行所述数据更新指令之后发出。
可以理解的是,所述目标运行数据具体包含有:针对所述区块链的待更新的程序文件和/或智能合约。
可以理解的是,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,以使各个所述更新服务节点应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
步骤220:接收所述更新服务节点发送的针对所述更新代理进程的控制指令。
可以理解的是,所述控制指令具体包含有:更新控制指令和切换控制指令;
步骤230:在自身处于运行状态的情形下,根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新。
从上述描述可知,本申请实施例提供的电子设备,能够实现建立在底层服务之上的区块链应用程序和智能合约的自动同步更新和生效,可切实提升区块链应用的可持续服务能力,大大降低人工间的协调成本,提高操作精度,能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性。
在另一个实施方式中,区块链数据更新装置可以与中央处理器9100分开配置,例如可以将区块链数据更新配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现区块链数据更新功能。
如图12所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图12中所示的所有部件;此外,电子设备9600还可以包括图12中没有示出的部件,可以参考现有技术。
如图12所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的区块链数据更新方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为更新服务节点的第一区块链数据更新方法或执行主体为区块链应用节点的第二区块链数据更新方法的全部步骤;
例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤110:接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据。
可以理解的是,所述目标运行数据具体包含有:针对所述区块链的待更新的程序文件和/或智能合约。
步骤120:判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点。
可以理解的是,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,对应的,所述步骤120具体包含有:
应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
步骤130:控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新。
还例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤210:应用本地的更新代理进程接收对应的更新服务节点发送的针对处于运行状态的区块链的待更新的目标运行数据,其中,该目标运行数据由所述更新服务节点在判定其所在的区块链更新服务网络中的全部的更新服务节点均已确认执行所述数据更新指令之后发出。
可以理解的是,所述目标运行数据具体包含有:针对所述区块链的待更新的程序文件和/或智能合约。
可以理解的是,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,以使各个所述更新服务节点应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
步骤220:接收所述更新服务节点发送的针对所述更新代理进程的控制指令。
可以理解的是,所述控制指令具体包含有:更新控制指令和切换控制指令;
步骤230:在自身处于运行状态的情形下,根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够实现建立在底层服务之上的区块链应用程序和智能合约的自动同步更新和生效,可切实提升区块链应用的可持续服务能力,大大降低人工间的协调成本,提高操作精度,能够在不影响区块链应用节点的正常运行的情况下,自动完成对区块链的程序文件或智能合约的同步更新,且更新过程高效且可靠,并能够有效提高更新结果的准确性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (20)
1.一种区块链数据更新方法,其特征在于,包括:
接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据;
判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点;
控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新;其中,所述更新代理进程在所述区块链应用节点中进行程序文件和智能合约更新,并驱动新版智能合约编译,加载区块链应用新版进程执行初始化操作后成为所述区块链应用节点的新版进程;
其中,所述控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新,包括:在所述区块链应用节点处于运行状态的情形下,控制所述更新代理进程在该区块链应用节点中对所述目标运行数据进行存储及更新;以及,控制所述更新代理进程应用更新后的所述目标运行数据替换所述区块链应用节点中对应的原版本的运行数据,以及将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
2.根据权利要求1所述的区块链数据更新方法,其特征在于,所述目标运行数据包括:针对所述区块链的待更新的程序文件和/或智能合约。
3.根据权利要求1所述的区块链数据更新方法,其特征在于,所述区块链更新服务网络中的各个更新服务节点与所述区块链中的各个区块链应用节点之间为一一对应的关系。
4.根据权利要求1所述的区块链数据更新方法,其特征在于,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制;
相对应的,所述判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,包括:
应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
5.一种区块链数据更新方法,其特征在于,包括:
应用本地的更新代理进程接收对应的更新服务节点发送的针对处于运行状态的区块链的待更新的目标运行数据,其中,该目标运行数据由所述更新服务节点在判定其所在的区块链更新服务网络中的全部的更新服务节点均已确认执行数据更新指令之后发出;
接收所述更新服务节点发送的针对所述更新代理进程的控制指令;
在自身处于运行状态的情形下,根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新;其中,所述更新代理进程在所述区块链应用节点中进行程序文件和智能合约更新,并驱动新版智能合约编译,加载区块链应用新版进程执行初始化操作后成为所述区块链应用节点的新版进程;
其中,所述控制指令包括:更新控制指令和切换控制指令;相对应的,所述根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新,包括:根据所述更新控制指令,应用所述更新代理进程在本地对所述目标运行数据进行存储及更新;基于所述切换控制指令,应用所述更新代理进程应用更新后的所述目标运行数据替换本地对应的原版本的运行数据;以及,应用所述更新代理进程将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
6.根据权利要求5所述的区块链数据更新方法,其特征在于,所述目标运行数据包括:针对所述区块链的待更新的程序文件和/或智能合约。
7.根据权利要求5所述的区块链数据更新方法,其特征在于,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,以使各个所述更新服务节点应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
8.一种更新服务节点,其特征在于,包括:
数据传输模块,用于接收针对处于运行状态的区块链的数据更新指令,其中,该数据更新指令中包含有待更新的目标运行数据;
共识模块,用于判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令,若是,则将所述目标运行数据发送至自身对应的区块链应用节点,其中,所述区块链应用节点中包含有更新代理进程且该区块链应用节点为所述区块链中的节点;
控制模块,用于控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新;其中,所述更新代理进程在所述区块链应用节点中进行程序文件和智能合约更新,并驱动新版智能合约编译,加载区块链应用新版进程执行初始化操作后成为所述区块链应用节点的新版进程;
其中,所述控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新,包括:在所述区块链应用节点处于运行状态的情形下,控制所述更新代理进程在该区块链应用节点中对所述目标运行数据进行存储及更新;以及,控制所述更新代理进程应用更新后的所述目标运行数据替换所述区块链应用节点中对应的原版本的运行数据,以及将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
9.根据权利要求8所述的更新服务节点,其特征在于,所述目标运行数据包括:针对所述区块链的待更新的程序文件和/或智能合约。
10.根据权利要求8所述的更新服务节点,其特征在于,所述区块链更新服务网络中的各个更新服务节点与所述区块链中的各个区块链应用节点之间为一一对应的关系。
11.根据权利要求8所述的更新服务节点,其特征在于,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制;
相对应的,所述共识模块具体用于执行下述内容:
应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
12.根据权利要求8所述的更新服务节点,其特征在于,所述控制模块包括:
更新控制单元,用于在所述区块链应用节点处于运行状态的情形下,控制所述更新代理进程在该区块链应用节点中对所述目标运行数据进行存储及更新;
切换控制单元,用于控制所述更新代理进程应用更新后的所述目标运行数据替换所述区块链应用节点中对应的原版本的运行数据,以及将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
13.一种电子设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的区块链数据更新方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4任一项所述的区块链数据更新方法的步骤。
15.一种区块链应用节点,其特征在于,包括:
更新数据接收模块,用于应用本地的更新代理进程接收对应的更新服务节点发送的针对处于运行状态的区块链的待更新的目标运行数据,其中,该目标运行数据由所述更新服务节点在判定其所在的区块链更新服务网络中的全部的更新服务节点均已确认执行数据更新指令之后发出;
控制指令接收模块,用于接收所述更新服务节点发送的针对所述更新代理进程的控制指令;
控制指令执行模块,用于在自身处于运行状态的情形下,根据该控制指令应用所述更新代理进程基于所述目标运行数据对自身对应的运行数据进行更新;其中,所述更新代理进程在所述区块链应用节点中进行程序文件和智能合约更新,并驱动新版智能合约编译,加载区块链应用新版进程执行初始化操作后成为所述区块链应用节点的新版进程;
其中,所述控制指令包括:更新控制指令和切换控制指令;相对应的,所述控制指令执行模块,用于包括:更新控制指令执行单元,用于根据所述更新控制指令,应用所述更新代理进程在本地对所述目标运行数据进行存储及更新;切换控制指令执行单元,用于基于所述切换控制指令,应用所述更新代理进程应用更新后的所述目标运行数据替换本地对应的原版本的运行数据;转发地址和端口切换单元,用于应用所述更新代理进程将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
16.根据权利要求15所述的区块链应用节点,其特征在于,所述目标运行数据包括:针对所述区块链的待更新的程序文件和/或智能合约。
17.根据权利要求15所述的区块链应用节点,其特征在于,所述区块链更新服务网络中的各个更新服务节点均对应有相同的共识机制,以使各个所述更新服务节点应用所述共识机制判断自身与属于同一区块链更新服务网络中的其他更新服务节点是否均已确认执行所述数据更新指令。
18.一种电子设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求5至7任一项所述的区块链数据更新方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求5至7任一项所述的区块链数据更新方法的步骤。
20.一种区块链系统,其特征在于,包括:多个如权利要求8至12任一项所述的更新服务节点;
各个所述更新服务节点分别对应至少一个如权利要求15至17任一项所述的区块链应用节点,且各个所述更新服务节点组成对应有相同的共识机制的所述区块链更新服务网络;
各个所述区块链应用节点中均设有对应的所述更新代理进程;其中,所述更新代理进程在所述区块链应用节点中进行程序文件和智能合约更新,并驱动新版智能合约编译,加载区块链应用新版进程执行初始化操作后成为所述区块链应用节点的新版进程;
其中,所述控制所述更新代理进程在所述区块链应用节点处于运行状态的情形下,应用所述目标运行数据对该区块链应用节点中对应的运行数据进行更新,包括:在所述区块链应用节点处于运行状态的情形下,控制所述更新代理进程在该区块链应用节点中对所述目标运行数据进行存储及更新;以及,控制所述更新代理进程应用更新后的所述目标运行数据替换所述区块链应用节点中对应的原版本的运行数据,以及将所述原版本的运行数据的转发地址和端口分别对应替换为所述目标运行数据的转发地址和端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910710786.9A CN110427385B (zh) | 2019-08-02 | 2019-08-02 | 区块链数据更新方法、相关节点及区块链 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910710786.9A CN110427385B (zh) | 2019-08-02 | 2019-08-02 | 区块链数据更新方法、相关节点及区块链 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110427385A CN110427385A (zh) | 2019-11-08 |
CN110427385B true CN110427385B (zh) | 2022-06-10 |
Family
ID=68413774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910710786.9A Active CN110427385B (zh) | 2019-08-02 | 2019-08-02 | 区块链数据更新方法、相关节点及区块链 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427385B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855791B (zh) * | 2019-11-18 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 一种区块链节点部署方法及相关设备 |
CN111046055A (zh) * | 2019-12-11 | 2020-04-21 | 杭州趣链科技有限公司 | 一种区块链全局配置的变更方法、设备和存储介质 |
CN113312362A (zh) * | 2020-02-26 | 2021-08-27 | 百度在线网络技术(北京)有限公司 | 区块链的数据修改方法、装置、设备和存储介质 |
CN111400328A (zh) * | 2020-03-12 | 2020-07-10 | 北京阿尔山金融科技有限公司 | 数据更新方法、装置及节点服务器 |
CN111639127B (zh) * | 2020-05-11 | 2022-05-13 | 支付宝实验室(新加坡)有限公司 | 一种智能合约的更新方法、系统、装置及设备 |
CN111984271B (zh) * | 2020-08-27 | 2023-11-03 | 京东科技信息技术有限公司 | 一种区块链应用程序处理方法、装置及区块链应用系统 |
CN112241436A (zh) * | 2020-10-26 | 2021-01-19 | 云账户技术(天津)有限公司 | 一种区块链网络的切换方法及装置 |
CN112528321A (zh) * | 2020-12-09 | 2021-03-19 | 苏州市星际云通区块链科技有限公司 | 一种区块链服务装置和区块链服务系统及通信方法 |
CN113852698B (zh) * | 2021-12-01 | 2022-02-08 | 湖南宸瀚信息科技有限责任公司 | 一种群组协同的区块链数据同步系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833398A (zh) * | 2018-06-08 | 2018-11-16 | 浙江超脑时空科技有限公司 | 一种区块链智能合约更新方法、装置及设备 |
CN108881312A (zh) * | 2018-08-24 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 智能合约升级方法、系统和相关设备以及存储介质 |
CN108958787A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块链系统升级方法、装置、设备及存储介质 |
CN109559229A (zh) * | 2018-11-30 | 2019-04-02 | 众安信息技术服务有限公司 | 基于区块链的更新智能合约组的方法 |
CN109978477A (zh) * | 2017-12-27 | 2019-07-05 | 现代财富控股有限公司 | 基于区块链的智能合约版本控管系统及其方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055703B2 (en) * | 2017-06-19 | 2021-07-06 | Hitachi, Ltd. | Smart contract lifecycle management |
-
2019
- 2019-08-02 CN CN201910710786.9A patent/CN110427385B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109978477A (zh) * | 2017-12-27 | 2019-07-05 | 现代财富控股有限公司 | 基于区块链的智能合约版本控管系统及其方法 |
CN108833398A (zh) * | 2018-06-08 | 2018-11-16 | 浙江超脑时空科技有限公司 | 一种区块链智能合约更新方法、装置及设备 |
CN108958787A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块链系统升级方法、装置、设备及存储介质 |
CN108881312A (zh) * | 2018-08-24 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 智能合约升级方法、系统和相关设备以及存储介质 |
CN109559229A (zh) * | 2018-11-30 | 2019-04-02 | 众安信息技术服务有限公司 | 基于区块链的更新智能合约组的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110427385A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427385B (zh) | 区块链数据更新方法、相关节点及区块链 | |
EP2456257B1 (en) | Method and system for upgrading wireless data card | |
CN106843933A (zh) | 一种应用程序的漏洞修复方法、移动终端及补丁服务器 | |
CN111813601B (zh) | 有状态分布式集群的微服务回滚方法及装置 | |
CN103164244A (zh) | 一种基于通用可扩展固件接口的固件系统远程更新方法 | |
CN105578310A (zh) | 基于websocket协议的智能电视遥控方法及装置 | |
CN102770850A (zh) | 用于与主设备通信的令牌,对应的通信系统和方法 | |
CN105491081A (zh) | 移动智能终端下转发应用内流量的方法 | |
JP2005242691A (ja) | プログラムダウンロード及び切替え方法及びその装置 | |
CN101035337B (zh) | 减少移动通信终端的引导时间的方法 | |
WO2021114933A1 (zh) | 模型联合训练方法及装置 | |
CN105683917A (zh) | 通信装置、通信系统、通信方法和通信程序 | |
CN112181580A (zh) | 应用主题切换方法、装置及系统 | |
CN113760611B (zh) | 系统站点切换方法、装置、电子设备及存储介质 | |
CN112069154A (zh) | etcd分布式数据库自动运维方法及相关装置 | |
US20080184078A1 (en) | Manipulating a configuration file for a network switch | |
JP2006252531A (ja) | 電子決済方法およびそのための移動通信端末機 | |
CN106161086A (zh) | 主控板重启的控制方法及装置 | |
CN103237050A (zh) | 智能语音交互方法和系统 | |
CN100525208C (zh) | 一种数据同步方法 | |
CN106792206A (zh) | 一种电视菜单自适应更新方法及系统 | |
CN113452776B (zh) | PaaS平台服务调度方法、装置及PaaS平台 | |
CN113473063B (zh) | 一种智能手表兼容多套视频通话sdk的方法及装置 | |
CN112650623B (zh) | 业务系统切换过程中的数据处理方法及装置 | |
CN113377385A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |