数据处理方法、装置、系统和存储介质
技术领域
本发明涉及区块链技术领域,特别涉及一种数据处理方法、装置、系统和存储介质。
背景技术
目前,大多数基于区块链的资源转移是同一个区块链上的不同用户的账户之间的转移。目前,也有一些跨链的技术和应用可以协助实现不同区块链之间的资源交换或转移,例如公证人机制、基于侧链和中继的机制、基于哈希锁定的机制等方式的跨链技术。
公证人机制需要引入两条区块链系统都认可的可信的第三方,并由可信第三方进行区块链交易的确认和验证。基于侧链和中继的机制需要引入新的区块链。在基于哈希锁定的机制中,参与跨链资源交换的两个区块链系统需要锁定数字货币,并在设定的交易时间内进行确认以完成交易。
发明内容
发明人经过分析后发现,公证人机制以及基于侧链和中继的机制需要引入其他可信系统或其他区块链来保证跨链操作的可靠性,导致执行效率低下、使用受限。而哈希锁定的方式则存在应用场景受限的问题。因此,目前跨链操作的灵活性较差、效率较低。
本发明实施例所要解决的一个技术问题是:如何提高区块链跨链操作的执行效率和灵活性。
根据本发明一些实施例的第一个方面,提供一种数据处理方法,包括:响应于第一用户通过第一区块链业务系统发起资源交换的请求、并且第二用户通过第二区块链业务系统发送同意请求,向第一区块链业务系统和第二区块链业务系统发送资源交换对应的验证节点的信息;将第一区块链业务系统和第二区块链业务系统发送的资源交换的信息进行存储;将资源交换的信息的存储地址发送给第一区块链业务系统的验证节点和第二区块链业务系统的验证节点,以便验证节点进行验证;将验证结果和资源交换的信息的地址发送给第一区块链业务系统和第二区块链业务系统,以便在验证通过的情况下,获得第一区块链业务系统和第二区块链业务系统分别发送的执行资源交换的执行结果;将执行结果进行存储。
在一些实施例中,资源交换包括将第一用户在第二区块链的资源转移给第二用户在第二区块链的账户、以及将第二用户在第一区块链的资源转移给第一用户在第一区块链的账户。
在一些实施例中,数据处理方法还包括:随机确定第一区块链业务系统以及第二区块链业务系统的验证节点。
在一些实施例中,数据处理方法还包括:获取第一区块链业务系统、第二区块链业务系统中的至少一个所指定的区块链节点作为验证节点;在第一区块链业务系统未指定验证节点的情况下,随机确定第一区块链业务系统的验证节点;在第二区块链业务系统未指定验证节点的情况下,随机确定第二区块链业务系统的验证节点。
在一些实施例中,将第一区块链业务系统和第二区块链业务系统发送的资源交换的信息上传到分布式文件系统中进行存储;将执行结果上传到分布式文件系统中进行存储。
在一些实施例中,分布式文件系统为星际文件系统IPFS。
在一些实施例中,资源交换的信息是通过外部数据表示XDR格式进行编码的。
在一些实施例中,将第一用户通过第一区块链业务系统发送的资源交换的第一信息和第二用户通过第二区块链业务系统发送的资源交换的第二信息进行存储;第一信息包括将第一用户在第二区块链的资源转移给第二用户在第二区块链的账户的信息,第二信息包括将第二用户在第一区块链的资源转移给第一用户在第一区块链的账户的信息。
在一些实施例中,将资源交换的信息的存储地址发送给第一区块链业务系统的验证节点和第二区块链业务系统的验证节点包括:将第一信息的存储地址发送给第二区块链业务系统的验证节点,并且将第二信息的存储地址发送给第一区块链业务系统的验证节点。
在一些实施例中,数据处理方法还包括:第一区块链业务系统生成资源交换的第一信息,并向第一信息添加第二用户的签名、第一有效时间中的至少一种;第二区块链业务系统生成资源交换的第二信息,并向第二信息添加第一用户的签名、第二有效时间中的至少一种,其中,第二有效时间长于第一有效时间。
在一些实施例中,数据处理方法还包括:第一区块链业务系统的验证节点根据第二信息的存储地址获取第二信息,并对第二信息进行验证;第二区块链业务系统的验证节点根据第一信息的存储地址获取第一信息,并对第一信息进行验证。
在一些实施例中,数据处理方法还包括:第一区块链业务系统获取验证结果和第二信息的存储地址,并且在验证通过的情况下,根据第二信息生成区块、并将相应区块存储到第一区块链业务系统中;第二区块链业务系统获取验证结果和第一信息的存储地址,并且在验证通过的情况下,根据第一信息生成区块、并将相应区块存储到第二区块链业务系统中。
在一些实施例中,第一区块链业务系统和第二区块链业务系统均为基于联盟链的区块链业务系统。
根据本发明一些实施例的第二个方面,提供一种数据处理装置,包括:验证节点信息发送模块,被配置为响应于第一用户通过第一区块链业务系统发起资源交换的请求、并且第二用户通过第二区块链业务系统发送同意请求,向第一区块链业务系统和第二区块链业务系统发送资源交换对应的验证节点的信息,其中,资源交换包括将第一用户在第二区块链的资源转移给第二用户在第二区块链的账户、以及将第二用户在第一区块链的资源转移给第一用户在第一区块链的账户;资源交换信息存储模块,被配置为将第一区块链业务系统和第二区块链业务系统发送的资源交换的信息进行存储;存储地址发送模块,被配置为将资源交换的信息的存储地址发送给第一区块链业务系统的验证节点和第二区块链业务系统的验证节点,以便验证节点进行验证;验证结果发送模块,被配置为将验证结果和资源交换的信息的地址发送给第一区块链业务系统和第二区块链业务系统,以便在验证通过的情况下,获得第一区块链业务系统和第二区块链业务系统分别发送的执行资源交换的执行结果;执行结果存储模块,被配置为将执行结果进行存储。
根据本发明一些实施例的第三个方面,提供一种数据处理装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述任意一种数据处理方法。
根据本发明一些实施例的第四个方面,提供一种数据处理系统,包括:前述任意一种数据处理装置;第一区块链业务系统;以及第二区块链业务系统。
在一些实施例中,数据处理系统还包括:存储装置,被配置为存储第一区块链业务系统和第二区块链业务系统发送的资源交换的信息以及执行资源交换的执行结果。
根据本发明一些实施例的第五个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意一种数据处理方法。
上述发明中的一些实施例具有如下优点或有益效果:本发明的实施例可以不借助第三方业务系统或第三方区块链实现跨链资源交换,提高了执行效率和灵活性,并且适用于多种应用场景。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明一些实施例的数据处理方法的流程示意图。
图2为根据本发明一些实施例的验证资源交换的信息的方法的流程示意图。
图3为根据本发明一些实施例的执行资源交换的方法的流程示意图。
图4为根据本发明一些实施例的数据处理装置的结构示意图。
图5为根据本发明一些实施例的数据处理系统的结构示意图。
图6为根据本发明另一些实施例的数据处理装置的结构示意图。
图7为根据本发明又一些实施例的数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为根据本发明一些实施例的数据处理方法的流程示意图。在该实施例中,第一区块链业务系统是运行在第一区块链之上的业务系统,第二区块链业务系统是运行在第二区块链之上的业务系统。业务系统中可以包括用于执行区块链相关操作的区块链节点,以及用于对外进行业务交互的服务器。服务器和区块链节点的功能也可以合设在同一个设备上。第一用户和第二用户中的每一个在第一区块链和第二区块链上都具有账户。第一用户和第二用户欲进行资源交换,包括将第一用户在第二区块链的资源转移给第二用户在第二区块链的账户、以及将第二用户在第一区块链的资源转移给第一用户在第一区块链的账户。如图1所示,该实施例的数据处理方法包括步骤S102~S110。
在步骤S102中,响应于第一用户通过第一区块链业务系统发起资源交换的请求、并且第二用户通过第二区块链业务系统发送同意该请求,向第一区块链业务系统和第二区块链业务系统发送该资源交换对应的验证节点的信息。
在一些实施例中,第一区块链业务系统和第二区块链业务系统均为基于联盟链的区块链业务系统,联盟链例如可以是Stellar联盟链。
在一些实施例中,可以在获取第一区块链业务系统发送的、由第一用户发起进行资源交换的请求之后,将请求的信息通知给第二区块链业务系统,请求的信息可以包括该资源交换的标识、交易内容等等;然后,响应于第二用户通过第二区块链业务系统发送同意请求的指示,向第一区块链业务系统和第二区块链业务系统发送该资源交换对应的验证节点的信息,并且还可以发送资源交换的标识。
在一些实施例中,可以随机确定第一区块链业务系统以及第二区块链业务系统的验证节点。
在一些实施例中,可以获取第一区块链业务系统、第二区块链业务系统中的至少一个所指定的区块链节点作为验证节点;在第一区块链业务系统未指定验证节点的情况下,随机确定第一区块链业务系统的验证节点;在第二区块链业务系统未指定验证节点的情况下,随机确定第二区块链业务系统的验证节点。即,在用户未进行指定验证节点的情况下,随机确定区块链业务系统中的区块链节点作为验证节点。
通过随机验证的方式,可以进一步提高校验的可信度,提升了跨链资源交换的安全性。
在步骤S104中,将第一区块链业务系统和第二区块链业务系统发送的资源交换的信息进行存储。
在一些实施例中,资源交换的信息是通过外部数据表示(External DataRepresentation,简称:XDR)格式进行编码的。
在一些实施例中,资源交换的信息可以包括资源交换的参与方、被交换的资源的名称和数量、签名信息、有效时间等等。
资源交换的信息的存储位置是验证节点能够访问的位置。在一些实施例中,可以将第一区块链业务系统和第二区块链业务系统发送的资源交换的信息上传到分布式文件系统中进行存储,以便第一区块链业务系统和第二区块链业务系统的验证节点能够读取。分布式文件系统例如可以为星际文件系统(Inter Planetary File System,简称:IPFS)。
在步骤S106中,将资源交换的信息的存储地址发送给第一区块链业务系统的验证节点和第二区块链业务系统的验证节点,以便验证节点进行验证。
验证节点可以根据获取的存储地址获取资源交换的信息以进行验证。验证的内容例如可以包括第一用户或第二用户的剩余资源是否足以进行本次资源交换、资源交换的信息中的签名是否合法等等。
在一些实施例中,还可以将验证程序的存储地址也发送给验证节点,以便验证节点根据验证程序进行验证。
在步骤S108中,将验证结果和资源交换的信息的地址发送给第一区块链业务系统和第二区块链业务系统,以便在验证通过的情况下,获得第一区块链业务系统和第二区块链业务系统分别发送的执行资源交换的执行结果。
例如,第一区块链业务系统和第二区块链业务系统可以分别在生成相应的区块并记录到自身系统中。
在步骤S110中,将执行结果进行存储。
通过上述实施例的方法,可以在执行两个区块链业务系统之间的跨链资源交换时,由每个区块链业务系统中的验证节点进行验证,并将资源交换的信息和执行结果进行集中存储以供追溯和查询。从而,可以不借助第三方业务系统或第三方区块链实现跨链资源交换,提高了执行效率和灵活性,并且适用于多种应用场景。
在一些实施例中,资源交换的信息可以包括第一用户通过第一区块链业务系统发送的资源交换的第一信息和第二用户通过第二区块链业务系统发送的资源交换的第二信息。第一信息包括将第一用户在第二区块链的资源转移给第二用户在第二区块链的账户的信息,第二信息包括将第二用户在第一区块链的资源转移给第一用户在第一区块链的账户的信息。验证节点可以将验证节点所在的区块链业务系统中涉及的资源交换中的部分操作进行验证。下面参考图2描述本发明验证资源交换的信息的方法的实施例。
图2为根据本发明一些实施例的验证资源交换的信息的方法的流程示意图。验证节点是属于区块链业务系统的。为了便于说明,在图2中将其独立示出。
如图2所示,该实施例的方法包括步骤S202~S220。
在步骤S202中,第一区块链业务系统生成资源交换的第一信息。
在一些实施例中,第一区块链业务系统可以向第一信息添加第二用户的签名、第一有效时间中的至少一种。
在步骤S204中,获取第一用户通过第一区块链业务系统发送的资源交换的第一信息。
在步骤S206中,将第一信息进行存储。
在步骤S208中,第二区块链业务系统生成资源交换的第二信息。
在一些实施例中,第二区块链业务系统可以向第二信息添加第一用户的签名、第二有效时间中的至少一种,其中,第二有效时间长于第一有效时间。
在步骤S210中,获取第二用户通过第二区块链业务系统发送的资源交换的第二信息。
在步骤S212中,将第二信息进行存储。
在步骤S214中,将第一信息的存储地址发送给第二区块链业务系统的验证节点进行验证。
在步骤S216中,第二区块链业务系统的验证节点根据第一信息的存储地址获取第一信息,并对第一信息进行验证。例如,可以验证第一信息中的签名是否合法、第一信息是否超时、第二区块链业务系统中的第一用户的账户的剩余资源是否支持本次资源交换等等。
在步骤S218中,将第二信息的存储地址发送给第一区块链业务系统的验证节点进行验证。
在步骤S220中,第一区块链业务系统的验证节点根据第二信息的存储地址获取第二信息,并对第二信息进行验证。例如,可以验证第二信息中的签名是否合法、第二信息是否超时、第一区块链业务系统中的第二用户的账户的剩余资源是否支持本次资源交换等等。
第一区块链业务系统和第二区块链业务系统可以借助中间的数据处理装置来实现消息传递和流程控制。
通过上述实施例的方法,可以令验证节点对其所属的区块链业务系统所涉及的资源交换的信息进行验证,从而可以提高验证效率和安全性。
下面参考图3描述本发明区块链业务系统执行资源交换的方法的实施例。
图3为根据本发明一些实施例的执行资源交换的方法的流程示意图。如图3所示,该实施例的方法包括步骤S302~S316。
在步骤S302中,将验证结果和资源交换的第二信息的地址发送给第一区块链业务系统。
在步骤S304中,在验证通过的情况下,第一区块链业务系统根据第二信息生成区块、并将相应区块存储到第一区块链业务系统中,以执行资源交换。
第一区块链业务系统生成的区块中例如可以包括将第二用户在第一区块链的资源转移给第一用户在第一区块链的账户对应的描述,以及资源交换的标识、时间、第一用户和第二用户的信息等等。第一区块链业务系统中的区块链节点在生成区块后,可以将区块发布到第一区块链业务系统中,以便由第一区块链业务系统中的其他区块链节点对该区块进行验证,并对该区块进行入链处理。
在步骤S306中,获取第一区块链业务系统的执行结果。
在步骤S308中,将第一区块链业务系统的执行结果进行存储。例如,可以将执行结果也存储在IPFS等分布式文件系统中。
在步骤S310中,将验证结果和资源交换的第一信息的地址发送给第二区块链业务系统。
在步骤S312中,在验证通过的情况下,第二区块链业务系统根据第一信息生成区块、并将相应区块存储到第二区块链业务系统中,以执行资源交换。
第二区块链业务系统生成的区块中例如可以包括将第一用户在第二区块链的资源转移给第二用户在第二区块链的账户对应的描述,以及资源交换的标识、时间、第一用户和第二用户的信息等等。区块的处理方式可以参考步骤S304中的描述,这里不再赘述。
在步骤S314中,获取第二区块链业务系统的执行结果。例如,可以将执行结果也存储在IPFS等分布式文件系统中。
在步骤S316中,将第二区块链业务系统的执行结果进行存储。
根据需要,还可以将执行结果的存储信息反馈给第一区块链业务系统和第二区块链业务系统。
通过上述实施例的方法,可以在各个区块链业务系统内记录资源交换过程中每个区块链业务系统所涉及的信息,从而进一步使得资源交换的过程可追溯、防止篡改,提高了资源交换的安全性。
下面参考图4描述本发明数据处理装置的实施例。
图4为根据本发明一些实施例的数据处理装置的结构示意图。如图4所示,该实施例的数据处理装置400包括:验证节点信息发送模块4100,被配置为响应于第一用户通过第一区块链业务系统发起资源交换的请求、并且第二用户通过第二区块链业务系统发送同意请求,向第一区块链业务系统和第二区块链业务系统发送资源交换对应的验证节点的信息;存储模块4200,被配置为将第一区块链业务系统和第二区块链业务系统发送的资源交换的信息进行存储,以及将执行结果进行存储;存储地址发送模块4300,被配置为将资源交换的信息的存储地址发送给第一区块链业务系统的验证节点和第二区块链业务系统的验证节点,以便验证节点进行验证;验证结果发送模块4400,被配置为将验证结果和资源交换的信息的地址发送给第一区块链业务系统和第二区块链业务系统,以便在验证通过的情况下,获得第一区块链业务系统和第二区块链业务系统分别发送的执行资源交换的执行结果。
在一些实施例中,资源交换包括将第一用户在第二区块链的资源转移给第二用户在第二区块链的账户、以及将第二用户在第一区块链的资源转移给第一用户在第一区块链的账户。
在一些实施例中,还包括:验证节点确定模块4500,被配置为随机确定第一区块链业务系统以及第二区块链业务系统的验证节点。
在一些实施例中,还包括:验证节点确定模块4500,被配置为获取第一区块链业务系统、第二区块链业务系统中的至少一个所指定的区块链节点作为验证节点;在第一区块链业务系统未指定验证节点的情况下,随机确定第一区块链业务系统的验证节点;在第二区块链业务系统未指定验证节点的情况下,随机确定第二区块链业务系统的验证节点。
在一些实施例中,存储模块4200进一步被配置为将第一区块链业务系统和第二区块链业务系统发送的资源交换的信息上传到分布式文件系统中进行存储;将执行结果上传到分布式文件系统中进行存储。
在一些实施例中,分布式文件系统为星际文件系统IPFS。
在一些实施例中,资源交换的信息是通过外部数据表示XDR格式进行编码的。
在一些实施例中,存储模块4200进一步被配置为将第一用户通过第一区块链业务系统发送的资源交换的第一信息和第二用户通过第二区块链业务系统发送的资源交换的第二信息进行存储;第一信息包括将第一用户在第二区块链的资源转移给第二用户在第二区块链的账户的信息,第二信息包括将第二用户在第一区块链的资源转移给第一用户在第一区块链的账户的信息。
在一些实施例中,存储地址发送模块4300进一步被配置为将第一信息的存储地址发送给第二区块链业务系统的验证节点,并且将第二信息的存储地址发送给第一区块链业务系统的验证节点。
下面参考图5描述本发明数据处理系统的实施例。
图5为根据本发明一些实施例的数据处理系统的结构示意图。如图5所示,该实施例的数据处理系统50包括:数据处理装置510;第一区块链业务系统520;以及第二区块链业务系统530。
在一些实施例中,第一区块链业务系统520进一步被配置为生成资源交换的第一信息,并向第一信息添加第二用户的签名、第一有效时间中的至少一种;第二区块链业务系统530进一步被配置为生成资源交换的第二信息,并向第二信息添加第一用户的签名、第二有效时间中的至少一种,其中,第二有效时间长于第一有效时间。
在一些实施例中,第一区块链业务系统520的验证节点进一步被配置为根据第二信息的存储地址获取第二信息,并对第二信息进行验证;第二区块链业务系统530的验证节点进一步被配置为根据第一信息的存储地址获取第一信息,并对第一信息进行验证。
在一些实施例中,第一区块链业务系统520进一步被配置为获取验证结果和第二信息的存储地址,并且在验证通过的情况下,根据第二信息生成区块、并将相应区块存储到第一区块链业务系统中;第二区块链业务系统530进一步被配置为获取验证结果和第一信息的存储地址,并且在验证通过的情况下,根据第一信息生成区块、并将相应区块存储到第二区块链业务系统中。
在一些实施例中,第一区块链业务系统和第二区块链业务系统均为基于联盟链的区块链业务系统。
图6为根据本发明另一些实施例的数据处理装置的结构示意图。如图6所示,该实施例的数据处理装置60包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行前述任意一个实施例中的数据处理方法。
其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图7为根据本发明又一些实施例的数据处理装置的结构示意图。如图7所示,该实施例的数据处理装置70包括:存储器710以及处理器720,还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口750为SD卡、U盘等外置存储设备提供连接接口。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种数据处理方法。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。