掌桥专利:专业的专利平台
掌桥专利
首页

应用于t1节点的区块链信息跨链交互方法、系统、设备

文献发布时间:2023-06-19 11:21:00


应用于t1节点的区块链信息跨链交互方法、系统、设备

技术领域

本发明涉及区块链技术领域、数据处理技术领域,尤其涉及应用于t1 节点的区块链信息跨链交互方法、系统、设备。

背景技术

随着科技的不断进步和发展,区块链以势不可挡的趋势席卷全球。对于区块链的好处更是延展到各个领域,区块链的好处被尽可能地发挥了出来。与传统的发展途径相比,区块链的技术发展途径方面都更加快捷方便且安全可靠,这项技术的开发赢得了各个领域发展和越来越多人的认可和使用。

在区块链高速发展的同时也面临着诸多问题,区块链之间互通性极大程度的限制了区块链的应用空间。每条链相当于一个独立账本,不同账本间无法互通,区块链间存在信息孤岛问题。

信息孤岛从价值和信息两个方面制约了区块链的发展,区块链间互通性差导致区块链的应用空间被限制。比如:当用户想要将A链的数据转交给B链时,用户或者B链的某些智能合约需要用到A链的数据的时候只能通过手动的形式上传,这就会使得数据有可能被篡改而失去了可信性。

不论对于公有链还是私有链来看,跨链技术就是实现价值互联网的关键,它是把区块链从分散的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。

跨链就是让信息跨过链和链之间的障碍进行流通,实现不同区块链间的资产流转、信息互通、应用协同,降低链与链间传输成本。

目前为止没有公认的普适型跨链机制,不同区块链之间的底层技术实现方式差异巨大,给跨链的实现带来障碍。

大多跨链技术专注于链上资产的转移,区块链信息转移在实际应用中也非常具有使用价值,如区块链信息备份,区块链重要信息收集,提取,等等。

目前存在的区块链跨链技术各有不同,也都因其实现方法的不同存在着各种局限,例如申请号为“CN202010475109.6”的发明专利申请公开了一种区块链间跨链信息交互方法、系统、介质、设备及应用,解决不同区块链项目之间的跨链方案。跨链信息交互系统包括第一区块链、中继区块链和第二区块链,第一区块链包括第一区块链账户和第一跨链合约,第二区块链包括第二区块链账户和第二跨链合约,第一区块链、中继区块链和第二区块链均设有收集人,跨链交互时,第一区块链账户向所述第一跨链合约发送跨链交互请求,中继区块链中的收集人主动收集第一跨链合约中的跨链交互请求,经签名验证后记录在中继区块链上,第二区块链中的收集人主动收集中继区块链上的跨链交互记录,向第二跨链合约发送跨链交互请求,第二跨链合约解锁映射的交互数据,并转移到第二区块链账户。但是该专利方案利用中继区块链使得各个公链之间能够实现信息互转,避免一条区块链就是一个数据孤岛的情况;利用多个收集人收集跨链信息以及签名验证的方式,并不能够同时支持同构链或者异构链的跨链信息复制,此外该专利方案还需对原区块链进行侵入式操作,即需对原区块链进行一定程度的修改或添加额外功能来实现跨链,然而这在现有的公链中是不可接受的,如比特币区块链。

又如申请号为“CN201911403803.0”的发明专利提供了一种跨区块链通信方法、装置、跨链服务系统及跨链交易系统,涉及区块链技术领域,解决了不同的区块链网络之间难以互相通信的技术问题。该方法包括:从源区块链网络获取监听到的跨链交易的第一交易信息,所述跨链交易为与源区块链网络与目标区块链网络之间的交易,所述第一交易信息包括:所述跨链交易数据;基于所述跨链交易数据向所述目标区块链网络发送第二交易信息,所述第二交易信息包括:所述跨链交易数据;从所述目标区块链网络获取监听到的所述第二交易信息的执行结束的执行结果;基于所述执行结果向所述源区块链网络发送指示信息,所述指示信息用于指示所述跨链交易结束;但是该专利方案中,跨链方法简单易行,然而存在着中心化或第三方依赖的问题,无法在整个系统层面上保留区块链技术去中心化去信任的特色。

发明内容

本发明所要解决的技术问题在于克服不同区块链之间的底层技术实现方式差异巨大,给跨链的实现带来障碍的问题。

本发明通过以下技术手段实现解决上述技术问题的:

一种区块链信息跨链交互方法,应用于区块链T的t1节点,包括:

