CN117880096A - 区块链配置更新方法、装置、电子设备及可读存储介质 - Google Patents

区块链配置更新方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN117880096A
CN117880096A CN202410270543.9A CN202410270543A CN117880096A CN 117880096 A CN117880096 A CN 117880096A CN 202410270543 A CN202410270543 A CN 202410270543A CN 117880096 A CN117880096 A CN 117880096A
Authority
CN
China
Prior art keywords
epoch
configuration data
blockchain
management system
block
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.)
Granted
Application number
CN202410270543.9A
Other languages
English (en)
Other versions
CN117880096B (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.)
Hangzhou High Tech Zone Binjiang Blockchain And Data Security Research Institute
Original Assignee
Hangzhou High Tech Zone Binjiang Blockchain And Data Security Research Institute
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 Hangzhou High Tech Zone Binjiang Blockchain And Data Security Research Institute filed Critical Hangzhou High Tech Zone Binjiang Blockchain And Data Security Research Institute
Priority to CN202410270543.9A priority Critical patent/CN117880096B/zh
Publication of CN117880096A publication Critical patent/CN117880096A/zh
Application granted granted Critical
Publication of CN117880096B publication Critical patent/CN117880096B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及区块链技术领域,特别涉及一种区块链配置更新方法、装置、电子设备及可读存储介质;该方法包括:获取当前纪元的第一配置数据,并对当前纪元的第一配置数据进行复制,得到下一纪元的所述第一配置数据;调用纪元管理系统合约,对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据;当区块链节点执行完当前纪元的最后一个区块后,调用纪元系统管理合约,切换至所述下一纪元并启用第二配置数据;本申请实施例中区块链节点中通过纪元管理系统合约对链上的配置数据进行复制和修改,可以在不需要区块链节点停机的情况下,通过纪元切换实现对区块链配置数据的更新。

Description

