一种验证节点更新方法、装置及设备
技术领域
本申请涉及区块链技术领域,特别涉及一种验证节点更新方法、装置、设备、可读存储介质及计算机程序产品。
背景技术
现有的多链同构系统一般包括:中心服务器以及多个链,每个链中包括多个节点。
通常情况下,可以利用中心服务器存储各个链上的验证节点信息,当需要使用某个链上的验证节点信息验证交易时,可以在中心服务器中查询相关信息。但由于中心服务器只存储各个链上当前使用的验证节点信息,导致验证节点信息记录不全面且无法追溯。而当需要使用某条链上的历史验证节点信息验证该条链发起的跨链交易时,将会由于查询不到相应的验证节点信息,而导致跨链交易无法验证。
发明内容
本申请的主要目的在于提供一种验证节点更新方法、装置、设备、可读存储介质及计算机程序产品,旨在解决现有多链同构系统中验证节点信息不全面,导致跨链交易无法验证的技术问题。
为实现上述目的,本申请提供了一种验证节点更新方法,应用于多链同构系统中的中心服务器,包括:
发送验证节点信息的更新请求至多链同构系统中的目标链;
获取目标链返回的更新信息,以及更新信息对应的区块高度;
将更新信息和区块高度存储至目标链对应的目标集合;
其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;
区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度;
目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
优选地,将更新信息和区块高度存储至目标链对应的目标集合,包括:
建立更新信息和区块高度之间的关联关系;
将关联关系,更新信息和区块高度存储至目标集合。
优选地,将关联关系,更新信息和区块高度存储至目标集合之后,还包括:
从目标集合中获取前次更新信息,以及前次更新信息对应的前次区块高度;
根据前次区块高度和区块高度确定前次更新信息对应的区块高度范围;
将前次区块高度更新为区块高度范围。
优选地,获取目标链返回的更新信息,以及更新信息对应的区块高度,包括:
按照预设周期查询区块;
若查询到区块,则从区块中获取更新信息和区块高度。
优选地,从区块中获取更新信息和区块高度,包括:
从区块中获取更新信息、区块高度、以及打包区块时的验证信息;
根据验证信息判断更新信息是否合法;
若是,则执行将更新信息和区块高度存储至目标链对应的目标集合的步骤。
为实现上述目的,本申请进一步提供了一种验证节点更新装置,应用于多链同构系统中的中心服务器,包括:
发送模块,用于发送验证节点信息的更新请求至多链同构系统中的目标链;
获取模块,用于获取目标链返回的更新信息,以及更新信息对应的区块高度;其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度;
存储模块,用于将更新信息和区块高度存储至目标链对应的目标集合;目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
为实现上述目的,本申请进一步提供了一种验证节点更新方法,应用于多链同构系统中的目标链,包括:
接收中心服务器发送的验证节点信息的更新请求;
根据更新请求更新验证节点,获得更新信息,以及更新信息对应的区块高度;
将更新信息和区块高度返回至中心服务器,以使中心服务器将更新信息和区块高度存储至目标链对应的目标集合;
其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;
区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度;
目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
优选地,接收中心服务器发送的验证节点信息的更新请求,包括:
接收中心服务器发送的更新请求,以及目标账户对更新请求的签名;目标账户设置于目标链中的任意节点;
对签名进行校验;若校验通过,则执行根据更新请求更新验证节点的步骤。
优选地,根据更新请求更新验证节点,获得更新信息,以及更新信息对应的区块高度,包括:
将更新请求加入交易池;
若交易池中的验证节点验证更新请求通过,则将更新请求打包为区块,获得更新信息和区块高度。
优选地,还包括:
发送跨链交易至多链同构系统中的其他链,以使其他链根据跨链交易在目标链中的目标区块高度,在中心服务器中查询跨链交易对应的更新信息;并利用查询到的更新信息对跨链交易进行验证,若验证通过,则将跨链交易打包为区块。
优选地,其他链根据跨链交易在目标链中的目标区块高度,在中心服务器中查询跨链交易对应的更新信息,包括:
确定跨链交易在目标链中的目标区块高度;
在中心服务器中查询目标区块高度对应的更新信息;
将查询到的更新信息确定为跨链交易对应的更新信息。
优选地,其他链在中心服务器中查询目标区块高度对应的更新信息,包括:
在中心服务器中查询目标链对应的目标集合;
从目标集合中获取目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度;
将获取到的区块高度作为对象区块高度,并确定小于目标区块高度的对象区块高度;
分别计算每个对象区块高度与目标区块高度的差异值;
将最小差异值对应的对象区块高度确定为目的区块高度;
将目的区块高度对应的更新信息确定为目标区块高度对应的更新信息。
为实现上述目的,本申请进一步提供了一种验证节点更新装置,应用于多链同构系统中的目标链,包括:
接收模块,用于接收中心服务器发送的验证节点信息的更新请求;
更新模块,用于根据更新请求更新验证节点,获得更新信息,以及更新信息对应的区块高度;其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度;
返回模块,用于将更新信息和区块高度返回至中心服务器,以使中心服务器将更新信息和区块高度存储至目标链对应的目标集合;目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
为实现上述目的,本申请进一步提供了一种验证节点更新设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的验证节点更新方法。
为实现上述目的,本申请进一步提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的验证节点更新方法。
为实现上述目的,本申请进一步提供了一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机可以执行前述公开的验证节点更新方法。
通过以上方案可知,本申请提供了一种应用于多链同构系统中的中心服务器的验证节点更新方法,包括:发送验证节点信息的更新请求至多链同构系统中的目标链;获取目标链返回的更新信息,以及更新信息对应的区块高度;将更新信息和区块高度存储至目标链对应的目标集合;其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度;目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
本申请还提供了一种应用于多链同构系统中的目标链的验证节点更新方法,包括:接收中心服务器发送的验证节点信息的更新请求;根据更新请求更新验证节点,获得更新信息,以及更新信息对应的区块高度;将更新信息和区块高度返回至中心服务器,以使中心服务器将更新信息和区块高度存储至目标链对应的目标集合;其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度;目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
可见,本申请中的中心服务器都存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度,提高了验证节点信息的全面性和可追溯性。也就是每次目标链中的验证节点更新时,在中心服务器都会存储一份相应的验证节点信息,并且,还会存储当前验证节点信息对应的区块高度。如此一来,当需要使用目标链上的验证节点信息验证目标链发起的跨链交易时,便可以将当前跨链交易在目标链中的区块高度与中心服务器中存储的各个区块高度进行对比,便可查询到该跨链交易在目标链中打包时参与验证的节点有哪些,从而查询到相应的验证节点信息。这样其他链便可利用查询到的验证节点信息对跨链交易进行验证,从而解决了跨链交易无法验证的技术问题。
相应地,本申请提供的一种验证节点更新装置、设备、可读存储介质及计算机程序产品,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的第一种验证节点更新方法流程图;
图2为图1中S102步骤的细化流程图;
图3为图1中S103步骤的细化流程图;
图4为图3中S302步骤后续步骤流程图,或图1中S103步骤的后续步骤流程图;
图5为本申请公开的第一种验证节点更新装置示意图;
图6为本申请公开的第二种验证节点更新方法流程图;
图7为图6中S602步骤的细化流程图;
图8为本申请公开的一种跨链交易验证方法流程图;
图9为图8中S802步骤的细化流程图;
图10为图9中S902步骤的细化流程图;
图11为本申请公开的一种验证节点更新以及跨链交易验证示意图;
图12为本申请公开的第二种验证节点更新装置示意图;
图13为本申请公开的一种验证节点更新设备示意图;
图14为本申请公开的另一种验证节点更新设备示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
参见图1,图1为本申请公开的第一种验证节点更新方法流程图。在一实施例中,该方法应用于多链同构系统中的中心服务器,包括:
S101、发送验证节点信息的更新请求至多链同构系统中的目标链。
S102、获取目标链返回的更新信息,以及更新信息对应的区块高度。
其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度。
S103、将更新信息和区块高度存储至目标链对应的目标集合。
其中,目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
需要说明的是,中心服务器中存储的验证节点信息可以包括:各个验证节点的公钥、IP地址、端口等信息。其中,各个验证节点的公钥可用于跨链交易的验证。
举例来说,中心服务器向目标链发送的更新请求可以是交易的形式,目标链收到该交易后,对交易进行验证(验证人节点对交易进行投票,超过预定比例的验证人节点投票通过,则目标链对该交易达成共识),验证通过则目标链向中心服务器返回更新信息。
本实施例中的中心服务器存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度,提高了验证节点信息的全面性和可追溯性。也就是每次目标链中的验证节点更新时,在中心服务器都会存储一份相应的验证节点信息,并且,还会存储当前验证节点信息对应的区块高度。
如此一来,当需要使用目标链上的验证节点信息验证目标链发起的跨链交易时,便可以将当前跨链交易在目标链中的区块高度与中心服务器中存储的各个区块高度进行对比,便可查询到该跨链交易在目标链中打包时参与验证的节点有哪些,从而查询到相应的验证节点信息。这样其他链便可利用查询到的验证节点信息对跨链交易进行验证,从而解决了跨链交易无法验证的技术问题。
请参见图2,图2为图1中S102步骤的细化流程图。图1中S102的具体实现步骤包括:
S201、按照预设周期查询区块;
S202、判断是否查询到区块;若是,则执行S203;若否,则执行S201;
S203、从区块中获取更新信息、区块高度、以及打包区块时的验证信息;
S204、根据验证信息判断更新信息是否合法;若是,则执行S205;若否,则执行S206;
S205、将更新信息和区块高度存储至目标链对应的目标集合;
S206、发送更新信息异常的消息至目标链。
可以理解的是,打包区块时的验证信息即为目标链根据更新请求更新验证节点时打包的区块的验证信息(目标链中验证人节点对交易的投票信息)。当然,可以从区块中只获取更新信息和区块高度,然后直接存储更新信息和区块高度,获取验证信息可以进一步保障更新信息的安全性,避免虚假或恶意更新信息。
请参见图3,图3为图1中S103步骤的细化流程图。图1中的S103的具体实现步骤包括:
S301、建立更新信息和区块高度之间的关联关系。
S302、将关联关系,更新信息和区块高度存储至目标集合。
可以理解的是,中心服务器中设有每个链对应的集合,此集合用于存储各个链中的验证节点的历次更新信息和相应的区块高度。建立更新信息和区块高度之间的关联关系,可保障更新信息和区块高度的有序性,避免信息混乱。
请参见图4,图4为图3中S302步骤后续步骤流程图,或图1中S103步骤的后续步骤流程图,具体包括:
S401、从目标集合中获取前次更新信息,以及前次更新信息对应的前次区块高度;
S402、根据前次区块高度和区块高度确定前次更新信息对应的区块高度范围;
S403、将前次区块高度更新为区块高度范围。
在本实施例中,为了便于确定每次更新信息对应的区块高度,当更新一次验证节点后,可以为前次更新信息确定相应的区块高度。
例如:若本次验证节点更新时,目标链中的区块高度为9,那么目标链根据更新请求更新验证节点时打包的区块的高度即为10,当前在中心服务器存储的区块高度也就是10。假设目标链中的验证节点在区块高度0、10、20、30……进行更新,也就是说目标链中的区块高度0对应第一验证节点信息(区块高度0对应的第一验证节点信息为目标链中的初始化验证节点信息),区块高度10对应第二验证节点信息,区块高度20对应第三验证节点信息,其他以此类推。那么可以确定区块高度10以前,也就是0~9区块对应的验证节点信息均相同,均为前次更新信息(本次为目标链中验证节点的首次更新),那么前次更新信息对应的区块高度范围即为0~9。
当遇到目标链发起的跨链交易,且跨链交易在目标链中的区块高度属于0~9时,该跨链交易对应的验证节点信息即为所述前次更新信息。若区块高度10以后,不再更新目标链中的验证节点,那么目标链中的任意大于10的区块高度对应的验证节点信息即为本次更新信息。
由上可见,本实施例中的中心服务器存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度,提高了验证节点信息的全面性和可追溯性。也就是每次目标链中的验证节点更新时,在中心服务器都会存储一份相应的验证节点信息,并且,还会存储当前验证节点信息对应的区块高度。如此一来,当需要使用目标链上的验证节点信息验证目标链发起的跨链交易时,便可以将当前跨链交易在目标链中的区块高度与中心服务器中存储的各个区块高度进行对比,便可查询到该跨链交易在目标链中打包时参与验证的节点有哪些,从而查询到相应的验证节点信息。这样其他链便可利用查询到的验证节点信息对跨链交易进行验证,从而解决了跨链交易无法验证的技术问题。
下面对本申请实施例提供的第一种验证节点更新装置进行介绍,下文描述的第一种验证节点更新装置与上文描述的第一种验证节点更新方法可以相互参照。
参见图5,图5为本申请公开的一种验证节点更新装置示意图。在二实施例中,该装置应用于多链同构系统中的中心服务器,包括:
发送模块501,用于发送验证节点信息的更新请求至多链同构系统中的目标链;
获取模块502,用于获取目标链返回的更新信息,以及更新信息对应的区块高度;其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度;
存储模块503,用于将更新信息和区块高度存储至目标链对应的目标集合;目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
在一种具体实施方式中,存储模块包括:
建立单元,用于建立更新信息和区块高度之间的关联关系;
存储单元,用于将关联关系,更新信息和区块高度存储至目标集合。
在一种具体实施方式中,还包括:
历史信息获取模块,用于从目标集合中获取前次更新信息,以及前次更新信息对应的前次区块高度;
确定模块,用于根据前次区块高度和区块高度确定前次更新信息对应的区块高度范围;
更新模块,用于将前次区块高度更新为区块高度范围。
在一种具体实施方式中,获取模块包括:
查询单元,用于按照预设周期查询区块;
获取单元,用于若查询到区块,则从区块中获取更新信息和区块高度。
在一种具体实施方式中,获取单元包括:
获取子单元,用于从区块中获取更新信息、区块高度、以及打包区块时的验证信息;
判断子单元,用于根据验证信息判断更新信息是否合法;
执行子单元,用于若更新信息合法,则执行存储模块中的步骤。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种验证节点更新装置,该装置能够提高验证节点信息的全面性和可追溯性,解决跨链交易无法验证的技术问题。
参见图6,图6为本申请公开的第二种验证节点更新方法流程图。在三实施例中,该方法应用于多链同构系统中的目标链,包括:
S601、接收中心服务器发送的验证节点信息的更新请求。
S602、根据更新请求更新验证节点,获得更新信息,以及更新信息对应的区块高度。
其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度。
S603、将更新信息和区块高度返回至中心服务器,以使中心服务器将更新信息和区块高度存储至目标链对应的目标集合。
其中,目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
在一种具体的实施方式中,接收中心服务器发送的验证节点信息的更新请求,包括:接收中心服务器发送的更新请求,以及目标账户对更新请求的签名;目标账户设置于目标链中的任意节点;对签名进行校验;若校验通过,则执行根据更新请求更新验证节点的步骤。其中,目标账户可以为多个,也就是更新请求的签名为多重签名,目标账户为目标链中的任意节点上的超级管理账户,具有高度的可信性。
请参见图7,图7为图6中S602步骤的细化流程图。图6中S602的具体实现步骤包括:
S701、将更新请求加入交易池;
S702、若交易池中的验证节点验证更新请求通过,则将更新请求打包为区块,获得更新信息和区块高度。
需要说明的是,对更新请求进行验证的验证节点是更新前的验证节点,因为此过程为验证节点的更新过程,实质上验证节点还未完成更新。当将更新请求打包为区块后,即表明目标链中的验证节点更新完成,那么此时的更新信息即为更新后的验证节点信息。
在本实施例中,还包括跨链交易验证步骤,具体包括:目标链发送跨链交易至多链同构系统中的其他链,以使其他链根据跨链交易在目标链中的目标区块高度,在中心服务器中查询跨链交易对应的更新信息;并利用查询到的更新信息对跨链交易进行验证,若验证通过,则将跨链交易打包为区块。
请参见图8,本实施例还提供了一种跨链交易验证方法,应用于多链同构系统中除目标链以外的其他链,包括:
S801、接收目标链发送的跨链交易;
S802、根据跨链交易在目标链中的目标区块高度,在中心服务器中查询跨链交易对应的更新信息;
S803、利用查询到的更新信息对跨链交易进行验证,若验证通过,则将跨链交易打包为区块。
其中,其他链对目标链发送的跨链交易进行验证,其目的是验证目标链中的验证节点对当前交易的验证是否正确或合法。又由于目标链中的验证节点对当前交易的验证一般为签名,那么其他链就需要对该签名的合法性进行验证。
又由于中心服务器中存储的验证节点信息可以包括:各个验证节点的公钥、IP地址、端口等信息。其中,各个验证节点的公钥可用于跨链交易的验证,因此利用查询到的更新信息对跨链交易进行验证的具体实现步骤包括:其他链从跨链交易的签名中提取出各个验证节点的公钥,然后判断提取到的公钥和在中心服务器查询到的公钥是否一致;若是,则表明跨链交易验证通过;若否,则表明跨链交易验证未通过。
具体的,目标链中的验证节点对跨链交易可以采用椭圆曲线加密方法进行签名。
请参见图9,图9为图8中S802步骤的细化流程图。图8中S802的具体实现步骤包括:
S901、确定跨链交易在目标链中的目标区块高度;
S902、在中心服务器中查询目标区块高度对应的更新信息;
S903、将查询到的更新信息确定为跨链交易对应的更新信息。
请参见图10,图10为图9中S902步骤的细化流程图。图9中S902的具体实现步骤包括:
S1001、在中心服务器中查询目标链对应的目标集合;
S1002、从目标集合中获取目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度;
S1003、将获取到的区块高度作为对象区块高度,并确定小于目标区块高度的对象区块高度;
S1004、分别计算每个对象区块高度与目标区块高度的差异值;
S1005、将最小差异值对应的对象区块高度确定为目的区块高度;
S1006、将目的区块高度对应的更新信息确定为目标区块高度对应的更新信息。
可以理解的是,当目标链中的验证节点更新后,比当前区块高度大的区块的验证均由更新后的验证节点进行验证。若目标链中的验证节点再次更新,那么为了确定某一交易对应的区块高度,可按照图10所示的流程进行确定。首先确定某一交易在目标链中的区块高度,进而在目标集合中确定比当前交易区块高度小的区块高度,这样可确定在该交易之前,验证人信息都在哪个区块高度上更新过;进一步地,再从这些比当前交易区块高度小的区块高度中确定与当交易区块高度差异最小的区块高度,此区块高度对应的验证节点即为当前交易在目标链中打包时的验证节点。
例如:目标链中的验证节点分别在区块高度10、20、30更新过,也就是10、20、30分别为历次更新信息对应的区块高度。假设某一交易在目标链中的区块高度为23,那么先确定比23小的区块高度,结果为10和20;进一步地,分别计算10和23的差值,以及20和23的差值,获得差值13和3,由此可确定3对应的23为目的区块高度,即而目的区块高度23对应的更新信息(即验证节点)为打包该交易时的验证节点。
本实施例提供的方案可参见图11,在图11中,zoneA和zoneB分别表示多链同构系统中的两个链A和B;更新验证人交易可看作上文所述的验证节点信息的更新请求;验证人公钥信息可看作上文所述的更新信息,也就是验证节点信息。验证人也就是验证节点。
图11所示的流程可概括为:中心服务器发送更新验证人交易至zoneA,并定时查询该交易是否入块,若已入块,则获取更新验证人交易入块信息,也就是获取更新后的验证节点信息和相应区块高度。当zoneA发送跨链交易至zoneB,那么zoneB便可以基于该跨链交易在zoneA中的区块高度,从中心服务器获取对应高度的验证人公钥信息,从而利用获取到的信息完成该跨链交易的验证过程。
图11所示的具体步骤包括:
中心服务器构建更新验证人的交易,此交易可以由一个或者多个指定的管理账户进行签名,然后发送到ZoneA。ZoneA上节点收到更新验证人的交易后,校验交易合法性,如果合法则加入到交易池,由矿工节点负责打包入块。本实施例中的交易入块、共识可参考现有技术的区块链相关技术,此处不再赘述。
中心服务器定时向ZoneA上节点查询更新验证人的交易是否已经入块。如果已经入块,则ZoneA上节点将更新验证人交易入块的投票信息和区块高度返回给中心服务器。其中,通过投票信息可以检验此交易是否真的由所有的验证人达成了2/3共识投票,同时中心服务器会将ZoneA返回的区块高度和更新的验证人信息保存到本地DB。
假设ZoneA有一笔跨链交易要发给ZoneB,为了保证交易的有效性,跨链交易会在ZoneA由所有的验证人进行交易合法性校验并且在某个区块高度达成共识,形成至少2/3的投票信息。
ZoneB收到ZoneA的跨链交易后,需要校验Z oneA跨链交易里的投票信息是否合法,所以需要从中心服务器获取ZoneA对应高度的验证人公钥信息。
中心服务器返回ZoneA对应高度的验证人公钥信息给ZoneB,ZoneB收到信息后就可以对跨链交易进行验证。
其中,通过指定的管理账户签名方式发送一笔具有签名的交易到对应链上,可以保证了交易的安全性;并且除了将更新的验证人信息进行保存,也会将对应区块高度保存到中心服务器,这样就可以解决跨链交易的验证问题。
由上可见,本实施例中的中心服务器存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度,提高了验证节点信息的全面性和可追溯性。也就是每次目标链中的验证节点更新时,在中心服务器都会存储一份相应的验证节点信息,并且,还会存储当前验证节点信息对应的区块高度。如此一来,当需要使用目标链上的验证节点信息验证目标链发起的跨链交易时,便可以将当前跨链交易在目标链中的区块高度与中心服务器中存储的各个区块高度进行对比,便可查询到该跨链交易在目标链中打包时参与验证的节点有哪些,从而查询到相应的验证节点信息。这样其他链便可利用查询到的验证节点信息对跨链交易进行验证,从而解决了跨链交易无法验证的技术问题。
下面对本申请实施例提供的第二种验证节点更新装置进行介绍,下文描述的第二种验证节点更新装置与上文描述的第二种验证节点更新方法可以相互参照。
参见图12,图12为本申请公开的第二种验证节点更新装置示意图。在四实施例中,该装置应用于多链同构系统中的目标链,包括:
接收模块1201,用于接收中心服务器发送的验证节点信息的更新请求;
更新模块1202,用于根据更新请求更新验证节点,获得更新信息,以及更新信息对应的区块高度;其中,更新信息为目标链根据更新请求更新验证节点后,获得的验证节点信息;区块高度为目标链根据更新请求更新验证节点后,获得的区块的高度;
返回模块1203,用于将更新信息和区块高度返回至中心服务器,以使中心服务器将更新信息和区块高度存储至目标链对应的目标集合;目标集合存储有目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度。
在一种具体实施方式中,接收模块包括:
接收单元,用于接收中心服务器发送的更新请求,以及目标账户对更新请求的签名;目标账户设置于目标链中的任意节点;
校验单元,用于对签名进行校验;若校验通过,则执行根据更新请求更新验证节点的步骤。
在一种具体实施方式中,更新模块包括:
加入单元,用于将更新请求加入交易池;
验证单元,用于若交易池中的验证节点验证更新请求通过,则将更新请求打包为区块,获得更新信息和区块高度。
在一种具体实施方式中,还包括:
跨链交易发送模块,用于发送跨链交易至多链同构系统中的其他链,以使其他链根据跨链交易在目标链中的目标区块高度,在中心服务器中查询跨链交易对应的更新信息;并利用查询到的更新信息对跨链交易进行验证,若验证通过,则将跨链交易打包为区块。
在一种具体实施方式中,其他链具体用于:
确定跨链交易在目标链中的目标区块高度;
在中心服务器中查询目标区块高度对应的更新信息;
将查询到的更新信息确定为跨链交易对应的更新信息。
在一种具体实施方式中,其他链具体用于:
在中心服务器中查询目标链对应的目标集合;
从目标集合中获取目标链中的验证节点的每次更新信息,以及每次更新信息分别对应的区块高度;
将获取到的区块高度作为对象区块高度,并确定小于目标区块高度的对象区块高度;
分别计算每个对象区块高度与目标区块高度的差异值;
将最小差异值对应的对象区块高度确定为目的区块高度;
将目的区块高度对应的更新信息确定为目标区块高度对应的更新信息。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种验证节点更新装置,该装置能够提高验证节点信息的全面性和可追溯性,解决跨链交易无法验证的技术问题。
下面对本申请实施例提供的一种验证节点更新设备进行介绍,下文描述的一种验证节点更新设备与上文描述的一种验证节点更新方法及装置可以相互参照。
参见图13,图13为本申请公开的一种验证节点更新设备示意图。在五实施例中,该设备包括:
存储器1301,用于保存计算机程序;
处理器1302,用于执行所述计算机程序,以实现上述任意实施例公开的验证节点更新方法。
参见图14,图14为本申请公开的另一种验证节点更新设备示意图。该验证节点更新设备可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是验证节点更新设备的内部存储单元,例如该验证节点更新设备的硬盘。存储器11在另一些实施例中也可以是验证节点更新设备的外部存储设备,例如验证节点更新设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括验证节点更新设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于验证节点更新设备的应用软件及各类数据,例如验证节点更新程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行验证节点更新程序等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,验证节点更新设备还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在该设备中处理的信息以及用于显示可视化的用户界面。
图14仅示出了具有组件11-13的验证节点更新设备,本领域技术人员可以理解的是,图14示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种验证节点更新方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的验证节点更新方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
下面对本申请实施例提供的一种计算机程序产品进行介绍,下文描述的一种计算机程序产品与上文描述的一种验证节点更新方法、装置及设备可以相互参照。
一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机可以执行前述实施例公开的验证节点更新方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。