t1节点判断区块链A是否符合第一反馈条件,若是,则所述区块链T 的t1节点获取并验证所述区块链A的第一数据信息;

所述获取并验证所述区块链A的第一数据信息包括:所述区块链T的 t1节点读取区块链A上某个任意节点a1的第一数据信息,并将节点a1的第一数据信息转化成区块链T可交易的数据信息;

所述t1节点对所述第一数据信息进行验证,若验证通过后,将第一数据信息存储到本地链上,并向区块链B发送交易,若验证未通过,则舍弃第一数据信息。

作为本发明进一步的方案:所述t1节点对所述第一数据信息进行验证包括:所述t1节点向区块链A的非a1节点读取所述第二数据信息,并判断所述第一数据信息与所述第二数据信息是否一致,若一致,则验证通过,若不一致,则验证不通过。

作为本发明进一步的方案:所述t1节点读取区块链A上某个任意节点 a1的第一数据信息还包括:

若区块链A采用强一致性的共识算法,则t1节点需要等共识确认后获取区块链A上的第一数据信息;

若区块链A采用弱一致性的共识算法,则当区块链A生成第一数据信息所在区块生成之后的若干个后续区块,t1节点读取区块链A的第一数据信息。

作为本发明进一步的方案:所述交易中包括区块链B可识别格式的第一数据信息。

作为本发明进一步的方案:所述交易还包括原始区块链A上的数据、区块链A上的第一数据信息在区块链T上的高度、交易序号、交易时间、交易创建者。

一种区块链信息跨链交互系统,包括:

判断模块,用于判断区块链A是否符合第一反馈条件,若是,则所述区块链T的t1节点获取并验证所述区块链A的第一数据信息;

所述区块链T的t1节点读取区块链A上某个任意节点a1的第一数据信息,并将节点a1的第一数据信息转化成区块链T可交易的数据信息;

所述t1节点对所述第一数据信息进行验证,若验证通过后,将第一数据信息存储到本地链上,并向区块链B发送交易,若验证未通过,则舍弃第一数据信息。

作为本发明进一步的方案:所述t1节点对所述第一数据信息进行验证包括:

所述t1节点向区块链A的非a1节点读取所述第二数据信息,并判断所述第一数据信息与所述第二数据信息是否一致,若一致,则验证通过,若不一致,则验证不通过。

作为本发明进一步的方案:所述t1节点对所述第一数据信息进行验证包括:所述t1节点向区块链A的非a1节点读取所述第二数据信息,并判断所述第一数据信息与所述第二数据信息是否一致,若一致,则验证通过,若不一致,则验证不通过。

作为本发明进一步的方案:所述t1节点读取区块链A上某个任意节点 a1的第一数据信息还包括:

若区块链A采用强一致性的共识算法,则t1节点需要等共识确认后获取区块链A上的第一数据信息;

若区块链A采用弱一致性的共识算法,则当区块链A生成第一数据信息所在区块生成之后的若干个后续区块,t1节点读取区块链A的第一数据信息。

作为本发明进一步的方案:所述交易中包括区块链B可识别格式的第一数据信息。

一种设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现所述的区块链信息跨链交互方法。

本发明的优点在于:

1、本发明所要实现的跨链技术是通过一条额外区块链T将区块链A上的信息保存到区块链B上,能够支持同构链的信息复制,也能够支持异构链的跨链信信息复制,且不存在中心化或者第三方依赖的问题。

2、本发明是不仅限于在带有跨链功能的区块链上使用,区块链A和B 即使本身不具备跨链功能,但仍可以通过此技术来复制信息,如:比特币, 以太坊等等。

3、本发明使用了非入侵式的方法,无需对区块链A和区块链B进行任何改造或者添加功能,从而在对原区块链与目标区块链不产生任何影响,在整个复制信息的过程中区块链A和区块链B保持正常运行即可,区块链 A和区块链B并不会感知跨链,实现在整个信息跨链的过程中对原区块链与目标区块链不产生任何影响的情况下完成跨链操作。

4、在使用本发明的跨链信息备份的同时,可以做到跨链信息备份记录可追溯且不可篡改。

5、本发明无单点依赖、中心化信任或第三方信任,从而使得整个系统保留了区块链的去中心化、去信任、不可篡改的特点。

6、本发明中的t1节点通过对区块链A中的不同节点进行读取交易和确认交易从而有效避免原区块链中单节点作恶的可能性.

附图说明

图1为本发明实施例1提供的区块链信息跨链交互方法的原理示意图。

图2为本发明实施例1提供的区块链信息跨链交互方法的流程示意图。