区块链配置更新方法、装置、电子设备及可读存储介质
技术领域
本申请涉及区块链技术领域,特别涉及一种区块链配置更新方法、装置、电子设备及可读存储介质。
背景技术
区块链的配置更新过程往往比较复杂,为了保障区块链网络中节点的变更逻辑一致,且避免区块链网络中的节点硬分叉,大部分区块链的变更过程需要通过所有节点停机,修改配置数据,然后重启节点实现;该实现方式将导致区块链一段时间的不可用。
发明内容
根据本申请的各种实施例,提供一种区块链配置更新方法、装置、电子设备及可读存储介质,可以在不需要停机的情况下实现区块链配置数据的更新。
第一方面,本申请提供了一种区块链配置更新方法,应用于区块链节点,该区块链节点配置有纪元管理系统合约;该方法包括:
获取当前纪元的第一配置数据,并对当前纪元的第一配置数据进行复制,得到下一纪元的第一配置数据;调用纪元管理系统合约,对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据;当区块链节点执行完当前纪元的最后一个区块后,调用纪元系统管理合约,切换至下一纪元并启用第二配置数据。
通过上述方式,区块链节点中通过配置纪元管理系统合约,对链上的配置数据进行复制和修改,可以在不需要区块链节点停机的情况下,在区块链节点执行完当前纪元的最后一个区块后,切换至下一纪元的同时将配置数据切换为下一纪元对应修改后的配置数据,实现对区块链配置数据无停机的更新。
在第一方面的一种可能的实现方式中,在获取当前纪元的第一配置数据之前,该方法还包括:
获取区块链网络的创世配置,创世配置包括所述第一配置数据;调用纪元管理系统合约,将第一配置数据写入当前纪元对应的存储单元;根据创世配置,设置当前纪元的开始区块高度和持续区块数量。
在第一方面的一种可能的实现方式中,在对所述当前纪元的第一配置数据进行复制,得到下一纪元的第一配置数据之后,该方法还包括:
根据当前纪元的开始区块高度和持续区块数量,确定下一纪元的开始区块高度。
在第一方面的一种可能的实现方式中,区块链节点配置有治理系统合约;调用纪元管理系统合约,对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据,包括:
执行基于治理系统合约投票通过的交易,调用纪元管理系统合约,对下一纪元的所述第一配置数据进行修改,得到下一纪元的第二配置数据;该交易为修改配置数据的交易。
在第一方面的一种可能的实现方式中,纪元管理系统合约配置有多签公钥;调用所述纪元管理系统合约,对下一纪元的所述第一配置数据进行修改,得到下一纪元的第二配置数据,包括:
执行基于多签公钥签名的交易,调用纪元管理系统合约,对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据,该交易为修改配置数据的交易。
在第一方面的一种可能的实现方式中,在对下一纪元的所述第一配置数据进行修改,得到下一纪元的第二配置数据之前,该方法还包括:
对调用纪元管理系统合约的用户进行验证,确认用户的调用权限。
在第一方面的一种可能的实现方式中,在调用所述纪元系统管理合约,切换至所述下一纪元并启用所述第二配置数据之后,该方法还包括:
继续对第二配置数据进行复制,并作为纪元切换后的下一纪元的配置数据;根据纪元切换后的当前纪元的开始区块高度和持续区块数量确定纪元切换后的下一纪元的开始区块高度。
在第一方面的一种可能的实现方式中,该方法还包括:
在区块链节点重启时,通过启动账本组件,确定当前纪元对应的最新配置数据;基于最新配置数据,启动区块链节点中除账本组件以外的其他的组件;其中,当前纪元对应的最新配置数据保存在纪元管理系统合约对应的账本组件。
在第一方面的一种可能的实现方式中,该方法还包括:
区块高度落后的区块链节点同步未落后的区块链节点的最新区块高度,在执行完所述当前纪元的最后一个区块时,切换至下一纪元并启用下一纪元的配置数据,直到执行到最新区块高度。
第二方面,本申请提供了一种区块链配置更新装置,应用于区块链节点,所述区块链节点配置有纪元管理系统合约,该装置包括:
获取单元,用于获取当前纪元的第一配置数据,并对所述当前纪元的所述第一配置数据进行复制,得到下一纪元的所述第一配置数据;
修改单元,用于调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据;
更新单元,用于当区块链节点执行完所述当前纪元的最后一个区块后,调用所述纪元系统管理合约,切换至下一纪元并启用第二配置数据。
第三方面,本申请提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。
第五方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的区块链配置更新的架构示意图;
图2为本申请一实施例提供的区块链配置更新方法的流程示意图;
图3为本申请实施例提供的区块链配置更新装置的结构示意图;
图4为本申请实施例提供电子设备的结构示意图。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如 A 和/或 B,可以表示:单独存在 A,同时存在 A 和 B,单独存在 B 这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
区块链配置数据(如共识节点列表、共识参数、节点出块权重等)的变更往往比较复杂,需要保障大部分节点的变更逻辑一致,且需要避免网络中的节点硬分叉,从而大部分区块链的升级需要通过所有节点停机,修改配置数据,然后重启节点实现升级,使得区块链一段时间内不可用。而且在该升级过程中,配置数据的变更不可靠,容易遭受攻击。
其中,在需要增删节点时,一般需要发送一笔特殊的交易,且需要每个节点通过控制私钥签名投票,而该特殊交易的格式可能会导致和一些区块链交易(如以太坊交易)的格式不兼容。一些区块链网络(如以太坊网络)的升级过程,是在代码中硬编码变更后的区块高度对应的配置数据,由于无法保证所有节点的代码都是新的,且无法强制要求所有节点都提前升级节点代码,在实际操作时还是需要在一个时间段停机升级。
基于上述问题,本申请实施例提供了一种区块链配置更新方法,基于区块链节点配置的纪元管理系统合约实现对配置数据的管理,区块链节点通过调用该纪元管理系统合约,对正在使用的配置数据进行复制,以及对复制的配置数据进行修改,在执行完当前纪元的最后一个区块后,继续调用纪元管理系统合约,将原来使用的配置数据更新为修改后的配置数据,从而可以在不需要区块链节点停机的情况下,实现区块链配置的更新。
为了便于本领域技术人员对方案实现原理的理解,先对相关的技术术语进行介绍。
1、纪元(Epoch):一个纪元对应描述相应的区块高度范围(例如区块高度1-100对应纪元1,区块高度101-200对应纪元2);每个纪元对应一个版本的区块链配置数据(例如在纪元1中每个区块对应配置交易数量为300个,在纪元2中每个区块对应配置交易数量为200个);当前执行区块中的交易使用的当前纪元对应版本的配置数据无法变更,只能对下一个纪元对应版本的配置数据进行变更。
2、纪元管理系统合约:用于存储历史纪元、当前纪元以及下一纪元的区块链配置数据,提供方法变更下一纪元的配置数据;不同的纪元对应不同的区块高度范围,在执行区块中的交易时,使用的配置数据从纪元管理系统合约读取,不同纪元的配置数据可能是不同的。
下面通过具体实施例介绍本申请提出的区块链配置更新方法的应用场景。
请参见图1,图1示出了本申请实施例提供区块链配置更新的架构示意图。如图1所示,该区块链网络配置有治理系统合约、多重签名机制以及纪元管理系统合约。其中,纪元管理系统合约用于存储和更新每个纪元对应的区块链配置数据;治理系统合约和多重签名机制分别用于对更新的内容进行共识控制。
示例性的,当前纪元对应的配置数据为区块链节点执行区块中的交易时加载使用的数据,无法进行变更;下一纪元对应的待修改的配置数据为对当前纪元的配置数据进行复制得到的,可以通过调用纪元管理系统合约对其进行修改。区块链节点通过治理系统合约或者多重签名机制发起修改配置数据的交易,进而调用纪元管理系统合约,对下一纪元对应的配置数据进行修改。
如图1所示,每个纪元对应描述一定范围的区块高度,如当前纪元对应的区块高度范围为区块1至区块N,下一纪元对应的区块高度范围为区块N+1至区块2N。区块链节点执行当前纪元对应的区块,例如当前区块k(k≤N),在执行到当前纪元的最后一个区块N后,可以在不停机的情况下,通过调用纪元管理系统合约,由当前纪元切换到下一纪元,并启用下一纪元对应更新后的配置数据,从而可以实现区块链配置不停机的升级。同时基于治理系统合约以及多重签名机制对修改配置数据的交易的共识控制,实现区块链网络的链上配置数据的可信变更。
下面通过实施例,基于上述区块链配置更新的架构,进一步介绍区块链配置更新方法的具体实现过程。
参见图2,本申请实施例提供的区块链配置更新方法的实现流程示意图。该方法可以应用于区块链网络中的区块链节点,如图2所示,该方法可以包括以下步骤:
S201,获取当前纪元的第一配置数据,并对当前纪元的第一配置数据进行复制,得到下一纪元的第一配置数据。
在一些实施例中,区块链节点部署有纪元管理系统合约,纪元管理系统合约用于存储历史纪元、当前纪元以及下一纪元分别对应的区块链配置数据。区块链节点通过纪元标记配置数据的版本,例如当前执行交易使用的初始版本的第一配置数据存储在当前纪元对应的存储单元,该存储单元可以是纪元管理系统合约对应的账本。
示例性的,纪元管理系统合约对应的账本可以包括历史纪元对应的存储单元、当前纪元对应的存储单元以及下一纪元对应的存储单元。区块链节点可以从当前纪元对应的存储单元读取第一配置数据,并复制第一配置数据后保存在下一纪元对应的存储单元;即第一配置数据为区块链节点当前执行当前纪元的区块所使用的配置数据。
需要说明的是,对第一配置数据进行复制的过程,可以是在节点首次启动时读取到当前使用的版本的第一配置数据后执行的动作,也可以是在切换至下一个新的纪元后,区块链配置数据更新到一个新版本,对更新后版本的配置数据再次执行复制保存的动作。为了保证在不停机的情况下实现配置数据的变更,区块链节点在执行区块中的交易时,调用当前纪元对应的配置数据,当前纪元的配置数据保持不变,可以对下一纪元对应复制的配置数据进行变更。
在一些实施例中,在获取当前纪元的第一配置数据之前,该方法还包括:
获取区块链网络的创世配置,创世配置包括所述第一配置数据;调用纪元管理系统合约,将第一配置数据写入当前纪元对应的存储单元;根据创世配置,设置当前纪元的开始区块高度和持续区块数量。
示例性的,创世配置为硬编码在配置文件中的区块链配置数据,区块链网络中的所有区块链节点保持一致;区块链节点首次启动时,根据配置数据生成的第一个区块为创世区块。区块链节点从创世配置中读取第一配置数据,通过调用纪元管理系统合约,将第一配置数据写入当前纪元对应的存储单元,并根据创世配置设置当前纪元对应的区块高度范围。
示例性的,当前纪元对应的区块高度范围包括开始区块高度以及持续区块数量。例如创世配置中配置的开始区块高度为1,当前纪元持续的区块数量为100,则该当前纪元对应的区块高度范围为1-100。
其中,不同的区块链网络对应的开始区块高度可能不同,例如有的开始区块高度从0开始。当前纪元对应的持续区块数量也属于区块链配置数据,在后续的一个纪元对应的持续区块数量也可能不同,例如后续的一个纪元对应的持续区块数量可能为500或1000等,因此该持续区块数量对应的配置数据也需要更改为500或1000。
在一些实施例中,在对当前纪元的第一配置数据进行复制,得到下一纪元的第一配置数据之后,该方法还包括:
根据当前纪元的开始区块高度和持续区块数量,确定下一纪元的开始区块高度。
示例性的,在复制当前纪元的配置数据生成下一纪元的配置数据后,根据当前纪元的区块高度范围计算下一纪元的配置数据对应的开始区块高度,将当前纪元对应的开始区块高度加上持续区块数量得到的区块高度作为下一纪元对应的开始区块高度。例如创世配置里开始区块高度为1 ,第一个纪元的持续区块数量是100,则该第一个纪元的开始区块为1 ,下一个纪元的开始区块等于上一个纪元的开始区块高度1与上一个纪元的持续区块数量100的和 ,也就是下一个纪元的开始区块高度为101。
相应地,下一纪元对应的持续区块数量则可以基于后续变更后的配置数据进行确定,可以与当前纪元的区块数量相同也可以不同。
示例性的,由于区块链节点内的其他组件的运行需要调用纪元对应的配置数据,在区块链节点将读取到的第一配置数据写入当前纪元对应的存储单元后,其他组件读取当前纪元对应的配置数据并进行初始化,读取到需要用到的配置数据,例如交易池组件则需要读取配置数据中的基于多少个交易打包成一个区块的信息。
S202,调用纪元管理系统合约,对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据。
在本申请实施例中,纪元管理系统合约中配置有对下一纪元复制的第一配置数据进行修改的函数,区块链节点在接收到区块链进行配置更新的指令后,可以通过调用纪元管理系统合约,对下一纪元对应的第一配置数据进行修改。具体修改的内容,可以基于配置更新指令进行确定。
示例性的,由于在区块链节点执行区块中的交易过程中需要调用当前纪元对应的配置数据,因此当前纪元对应的配置数据不可更改,仅能对下一纪元复制的配置数据进行修改,从而保证区块链节点的当前运行状态不受影响,在区块链配置升级时也无需停机。
在一些实施例中,区块链节点配置有治理系统合约;调用纪元管理系统合约,对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据,包括:
执行基于治理系统合约投票通过的交易,调用纪元管理系统合约,对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据。
示例性的,区块链节点中配置有治理系统合约,为了确保区块链配置数据的变更是可信的,区块链节点基于治理系统合约对修改配置数据的交易进行投票共识,实现配置的可信变更。
示例性的,区块链网络中的任一个管理员可以发起修改配置数据的提案,例如发送一个交易调用治理系统合约,在大部分管理员基于治理系统合约对该提案投票通过(投票同意该提案的数量达到预设数量阈值)后,区块链节点通过治理系统合约调用纪元管理系统合约,基于调用纪元管理系统合约中修改配置数据的函数,对下一纪元复制的第一配置数据进行修改,得到下一纪元对应修改后的第二配置数据。
示例性的,在修改完成后,将修改后的第二配置数据同步更新到纪元管理系统合约对应的账本中。
在一些实施例中,纪元管理系统合约配置有多签公钥;调用纪元管理系统合约,对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据,包括:
执行基于多签公钥签名的交易,调用纪元管理系统合约,对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据。
示例性的,该基于多签公钥签名的交易为修改配置数据的交易,纪元管理系统合约配置了管理员的公钥,即多签的公钥,通过线下多方一起签名一笔交易,完成交易的共识,将这笔交易传输给区块链,由区块链节点执行该交易,对下一纪元对应复制的第一配置数据进行修改,得到下一纪元对应修改后第二配置数据;并在修改完成后,将修改后的第二配置数据同步更新到纪元管理系统合约对应的账本中。
需要说明的是,本申请仅提供一种可以在不停机的状态下实现区块链配置的变更,上述具体对配置数据进行如何修改此处不做具体说明以及限定,可以通过线下用户或管理员进行协商确定,如基于区块链网络处理交易的负载量进行设定,例如当区块链网络比较繁忙时,需要增大一个区块里的交易数量等。
在一些实施例中,在对下一纪元的第一配置数据进行修改,得到下一纪元的第二配置数据之前,该方法还包括:
对调用纪元管理系统合约的用户进行验证,确认用户的调用权限。
示例性的,区块链节点在执行基于治理系统合约投票通过的交易或者执行基于所述多签公钥签名的交易,调用纪元管理系统合约之前,对调用的用户进行权限验证,验证通过后,则从纪元管理系统合约对应的账本中读取下一纪元对应的配置数据,并对其进行修改,修改完成后更新到纪元管理系统合约对应的账本中。
示例性的,在权限验证过程中,一方面可以针对用户是否为通过治理系统合约的调用确认用户是否有对纪元管理系统合约的权限;例如用户是基于治理系统合约发起的交易,则确认该用户具备调用权限,若为普通用户则调用失败。另一方面,如果是基于多签机制签名生成的交易,则可以校验交易还原出的公钥对应是不是预先配置好的多签地址对应的公钥,若是则确认该用户具备调用权限,若不是则调用失败。其中,该权限验证的过程可以是基于区块链节点部署的虚拟机执行实现。
S203,当区块链节点执行完当前纪元的最后一个区块后,调用纪元系统管理合约,切换至所述下一纪元并启用第二配置数据。
在本申请实施例中,一个纪元对应一个高度范围的区块,每个区块内包括若干数量的交易,区块链节点基于调用到的当前纪元的配置数据,依次执行当前纪元对应的每个区块中的交易。区块链节点通过虚拟机判断当前执行的区块是否为当前纪元的最后一个区块,在区块链节点基于虚拟机执行完当前纪元对应的最后一个区块的交易后,可以调用纪元管理系统合约的纪元切换函数,切换至下一个纪元;并基于纪元管理系统合约从对应的账本中读取当前纪元的第一配置数据和下一纪元的第二配置数据,将第一配置数据写入纪元管理系统合约账本中的历史纪元对应的存储单元,将下一纪元的第二配置数据写入账本中当前纪元对应的存储单元,完成对区块链配置数据的更新。其中,通过将当前纪元的配置数据写入历史纪元对应的存储单元,以便使用区块链的用户查询历史纪元对应的配置数据。
需要说明的是,配置数据的更新包括区块高度范围的同步更新,例如当前纪元的区块高度范围为1-100,下一纪元的区块高度为101-300,则在切换至下一纪元后,配置数据中的区块高度范围更新为101-300。更新完成后,区块链节点调用更新后第二配置数据,执行纪元切换后的当前纪元的区块101至区块300的交易。
在一些实施例中,在调用纪元系统管理合约,切换至下一纪元并启用第二配置数据之后,该方法还包括:
继续对第二配置数据进行复制,并作为纪元切换后的下一纪元待修改的配置数据;根据纪元切换后的当前纪元的开始区块高度和持续区块数量确定纪元切换后的下一纪元的开始区块高度。
示例性的,在切换至下一纪元启用新的配置数据(即完成区块链配置更新)后,继续复制纪元切换后的当前纪元的配置数据,写入相应的下一纪元对应的存储单元,并根据纪元切换后的当前纪元的配置数据中的开始区块高度和持续区块数量计算纪元切换后的下一纪元对应的开始区块高度,将复制的配置数据写入纪元管理系统合约的账本中。
示例性的,在纪元切换结束后,区块链节点的虚拟机进行配置数据的变更,启用切换后的纪元对应的配置数据,然后通知其他组件启用纪元切换后的配置数据。
在一些实施例中,在区块链节点重启时,通过启动账本组件,确定当前纪元对应的最新配置数据;基于该最新配置数据,启动区块链节点中除账本组件以外的其他的组件;其中,当前纪元对应的最新配置数据保存在纪元管理系统合约对应的账本组件。
示例性的,在区块链节点重启时,各个组件可以按顺序重启,在重启其他组件前,优先启动账本组件(即存储纪元管理系统合约数据的组件),从纪元管理系统合约中读取最新区块高度对应的纪元的配置数据,然后使用读取到的纪元的配置数据启动其他组件,从而可以保证区块链节点重启时使用正确的区块链配置数据。
在一些实施例中,区块高度落后的区块链节点同步未落后的区块链节点的最新区块高度,在执行完所述当前纪元的最后一个区块时,切换至下一纪元并启用下一纪元的配置数据,直到执行到所述最新区块高度。
示例性的,在区块链网络中,由于实际应用过程中的运维等情况,会导致网络中的一些节点执行交易的进度处于落后的状态,例如迁移服务器等导致停机了一段时间,使得区块链节点的区块高度落后于区块链网络的当前的最新区块高度;落后的区块链节点可以从其他未落后的区块链节点同步当前的最新区块高度,并在执行区块的过程中,每执行到当前纪元的最后一个区块时,触发纪元切换,更新配置数据,并通知其他组件更新至切换后的纪元的配置数据。在同步过程中,不断进行纪元切换,直到同步至最新的纪元,使得落后的区块链节点的配置数据基于区块同步,实现配置数据的可信更新。
示例性的,在执行区块后,落后的区块链节点的虚拟机判断是否需要更新,比如落后的区块链节点的区块高度为150,当前区块链网络的最新高度为210,区块高度101-200对应一个纪元,区块高度201-300对应一个纪元,落后的区块链节点从区块链网络中未落后的区块链节点请求落后的区块并执行,即依次执行区块151至区块210,由于区块101-200对应一个纪元,因此在执行到200的时候,虚拟机则自动进行纪元切换,切换到区块201-300对应的纪元,再继续使用切换后的纪元的配置数据执行201-210的区块。
通过本申请实施例,区块链节点中通过配置纪元管理系统合约,对链上的配置数据进行复制和修改,可以在不需要区块链节点停机的情况下,在区块链节点执行完当前纪元的最后一个区块后,切换至下一纪元的同时,启用切换后的纪元的配置数据,在不影响其他节点运行的情况下,实现对区块链配置数据的更新;通过对修改配置数据的交易的投票或多重签名进行共识,实现对链上配置数据的可信变更;同时,落后节点可以通过区块同步,同步到最新的纪元epoch对应的配置数据,而不需要人为重启节点变更数据;针对新加入的节点还可以使用账本中基于纪元记录的旧版本的配置数据执行旧的区块,直到基于纪元切换更新到最新纪元对应的配置数据版本。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例提供的区块链配置更新方法,图3示出了本申请实施例提供的区块链配置更新装置的结构示意图,该区块链配置更新装置应用于区块链节点,区块链节点配置有纪元管理系统合约;为了便于说明,仅示出了与本申请实施例相关的部分。
参照图3,该区块链配置更新装置包括:
获取单元31,用于获取当前纪元的第一配置数据,并对所述当前纪元的所述第一配置数据进行复制,得到下一纪元的所述第一配置数据;
修改单元32,用于调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据;
更新单元33,用于当区块链节点执行完所述当前纪元的最后一个区块后,调用所述纪元系统管理合约,切换至所述下一纪元并启用所述第二配置数据。
在一种可能的实现方式中,获取单元31,还用于获取区块链网络的创世配置,所述创世配置包括所述第一配置数据;调用所述纪元管理系统合约,将所述第一配置数据写入所述当前纪元对应的存储单元;根据所述创世配置,设置所述当前纪元的开始区块高度和持续区块数量。
在一种可能的实现方式中,获取单元31,还用于根据所述当前纪元的开始区块高度和持续区块数量,确定所述下一纪元的开始区块高度。
在一种可能的实现方式中,区块链节点配置有治理系统合约;修改单元32,还用于执行基于所述治理系统合约投票通过的交易,调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据;该交易为修改配置数据的交易。
在一种可能的实现方式中,纪元管理系统合约配置有多签公钥;修改单元32,还用于执行基于所述多签公钥签名的交易,调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据;该交易为修改配置数据的交易。
在一种可能的实现方式中,修改单元32,还用于对调用所述纪元管理系统合约的用户进行验证,确认所述用户的调用权限。
在一种可能的实现方式中,获取单元31,还用于继续对所述第二配置数据进行复制,并作为纪元切换后的下一纪元待修改的配置数据;根据纪元切换后的当前纪元的开始区块高度和持续区块数量确定纪元切换后的下一纪元的开始区块高度。
在一种可能的实现方式中,更新单元33,还用于在区块链节点重启时,通过启动账本组件,确定当前纪元对应的最新配置数据;基于所述最新配置数据,启动区块链节点中除账本组件以外的其他的组件;其中,所述当前纪元对应的最新配置数据保存在所述纪元管理系统合约对应的所述账本组件。
在一种可能的实现方式中,更新单元33,还用于区块高度落后的区块链节点同步未落后的区块链节点的最新区块高度,在执行完所述当前纪元的最后一个区块时,切换至所述下一纪元并启用所述下一纪元的配置数据,直到执行到所述最新区块高度。
通过本申请实施例,区块链节点中通过配置纪元管理系统合约,对链上的配置数据进行复制和修改,可以在不需要区块链节点停机的情况下,在区块链节点执行完当前纪元的最后一个区块后,切换至下一纪元的同时,启用切换后的纪元的配置数据,在不影响其他节点运行的情况下,实现对区块链配置数据的更新;通过对修改配置数据的交易的投票或多重签名进行共识,实现对链上配置数据的可信变更;同时,落后节点可以通过区块同步,同步到最新的纪元epoch对应的配置数据,而不需要人为重启节点变更数据。
图4示出了电子设备4的硬件结构示意图。
如图4所示,该实施例的电子设备4包括:至少一个处理器40(图4中仅示出一个)、存储器41,所述存储器41中存储有可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述方法实施例中的步骤,例如图2所示的S201至S203。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能。
可以理解的是,本申请实施例示意的结构并不构成对电子设备4的具体限定。在本申请另一些实施例中,电子设备4可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
该电子设备4可以是区块链节点,例如可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该电子设备4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是电子设备4的示例,并不构成对电子设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如该服务器还可以包括输入发送设备、网络接入设备、总线等。
上述处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
处理器40中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器40中的存储器为高速缓冲存储器。该存储器可以保存处理器40刚用过或循环使用的指令或数据。如果处理器40需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器40的等待时间,因而提高了系统的效率。
上述存储器41在一些实施例中可以是所述电子设备4的内部存储单元,例如电子设备4的硬盘或内存。该存储器41也可以是所述电子设备4的外部存储设备,例如该电子设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,该存储器41还可以既包括该电子设备4的内部存储单元也包括外部存储设备。该存储器41用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。该存储器41还可以用于暂时地存储已经发送或者将要发送的数据。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
需要说明的是,上述电子设备的结构仅示例性说明,基于不同的应用场景,还可以包括其他实体结构,在此不对电子设备的实体结构进行限定。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行时实现可实现上述各个方法实施例中的步骤。
所集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。
上述本申请实施例提供的装置、电子设备、计算机存储介质、计算机程序产品均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文所提供的方法对应的有益效果,在此不再赘述。
应理解,上述只是为了帮助本领域技术人员更好地理解本申请实施例,而非要限制本申请实施例的范围。本领域技术人员根据所给出的上述示例,显然可以进行各种等价的修改或变化,例如,上述检测方法的各个实施例中某些步骤可以是不必须的,或者可以新加入某些步骤等。或者上述任意两种或者任意多种实施例的组合。这样的修改、变化或者组合后的方案也落入本申请实施例的范围内。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
还应理解,本申请实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在不矛盾的情况下可以相结合。
还应理解,在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种区块链配置更新方法,其特征在于,应用于区块链节点,所述区块链节点配置有纪元管理系统合约;所述方法包括:
获取当前纪元的第一配置数据,并对所述当前纪元的所述第一配置数据进行复制,得到下一纪元的所述第一配置数据;
调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据;
当区块链节点执行完所述当前纪元的最后一个区块后,调用所述纪元系统管理合约,切换至所述下一纪元并启用所述第二配置数据。
2.根据权利要求1所述的方法,其特征在于,在所述获取当前纪元的第一配置数据之前,所述方法还包括:
获取区块链网络的创世配置,所述创世配置包括所述第一配置数据;
调用所述纪元管理系统合约,将所述第一配置数据写入所述当前纪元对应的存储单元;
根据所述创世配置,设置所述当前纪元的开始区块高度和持续区块数量。
3.根据权利要求2所述的方法,其特征在于,在所述对所述当前纪元的所述第一配置数据进行复制,得到下一纪元的所述第一配置数据之后,所述方法还包括:
根据所述当前纪元的开始区块高度和持续区块数量,确定所述下一纪元的开始区块高度。
4.根据权利要求1所述的方法,其特征在于,所述区块链节点配置有治理系统合约;所述调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据,包括:
执行基于所述治理系统合约投票通过的交易,调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据;所述交易为修改配置数据的交易。
5.根据权利要求1所述的方法,其特征在于,所述纪元管理系统合约配置有多签公钥;所述调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据,包括:
执行基于所述多签公钥签名的交易,调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据。
6.根据权利要求1所述的方法,其特征在于,在所述对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据之前,所述方法还包括:
对调用所述纪元管理系统合约的用户进行验证,确认所述用户的调用权限。
7.根据权利要求1所述的方法,其特征在于,在所述调用所述纪元系统管理合约,切换至所述下一纪元并启用所述第二配置数据之后,所述方法还包括:
继续对所述第二配置数据进行复制,并作为纪元切换后的下一纪元待修改的配置数据;根据纪元切换后的当前纪元的开始区块高度和持续区块数量确定纪元切换后的下一纪元的开始区块高度。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
在区块链节点重启时,通过启动账本组件,确定当前纪元对应的最新配置数据;
基于所述最新配置数据,启动区块链节点中除账本组件以外的其他的组件;
其中,所述当前纪元对应的最新配置数据保存在所述纪元管理系统合约对应的所述账本组件。
9.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
区块高度落后的区块链节点同步未落后的区块链节点的最新区块高度,在执行完所述当前纪元的最后一个区块时,切换至所述下一纪元并启用所述下一纪元的配置数据,直到执行到所述最新区块高度。
10.一种区块链配置更新装置,其特征在于,应用于区块链节点,所述区块链节点配置有纪元管理系统合约,所述装置包括:
获取单元,用于获取当前纪元的第一配置数据,并对所述当前纪元的所述第一配置数据进行复制,得到下一纪元的所述第一配置数据;
修改单元,用于调用所述纪元管理系统合约,对所述下一纪元的所述第一配置数据进行修改,得到所述下一纪元的第二配置数据;
更新单元,用于当区块链节点执行完所述当前纪元的最后一个区块后,调用所述纪元系统管理合约,切换至所述下一纪元并启用所述第二配置数据。
11.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法。
CN202410270543.9A 2024-03-11 2024-03-11 区块链配置更新方法、装置、电子设备及可读存储介质 Active CN117880096B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410270543.9A CN117880096B (zh) 2024-03-11 2024-03-11 区块链配置更新方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410270543.9A CN117880096B (zh) 2024-03-11 2024-03-11 区块链配置更新方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN117880096A true CN117880096A (zh) 2024-04-12
CN117880096B CN117880096B (zh) 2024-05-17