图3为本发明实施例1提供的另一区块链信息跨链交互方法的流程示意图。

图4为本发明实施例2提供的应用于t1节点的区块链信息跨链交互方法的流程示意图。

图5为本发明实施例3提供的应用于出块节点的区块链信息跨链交互方法的流程示意图。

图6为本发明实施例4提供的应用于t2节点的区块链信息跨链交互方法的流程示意图。

图7示出根据本公开一实施方式的设备的结构框图。

图8是适于用来实现根据本公开一实施方式的区块链信息跨链交互方法的计算机系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本公开的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102 等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

根据本公开实施例提供的技术方案,区块链T的t1节点判断区块链A 是否符合第一反馈条件,若是,则所述区块链T获取并验证所述区块链A 的第一数据信息;若验证通过后,则第一数据信息存储到本地链上,并向区块链B发送交易,若验证未通过,则舍弃所述第一数据信息;所述区块链B接收交易执行打包出块操作;所述区块链T开启监听操作读取区块链 B的区块信息,判断区块链B打包出块是否成功,若打包出块成功,则t2 节点读取区块链B数据,验证是否符合阈值条件,若打包出块未成功,则跨链复制信息失败;若符合,则跨链复制信息成功,则区块链T获取区块链B的主要信息再次进行打包出块;若不符合,则跨链复制信息失败。

其中,区块链T是一条额外区块链,包括t1节点、t2节点…出块节点,对于区块链T的共识算法并无要求,可以根据具体实际情况做选择。优选的,在本发明中区块链T采用委托权益证明DPOS的共识算法,其特点为:出块时间短,效率高。

实施例1

参阅图1及图2,图1为本发明实施例1中区块链信息跨链交互方法的原理示意图,图2为本发明实施例1中区块链信息跨链交互方法的流程示意图,包括以下步骤:

S1、区块链T的t1节点判断区块链A是否符合第一反馈条件,若是,则所述区块链T的t1节点获取并验证所述区块链A的第一数据信息;

若验证通过后,则区块链T的出块节点接收t1节点验证通过信号将第一数据信息存储到本地链上生成区块;区块链T的t2节点接收区块并向区块链B发送交易;

若验证未通过,则出块节点接收t1节点未验证通过信号舍弃所述第一数据信息;

S2、所述区块链B接收交易执行打包出块操作;

S3、所述区块链T的t2节点开启监听操作读取区块链B的区块信息,判断区块链B打包出块是否成功,若打包出块成功,则t2节点读取区块链的B数据,验证所读取区块链B的数据是否符合阈值条件,若打包出块未成功,则跨链复制信息失败;

若验证符合阈值条件,则跨链复制信息成功,t2节点发送打包指令给出块节点;若不符合阈值条件,则跨链复制信息失败;

S4、区块链T的出块节点接收t2节点的打包指令,获取区块链B的信息再次进行打包出块(一般情况下采用主要信息再次打包出块即可)。

在步骤S1中,所述第一反馈条件是预设于区块链T上的。

在步骤S1中,还包括:

S11、在区块链A符合第一反馈条件后,所述区块链T的t1节点读取区块链A上某个任意节点a1的第一数据信息,并将节点a1的第一数据信息转化成区块链T可交易的数据信息。

此外,所述区块链T的t1节点还可从区块链A中读取A链数据的交易。

示例性的,当区块链A出现与空气指数相关的数据时,区块链T的t1 节点就执行相应的读取操作,从区块链A中获取相应的数据。

需要强调的是,本步骤中获取节点a1的数据需考虑区块链的最终一致性,一般来说区块链共识算法分为强一致性和弱一致性。

也就是说:若区块链A采用强一致性的共识算法,则区块链T的t1节点需要等共识确认后读取区块链A上的第一数据信息;若区块链A采用弱一致性的共识算法,因为弱一致性的共识会有回滚风险,为了降低风险,所以区块链T需要等待第一数据信息所在区块生成后,再等待一定数量的后续区块生成(也即当区块链A生成第一数据信息所在区块生成之后的若干个后续区块,区块链T的t1节点读取区块链A的第一数据信息),然后方可读取区块链A的第一数据信息。

其中,所述一定数量是可根据具体情况设置,例如,在比特币的区块链上,可在目标信息(即要获取的第一数据信息)所在的区块之后出现6 个区块确认后再对目标信息进行读取。

S12、区块链T的t1节点对所述第一数据信息进行验证,若验证通过,发送验证通过信号至出块节点,区块链T的出块节点将第一数据信息存储到本地链上,也就是区块链T的出块节点打包区块链A信息并生成区块, t2节点将出块节点所出的区块转化并发送至区块链B处;并向区块链B发送交易,若验证未通过,发送验证未通过信号至出块节点,则出块节点舍弃第一数据信息;

S121、区块链T的t1节点向区块链A的非a1节点(即其他节点)读取第二数据信息,并判断所述第一数据信息与第二数据信息是否一致,若一致,则验证通过,若不一致,则验证不通过,舍弃该第一数据信息。

通过第一数据信息与第二数据信息的比对,可以防止a1节点作恶,制造虚假数据。

通过上述方案,区块链T的t1节点会向区块链A的非a1节点读取第二数据信息,具体方式为根据不同的数据信息所在区块和交易的唯一标识符,提取相应数据信息,然后所述t1节点对比两次接收的第一数据信息和第二数据信息,若第一数据信息和第二数据信息一致,则说明从区块链A 获取的第一数据信息验证通过。

此外,本验证步骤中用于验证的所述非a1节点可配置,也可根据区块链的共识机制来决定。

所述将第一数据信息存储到本地链上包括:当区块链A的第一数据信息被验证通过后,区块链T的出块节点会将第一数据信息写入新的区块中。

S122、若验证通过,所述区块链T的t2节点将区块链A的第一数据信息转换成区块链B可识别的格式得到可识别的第一数据信息,并向目标区块链B发送带有可识别的第一数据信息的交易。

区块链T的t2节点发向区块链B的交易除了带有原始区块链A上的数据,还包括了区块链T上数据信息。

所述区块链T数据信息包括:区块链A上的第一数据信息在区块链T 上的高度、交易序号、交易时间、交易创建者等。

通将区块链T数据信息一起发向区块链B可以实现在区块链B做到区块链A信息复制过程的可追溯。

在步骤S2中,所述区块链B接收带有可识别的第一数据信息的交易,并基于本身预设好的链规则打包出块生成最新区块。

在步骤S3中,包括:

S31、在发送区块链T信息给区块链B之后,区块链T的t2节点即开启监听操作,监听的时间间隔可根据实际情况来设定,例如参考区块链B 的出块时间。

由于区块链T的t2节点信息在发送后,区块链B并不一定会立即出块,所以区块链T的t2节点需持续监听区块链B节点的信息来确认信息是否已经被加入到区块链B。此处区块链T的t2节点也可以向区块链B多节点进行读取,从而降低由于网络引起的一些问题。

S32、区块链T的t2节点对区块链B进行监听读取区块链B所打包的最新区块中第一数据信息,基于读取的第一数据信息进行验证打包出块是否成功;

所述基于读取的第一数据信息进行验证打包出块是否成功包括:当区块链T成功从区块链B所打包的最新区块上读取到区块链T的第一数据信息,区块链T的t2节点可再次向区块链B其他节点读取相同高度的第三数据信息,所述区块链T的t2节点判断第一数据信息、第三数据信息高度是否一致,若一致则区块链B打包出块成功,若不一致则区块链B打包出块未成功,跨链复制信息失败。

也就是说,区块链T的t2节点通过比较区块链B不同节点相同高度中的信息,来验证信息内容是否被篡改,从而防止单节点作恶问题的发生,如果一致则说明区块链B打包出块成功,表明跨链复制信息成功。

需要说明的是,此处读取区块链B不同节点数是可配置的,可根据区块链的共识机制来决定。

S33、若打包出块成功,则区块链T的t2节点读取区块链B数据,验证所读取区块链B数据是否符合阈值条件,若打包出块未成功,则跨链复制信息失败。

在步骤S33中,包括:

所述验证所读取区块链B数据是否符合阈值条件,即区块链T的t2节点读取区块链B的区块高度,然后根据区块链强或弱一致性去判断交易所在区块高度是否已经超过阈值;具体包括:

若区块链B采用强一致性的共识算法,所述阈值条件为区块链B打包出块成功,即为此次跨链复制信息成功(也就是说打包出块成功即为阈值条件);

若区块链B采用弱一致性的共识算法,区块链B判断自身是否满足的阈值条件为:等待区块链B中带有第一数据信息的最新区块出块后,仍然有一定数量的出块;若满足阈值条件,则跨链复制信息成功,否则跨链复制信息失败。

其中,此处的一定数量也可根据具体情况设置。

当此次信息复制成功之后区块链T的出块节点会提取区块链B中包含区块链A信息的区块的主要信息再次打包出块。主要信息可以包括:区块链B包含区块链A信息的区块高度,交易序号,出块时间等等,作为此次成功复制信息的依据凭证。