Family

ID=90579527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410270543.9A Active CN117880096B (zh) 2024-03-11 2024-03-11 区块链配置更新方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117880096B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108683539A (zh) * 2018-05-21 2018-10-19 腾讯科技(深圳)有限公司 区块链网络的管理方法、装置、介质及电子设备
CN109995848A (zh) * 2019-02-21 2019-07-09 同方股份有限公司 一种基于区块链和智能合约的系统配置数据管理方法
WO2021196741A1 (zh) * 2020-04-01 2021-10-07 杭州溪塔科技有限公司 区块链上不依赖智能合约的系统配置的管理方法和装置
CN114020296A (zh) * 2021-11-05 2022-02-08 平安养老保险股份有限公司 配置信息更新方法、装置、设备及可读存储介质
CN115941691A (zh) * 2023-03-09 2023-04-07 中国信息通信研究院 区块链上数据修改方法、装置、设备和介质
KR20230060363A (ko) * 2021-10-27 2023-05-04 한국전력공사 외부자의 참여가 가능한 폐쇄망 블록체인 시스템 및 폐쇄망 블록체인 시스템에서 외부 참여인의 업무 처리 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108683539A (zh) * 2018-05-21 2018-10-19 腾讯科技(深圳)有限公司 区块链网络的管理方法、装置、介质及电子设备
CN109995848A (zh) * 2019-02-21 2019-07-09 同方股份有限公司 一种基于区块链和智能合约的系统配置数据管理方法
WO2021196741A1 (zh) * 2020-04-01 2021-10-07 杭州溪塔科技有限公司 区块链上不依赖智能合约的系统配置的管理方法和装置
KR20230060363A (ko) * 2021-10-27 2023-05-04 한국전력공사 외부자의 참여가 가능한 폐쇄망 블록체인 시스템 및 폐쇄망 블록체인 시스템에서 외부 참여인의 업무 처리 방법
CN114020296A (zh) * 2021-11-05 2022-02-08 平安养老保险股份有限公司 配置信息更新方法、装置、设备及可读存储介质
CN115941691A (zh) * 2023-03-09 2023-04-07 中国信息通信研究院 区块链上数据修改方法、装置、设备和介质