参阅图3,图3为本发明实施例1提供的另一区块链信息跨链交互方法的流程示意图,还包括步骤S5、在跨链复制信息失败后,重新执行区块链信息跨链交互方法,即区块链T的t1节点、t2节点、出块节点、区块链B 重新执行步骤S1-S4,或者区块链T的t2节点会向本身发送一笔关闭交易信息来触发关闭任务。

具体的,实际上,由于某些原因可能导致区块链T向区块链B发送复制信息交易时候无法成功打包,如:费用不够等原因。所以此时区块链执行步骤1)或者步骤2):

1)、继续尝试复制:只要重复区块链T向区块链B发送交易过程,即重复区块链T执行步骤S1、S3及S4、区块链B执行步骤S2的过程,直到成功结束。

2)、关闭此处复制任务:区块链T会向本身发送一笔关闭交易信息来触发关闭任务。

此外,所述关闭交易信息中包含了之前复制区块链A信息区块高度和交易序号、时间等,同时区块链T会退回此次执行复制任务时所花费的费用。

整个流程完成后可以在区块链T上查到打包区块链A数据的交易,作为复制发起的凭证,和区块链B反馈信息的交易,作为复制完成的凭证,从而确认跨链复制信息的成功或失败。

实施例2

参与图4,图4为本发明实施例2中应用于t1节点的区块链信息跨链交互方法的流程示意图,一种区块链信息跨链交互方法,应用于区块链T 的t1节点,所述t1节点为区块链T中的任一节点(可以事先配置),包括以下步骤:

S200、t1节点判断区块链A是否符合第一反馈条件,若是,则所述区块链T的t1节点获取并验证所述区块链A的第一数据信息;

在步骤S200中,所述第一反馈条件是预设于区块链T上的。

在步骤S200中,还包括:

S2001、在区块链A符合第一反馈条件后,所述区块链T的t1节点读取区块链A上某个任意节点a1的第一数据信息,并将节点a1的第一数据信息转化成区块链T可交易的数据信息。

此外,所述区块链T的t1节点还可从区块链A中读取A链数据的交易。

示例性的,当区块链A出现与空气指数相关的数据时,区块链T的t1 节点就执行相应的读取操作,从区块链A中获取相应的数据。

需要强调的是,本步骤中获取节点a1的数据需考虑区块链的最终一致性,一般来说区块链共识算法分为强一致性和弱一致性。

也就是说:若区块链A采用强一致性的共识算法,则区块链T的t1节点需要等共识确认后读取区块链A上的第一数据信息;若区块链A采用弱一致性的共识算法,因为弱一致性的共识会有回滚风险,为了降低风险,所以区块链T需要等待第一数据信息所在区块生成后,再等待一定数量的后续区块生成(也即当区块链A生成第一数据信息所在区块生成之后的若干个后续区块,区块链T的t1节点读取区块链A的第一数据信息),然后方可读取区块链A的第一数据信息。

其中,所述一定数量是可根据具体情况设置,例如,在比特币的区块链上,可在目标信息(即要获取的第一数据信息)所在的区块之后出现6 个区块确认后再对目标信息进行读取。

S2002、区块链T的t1节点对所述第一数据信息进行验证,若验证通过后,发送验证通过信号给出块节点;

若验证未通过,发送验证失败信号给出块节点;

S20021、区块链T的t1节点向区块链A的非a1节点(即其他节点) 读取第二数据信息,并判断所述第一数据信息与第二数据信息是否一致,若一致,则验证通过,若不一致,则验证不通过,舍弃该第一数据信息。

通过第一数据信息与第二数据信息的比对,可以防止a1节点作恶,制造虚假数据。

通过上述方案,区块链T的t1节点会向区块链A的非a1节点读取第二数据信息,具体方式为根据不同的数据信息所在区块和交易的唯一标识符,提取相应数据信息,然后所述t1节点对比两次接收的第一数据信息和第二数据信息,若第一数据信息和第二数据信息一致,则说明从区块链A 获取的第一数据信息验证通过。

此外,本验证步骤中用于验证的所述非a1节点可配置,也可根据区块链的共识机制来决定。

所述将第一数据信息存储到本地链上包括:当区块链A的第一数据信息被验证通过后,发送验证通过信号给区块链T的出块节点。

还包括步骤S201,在跨链复制信息失败后,继续执行步骤S200,或者终止执行。

实施例3

参与图5,图5为本发明实施例3中应用于出块节点的区块链信息跨链交互方法的流程示意图,一种区块链信息跨链交互方法,应用于区块链T 的出块节点,包括以下步骤:

S300、若所述出块节点接收t1节点验证通过信号,将第一数据信息存储到本地链上生成区块;

若出块节点接收t1节点未验证通过信号舍弃所述第一数据信息;

其中,出块节点将第一数据信息存储到本地链上,也就是区块链T的出块节点打包区块链A信息并生成区块,t2节点将出块节点所出的区块转化并发送至区块链B处;并向区块链B发送交易;

S301、区块链T的出块节点接收t2节点的打包指令,获取区块链B的信息再次进行打包出块(一般情况下采用主要信息再次打包出块即可)。

还包括步骤S302,在跨链复制信息失败后,继续执行步骤S300、S301,或者终止执行。

实施例4

参与图6,图6为本发明实施例4中应用于t2节点的区块链信息跨链交互方法的流程示意图,一种区块链信息跨链交互方法,应用于区块链T 的t2节点,包括以下步骤:

S400、区块链T的t2节点接收区块并向区块链B发送交易;

S401、所述区块链T的t2节点开启监听操作读取区块链B的区块信息,判断区块链B打包出块是否成功,若打包出块成功,则t2节点读取区块链 B数据,验证所读取区块链B的数据是否符合阈值条件,

若打包出块未成功,则跨链复制信息失败;

S402、若验证符合阈值未成功,则跨链复制值条件,则跨链复制信息成功,t2节点发送打包指令给出块节点;

若不符合阈值条件,则跨链复制信息失败。

在步骤S400中,所述区块链T的t2节点将区块链A的第一数据信息转换成区块链B可识别的格式得到可识别的第一数据信息,并向目标区块链B发送带有可识别的第一数据信息的交易;

区块链T的t2节点发向区块链B的交易除了带有原始区块链A上的数据,还包括了区块链T上数据信息。

所述区块链T数据信息包括:区块链A上的第一数据信息在区块链T 上的高度、交易序号、交易时间、交易创建者等。

通将区块链T数据信息一起发向区块链B可以实现在区块链B做到区块链A信息复制过程的可追溯;

在步骤S401中,包括:

S4011、在发送区块链T信息给区块链B之后,区块链T的t2节点即开启监听操作,监听的时间间隔可根据实际情况来设定,例如参考区块链B 的出块时间。

由于区块链T的t2节点信息在发送后,区块链B并不一定会立即出块,所以区块链T的t2节点需持续监听区块链B节点的信息来确认信息是否已经被加入到区块链B。此处区块链T的t2节点也可以向区块链B多节点进行读取,从而降低由于网络引起的一些问题。

S4012、区块链T的t2节点对区块链B进行监听读取区块链B所打包的最新区块中第一数据信息,基于读取的第一数据信息进行验证打包出块是否成功;

所述基于读取的第一数据信息进行验证打包出块是否成功包括:当区块链T成功从区块链B所打包的最新区块上读取到区块链T的第一数据信息,区块链T的t2节点可再次向区块链B其他节点读取相同高度的第三数据信息,所述区块链T的t2节点判断第一数据信息、第三数据信息高度是否一致,若一致则区块链B打包出块成功,若不一致则区块链B打包出块未成功,跨链复制信息失败。

也就是说,区块链T的t2节点通过比较区块链B不同节点相同高度中的信息,来验证信息内容是否被篡改,从而防止单节点作恶问题的发生,如果一致则说明区块链B打包出块成功,表明跨链复制信息成功。

需要说明的是,此处读取区块链B不同节点数是可配置的,可根据区块链的共识机制来决定。

S4013、若打包出块成功,则区块链T的t2节点读取区块链B数据,验证所读取区块链B数据是否符合阈值条件,若打包出块未成功,则跨链复制信息失败。

在步骤S4103中,包括:

所述验证所读取区块链B数据是否符合阈值条件,即区块链T的t2节点读取区块链B的区块高度,然后根据区块链强或弱一致性去判断交易所在区块高度是否已经超过阈值;具体包括:

若区块链B采用强一致性的共识算法,所述阈值条件为区块链B打包出块成功,即为此次跨链复制信息成功(也就是说打包出块成功即为阈值条件);

若区块链B采用弱一致性的共识算法,区块链B判断自身是否满足的阈值条件为:等待区块链B中带有第一数据信息的最新区块出块后,仍然有一定数量的出块;若满足阈值条件,则跨链复制信息成功,否则跨链复制信息失败。