Also Published As

Publication number Publication date
CN117880096B (zh) 2024-05-17

Similar Documents

Publication Publication Date Title
CN110430087B (zh) 区块链热升级的架构设计与实现
CN110661658B (zh) 一种区块链网络的节点管理方法、装置及计算机存储介质
WO2019062703A1 (zh) 升级方法、嵌入式系统
KR20100066576A (ko) 펌웨어 이미지 갱신 및 관리
CN111240732B (zh) 分布式微服务的发布方法、装置、设备及存储介质
WO2022111097A1 (zh) 一种文件更新方法及装置、设备、存储介质
CN109857423B (zh) 程序版本更新方法、装置、服务器及可读存储介质
CN110162429B (zh) 系统修复方法、服务器及存储介质
CN110597918A (zh) 一种账户管理方法、装置及计算机可读存储介质
CN111679893A (zh) 运行系统构建方法、装置、电子设备及存储介质
WO2023065788A1 (zh) 升级区块链系统的方法、装置及终端设备
CN111352706B (zh) 一种数据访问方法、装置、设备及存储介质
CN102880478B (zh) 软件更新方法
CN115329321A (zh) 一种固件的启动方法、芯片及计算设备
WO2024109540A1 (zh) 芯片电路、处理器的启动方法及服务器
CN111221553A (zh) 一种固件升级的方法及装置
CN117880096B (zh) 区块链配置更新方法、装置、电子设备及可读存储介质
WO2024124912A1 (zh) 冗余固件的数据同步方法、装置及非易失性可读存储介质
US11520891B1 (en) Secure boot of an integrated circuit
WO2017000586A1 (zh) 虚拟网元的升级方法、装置和计算机存储介质
CN111353150B (zh) 一种可信启动方法、装置、电子设备及可读存储介质
CN114675902A (zh) 基于嵌入式设备的软件版本的管理方法与管理装置
JP2846047B2 (ja) シャドウプロセス生成方式
CN115878587A (zh) 实例创建方法、装置、电子设备及可读存储介质
CN111125001A (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