其中,此处的一定数量也可根据具体情况设置。

当此次信息复制成功之后区块链T的出块节点会提取区块链B中包含区块链A信息的区块的主要信息再次打包出块。主要信息可以包括:区块链B包含区块链A信息的区块高度,交易序号,出块时间等等,作为此次成功复制信息的依据凭证。

还包括步骤S403、在跨链复制信息失败后,重新执行区块链信息跨链交互方法,即区块链A、区块链T、区块链B重新执行步骤S1-S4,或者区块链T的t2节点会向本身发送一笔关闭交易信息来触发关闭任务。

具体的,实际上,由于某些原因可能导致区块链T向区块链B发送复制信息交易时候无法成功打包,如:费用不够等原因。所以此时区块链执行步骤1)或者步骤2):

1)、继续尝试复制:重复执行步骤S400、S401、S402,直到成功结束。

2)、关闭此处复制任务:区块链T的t2节点会向本身发送一笔关闭交易信息来触发关闭任务。

此外,所述关闭交易信息中包含了之前复制区块链A信息区块高度和交易序号、时间等,同时区块链T的t2节点会退回此次执行复制任务时所花费的费用。

整个流程完成后可以在区块链T的t2节点上查到打包区块链A数据的交易,作为复制发起的凭证,和区块链B反馈信息的交易,作为复制完成的凭证,从而确认跨链复制信息的成功或失败。

实施例5

一种区块链信息跨链交互系统,包括:

第一获取模块,用于使区块链T的t1节点判断区块链A是否符合第一反馈条件,若是,则所述t1节点获取并验证所述区块链A的第一数据信息;

若验证通过后,则区块链T的出块节点接收t1节点验证通过信号,将第一数据信息存储到本地链上生成区块,区块链T的t2节点接收区块并向区块链B发送交易;

若验证未通过,则出块节点接收t1节点未验证通过信号舍弃所述第一数据信息;还用于:

所述获取并验证所述区块链A的第一数据信息包括:所述区块链T的 t1节点读取区块链A上某个任意节点a1的第一数据信息,并将节点a1的第一数据信息转化成区块链T可交易的数据信息;

所述t1节点对所述第一数据信息进行验证,若验证通过后,将第一数据信息存储到本地链上,并向区块链B发送交易,若验证未通过,则舍弃第一数据信息;

所述t1节点对所述第一数据信息进行验证包括:所述t1节点向区块链 A的非a1节点读取所述第二数据信息,并判断所述第一数据信息与所述第二数据信息是否一致,若一致,则验证通过,若不一致,则验证不通过;

所述t1节点读取区块链A上某个任意节点a1的第一数据信息还包括:

若区块链A采用强一致性的共识算法,则t1节点需要等共识确认后获取区块链A上的第一数据信息;

若区块链A采用弱一致性的共识算法,则当区块链A生成第一数据信息所在区块生成之后的若干个后续区块,t1节点读取区块链A的第一数据信息;

所述交易中包括区块链B可识别格式的第一数据信息;

所述交易还包括原始区块链A上的数据、区块链A上的第一数据信息在区块链T上的高度、交易序号、交易时间、交易创建者;

所述交易还包括原始区块链A上的数据、区块链A上的第一数据信息在区块链T上的高度、交易序号、交易时间、交易创建者。

出块模块,用于使所述区块链B接收交易执行打包出块操作;还用于:

所述打包出块操作包括:所述区块链B基于本身预设好的链规则打包出块。

监听模块,用于使所述区块链T的t2节点开启监听操作读取区块链B 的区块信息,判断区块链B打包出块是否成功,若打包出块成功,则t2节点读取区块链B数据,验证是否符合阈值条件,若打包出块未成功,则跨链复制信息失败;

若验证符合阈值条件,则跨链复制信息成功,则t2节点发送打包指令给出块节点,若不符合阈值条件,则跨链复制信息失败;

所述打包出块是否成功包括:区块链T的t2节点读取区块链B所打包的最新区块的第一数据信息,基于读取的第一数据信息进行验证打包出块是否成功;

所述基于读取的第一数据信息进行验证打包出块是否成功包括:

当区块链T的t2节点成功从区块链B所打包的最新区块上读取到区块链T的第一数据信息,t2节点再次向区块链B其他节点读取相同高度的第三数据信息,所述t2节点判断第一数据信息、第三数据信息高度是否一致,若一致则区块链B打包出块成功,若不一致则区块链B打包出块未成功,跨链复制信息失败。

若验证符合阈值条件,则跨链复制信息成功,则区块链T的出块节点获取区块链B的信息再次进行打包出块;若不符合阈值条件,则跨链复制信息失败;

所述阈值条件为:若区块链B采用强一致性的共识算法,所述阈值条件为出块成功;

若区块链B采用弱一致性的共识算法,所述阈值条件为:区块链B中带有第一数据信息的最新区块出块后,等待一定数量的出块。

第二获取模块,用于使出块节点接收t2节点的打包指令获取区块链B 的信息进行打包出块。

本公开实施例还包括一种区块链信息跨链交互系统,应用于t1节点,用于实现步骤S200(即实施例2),包括:

判断模块,用于t1节点判断区块链A是否符合第一反馈条件,若是,则所述区块链T的t1节点获取并验证所述区块链A的第一数据信息

本公开实施例还公开了另一种区块链信息跨链交互系统,应用于区块链T的出块节点,用于实现步骤S300、S301(即实施例3),包括:

存储模块,用于使所述出块节点若接收t1节点验证通过信号,将第一数据信息存储到本地链上生成区块;

若出块节点接收t1节点未验证通过信号舍弃所述第一数据信息;

打包出块模块,用于区块链T的出块节点接收t2节点的打包指令,获取区块链B的信息再次进行打包出块(一般情况下采用主要信息再次打包出块即可)。

本公开实施例又公开了另一种区块链信息跨链交互系统,应用于t2节点,用于实现步骤S400、S401、S402(即实施例4),包括以下:

交易模块,用于接收区块并向区块链B发送交易;

阈值模块,用于开启监听操作读取区块链B的区块信息,判断区块链 B打包出块是否成功,若打包出块成功,则t2节点读取区块链B数据,验证所读取区块链B的数据是否符合阈值条件,

若打包出块未成功,则跨链复制信息失败;

发送指令模块,用于若验证符合阈值条件,则跨链复制信息成功,t2 节点发送打包指令给出块节点;

若不符合阈值条件,则跨链复制信息失败。

图7示出根据本公开一实施方式的设备的结构框图。

前述实施例描述了区块链A、区块链T、区块链B的内部功能和结构,在一个可能的设计中,前述区块链A、区块链T、区块链B的结构可实现为某一设备,该设备为电子设备,该电子设备900可以包括处理器901和存储器902。

所述存储器902用于存储支持处理器执行上述任一实施例中区块链信息跨链交互方法的程序,所述处理器901被配置为用于执行所述存储器902 中存储的程序。

所述存储器902用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器901执行以实现以下步骤:

S1、区块链T的t1节点判断区块链A是否符合第一反馈条件,若是,则所述区块链T的t1节点获取并验证所述区块链A的第一数据信息;

若验证通过后,则区块链T的出块节点接收t1节点验证通过信号将第一数据信息存储到本地链上生成区块;区块链T的t2节点接收区块并向区块链B发送交易;

若验证未通过,则出块节点接收t1节点未验证通过信号舍弃所述第一数据信息;

S2、所述区块链B接收交易执行打包出块操作;

S3、所述区块链T的t2节点开启监听操作读取区块链B的区块信息,判断区块链B打包出块是否成功,若打包出块成功,则t2节点读取区块链的B数据,验证所读取区块链B的数据是否符合阈值条件,若打包出块未成功,则跨链复制信息失败;

若验证符合阈值条件,则跨链复制信息成功,t2节点发送打包指令给出块节点;若不符合阈值条件,则跨链复制信息失败;

S4、区块链T的出块节点接收t2节点的打包指令,获取区块链B的信息再次进行打包出块(一般情况下采用主要信息再次打包出块即可);

也就是说,该程序可以实现实施例1的步骤。

或者所述一条或多条计算机指令被所述处理器901执行以实现以下步骤S200或者S300、S301或者S400、S401、S402。

图8是适于用来实现根据本公开一实施方式的区块链信息跨链交互方法的计算机系统的结构示意图。

如图8所示,计算机系统1000包括处理器(CPU、GPU、FPGA等) 1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行上述附图所示的实施方式中的部分或全部处理。在RAM1003中,还存储有系统1000 操作所需的各种程序和数据。处理器1001、ROM1002以及RAM1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。

以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。

特别地,根据本公开的实施方式,上文参考附图描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行附图中的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011 被安装。

附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述节点中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 应用于t1节点的区块链信息跨链交互方法、系统、设备
  • 区块链间跨链信息交互方法、系统、介质、设备及应用
技术分类

06120112895615