CN115774728B - 基于预言机的联盟链跨链操作方法、装置、设备及介质 - Google Patents
基于预言机的联盟链跨链操作方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115774728B CN115774728B CN202310114409.5A CN202310114409A CN115774728B CN 115774728 B CN115774728 B CN 115774728B CN 202310114409 A CN202310114409 A CN 202310114409A CN 115774728 B CN115774728 B CN 115774728B
- Authority
- CN
- China
- Prior art keywords
- chain
- cross
- target data
- alliance
- machine
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请是关于基于预言机的联盟链跨链操作方法、装置、设备及介质,本申请涉及联盟链数据跨链技术领域。该方法包括:首先接收联盟链中第一联盟链的预言机服务发送的跨链请求,并依据预定义的交互规则对跨链请求验证,得到验证结果,根据验证结果确定第二联盟链的预言机服务并对第二联盟链进行目标数据查询和整理,得到目标数据结果,最后接收第二联盟链返回的目标数据结果时,将目标数据结果发送至第一联盟链完成跨链。通过结合三种联盟链预言机模式为各个联盟链传输数据,在自动执行的基础上实现双向跨链交互的目的,满足了跨链交互操作的实时性和主动性,以及跨链场景下的高效率、低时延要求。
Description
技术领域
本申请涉及联盟链数据跨链技术领域,尤其涉及基于预言机的联盟链跨链操作方法、装置、设备及介质。
背景技术
联盟链,作为区块链的其中一种,即,联盟链由多个私有链组成的集群,又保留了私有链中一定的私有化程度。在联盟链中跨链技术可以有效拓展行业联盟业务的交互和数据共享。
相关技术中,在联盟链数据跨链交互可以通过单向数据迁移,即在双方链默认同意单向迁移的场景下调用触发,以实现将链上数据转为链下,并且在链下以建立服务网络的形式提供,这将消耗大量的计算资源,并且,在接收到跨链请求参数后需要人为调用触发也不满足跨链交互的及时性和主动性。
可见相关技术中,需要双方链同意的单向迁移的交互方式,以及基于链上链下预言机的设置,不能满足联盟链数据交互操作要求的高效率、低时延的效果。
发明内容
为克服相关技术中存在的问题,本申请提供基于预言机的联盟链跨链操作方法、装置、设备及介质,应用于联盟链间数据交互的跨链互操作,满足高效率的数据交互。
本申请第一方面提供基于预言机的联盟链跨链操作方法,各个联盟链通过跨链预言机相连接,参与跨链的联盟链输出端均设有预言机合约,所述方法应用于跨链预言机,所述方法包括:
接收所述联盟链中第一联盟链基于预言机合约发送的跨链请求;所述跨链请求包括:用户身份信息、目标数据地址以及目标数据类型;
依据预定义的交互规则对所述用户身份信息和所述目标数据类型验证,得到验证结果;
当所述验证结果是用户身份合法且数据类型符合规范时,根据所述目标数据地址确定第二联盟链的预言机合约;
基于所述第二联盟链的预言机合约将所述跨链请求发送给第二联盟链,以使所述第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果;
当接收第二联盟链返回的所述目标数据结果时,将所述目标数据结果发送至所述第一联盟链完成跨链;
其中,参与跨链的联盟链间基于统一规则进行交互,所述跨链预言机具有基于拉取的出站预言机模式、基于推送的出站预言机模式以及基于推送的入站预言机模式,所述基于拉取的出站预言机模式具有查询数据功能,所述基于推送的出站预言机模式具有跨链请求处理的功能,所述基于推送的入站预言机具有数据反馈的功能。
优选的,所述跨链请求为与所述第一联盟链通讯连接的用户端发送,所述接收所述联盟链中第一联盟链基于预言机合约发送的跨链请求,包括:
依据所述跨链请求中的所述目标数据地址提取所述目标数据的请求参数;
触发所述基于推送的出站预言机模式解析所述请求参数,构建与所述第一联盟链的通信连接。
优选的,所述依据预定义的交互规则对所述用户身份信息、目标数据类型验证,得到验证结果,包括:
对所述用户身份信息进行验证,得到第一验证结果;对所述目标数据类型进行验证,得到第二验证结果;依据所述预定义的交互规则对所述第一验证结果和第二验证结果进行验证;
当所述第一验证结果通过且所述第二验证结果通过时,所述第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到所述目标数据结果;
当所述第一验证结果不通过和/或所述第二验证结果不通过时,所述跨链预言机拒绝通过验证并将跨链失败信息反馈至所述第一联盟链。
优选的,所述第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果,包括:
接收用于查询目标数据的查询请求;
调用所述第二联盟链的预言机合约对所述目标数据查询和整理;
触发所述基于拉取的出站预言机模式拉取所述目标数据,依据所述交互规则进行解析和组合。
优选的,所述将所述目标数据结果发送至所述第一联盟链完成跨链,包括:
接收第二联盟链发送的所述目标数据结果;
触发所述基于推送的入站预言机模式将所述目标数据结果转发至所述第一联盟链的预言机合约;
所述预言机合约对目标数据结果进行存储并同步到所述第一联盟链中各个节点。
优选的,还包括:
所述跨链预言机生成非对称密钥;
所述预言机合约具有存储功能,保留与所述预言机合约发生通信交互的任一预言机合约的非对称密钥;
所述跨链预言机通过安全加密密码生成对称密钥。
本申请第二方面提供基于预言机的联盟链数据跨链互操作装置,各个联盟链通过跨链预言机相连接,参与跨链的联盟链输出端均设有预言机合约,所述装置应用于跨链预言机,所述装置包括:
接收模块,用于接收所述联盟链中第一联盟链基于预言机合约发送的跨链请求;所述跨链请求包括:用户身份信息、目标数据地址以及目标数据类型;
验证模块,用于依据预定义的交互规则对所述用户身份信息、目标数据类型验证,得到验证结果;
判断模块,用于当所述验证结果是用户身份合法且数据类型符合规范时,根据所述目标数据地址确定第二联盟链的预言机合约;
查询模块,用于基于所述第二联盟链的预言机合约将所述跨链请求发送给第二联盟链,以使所述第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果;
反馈模块,用于当接收第二联盟链返回的所述目标数据结果时,将所述目标数据结果发送至所述第一联盟链完成跨链;
其中,参与跨链的联盟链间基于统一规则进行交互,所述跨链预言机具有基于拉取的出站预言机模式、基于推送的出站预言机模式以及基于推送的入站预言机模式,所述基于拉取的出站预言机模式具有查询数据功能,所述基于推送的出站预言机模式具有跨链请求处理的功能,所述基于推送的入站预言机具有数据反馈的功能。
优选的,还包括:
非对称密钥生成模块,用于生成非对称密钥;所述预言机合约具有存储功能,保留与所述预言机合约发生通信交互的任一预言机合约的非对称密钥;
对称密钥生成模块,用于所述跨链预言机通过安全加密对称密钥生成加密密码。
本申请第三方面提供一种电子设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
本申请第四方面提供一种存储介质,所述存储介质用于存储指令代码,所述指令代码用于执行如上所述的领导节点选举方法。
由此可见,本申请提供的基于预言机的联盟链数据跨链互操作方法,所述方法首先接收联盟链中第一联盟链基于预言机合约发送的跨链请求,其中,跨链请求包括用户身份信息、目标数据地址以及目标数据类型,依据预定义的交互规则对用户身份信息、目标数据类型验证,得到验证结果,当验证结果是用户身份合法且数据类型符合规范时,根据目标数据地址确定第二联盟链的预言机合约,然后基于第二联盟链的预言机合约将跨链请求发送给第二联盟链,以使第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果,最后当接收第二联盟链返回的目标数据结果时,将目标数据结果发送至第一联盟链完成跨链。由于通过结合三种联盟链预言机模式为各个联盟链传输数据,在自动执行的基础上实现双向跨链交互的目的,满足了跨链交互操作的实时性和主动性,以及跨链场景下的高效率、低时延要求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过结合附图对本申请示例性实施方式进行更详细的描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。
图1是本申请实施例示出的基于预言机的联盟链跨链操作方法的流程示意图;
图2是本申请实施例示出的基于预言机的联盟链跨链操作方法的整体架构示意图;
图3是本申请实施例示出的基于预言机的联盟链跨链操作方法的混合加密示意图;
图4是本申请实施例示出的跨链交互操作装置的结构示意图;
图5是本申请实施例示出的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的优选实施方式。虽然附图中显示了本申请的优选实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
本申请实施例,主要应用在联盟链数据跨链场景中,尤其是涉及基于预言机的联盟链跨链操作方法、装置、设备及介质。在联盟链中跨链技术可以有效拓展行业联盟业务的交互和数据共享,在联盟业务链间进行跨链数据交互,就需要满足高效率、低时延。
相关技术中,可以通过实现双方链默认的单项数据迁移,需要双方均同意一个方向的跨链数据迁移,并且需要人为调用,无法再接收到跨链请求参数后自动触发,目前预言机大多用于链外与区块链的桥梁,通过将链上数据转为链下,并且在链下以URL形式提供,消耗了大量的计算资源,因此难以满足联盟链跨链数据交互的高效率、低时延的要求。
可见,相关技术中,待发现跨链请求后,无法立即验证和确认请求数据,并且被动触发的单向交互也不满足联盟链跨链数据交互的及时性和双向性。
基于相关技术中存在的无法立即验证以及不能自动执行双向交互的技术问题,本申请实施例公开了基于预言机的联盟链数据跨链互操作方法。
参见图1,图1是本申请实施例中基于预言机的联盟链跨链操作方法的流程示意图。
本申请公开了基于预言机的联盟链跨链操作方法,各个联盟链通过跨链预言机相连接,参与跨链的联盟链输出端均设有预言机合约,该方法应用于跨链预言机,包括:
S10、接收联盟链中第一联盟链基于预言机合约发送的跨链请求,跨链请求包括:用户身份信息、目标数据地址以及目标数据类型。
S20、依据预定义的交互规则对用户身份信息和目标数据类型验证,得到验证结果。
S30、当验证结果是用户身份合法且数据类型符合规范时,根据目的数据地址确定第二联盟链的预言机合约。
S40、基于第二联盟链的预言机合约将跨链请求发送给第二联盟链,以使第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果。
S50、当接收第二联盟链返回的目标数据结果时,将目标数据结果发送至第一联盟链完成跨链。
其中,参与跨链的联盟链间基于统一规则进行交互,所述跨链预言机具有基于拉取的出站预言机模式、基于推送的出站预言机模式以及基于推送的入站预言机模式,所述基于拉取的出站预言机模式具有查询数据功能,所述基于推送的出站预言机模式具有跨链请求处理的功能,所述基于推送的入站预言机具有数据反馈的功能。
本申请实施例,参见图2,图2为本申请实施例示出的基于预言机的联盟链跨链操作方法的整体架构示意图,整体架构包括:联盟链部分和跨链预言机部分,各个联盟链中由多个节点组成,当用户端需要获取其他联盟链的链上数据时形成的跨链交互操作。
本申请实施例中,各个联盟链通过跨链预言机相连接,参与跨链的联盟链输出端均设有预言机合约,跨链预言机主要包括:与联盟链锚定合约的预言机服务以及公共预言机服务。
链下预言机服务主要用于立即获取跨链请求,获取跨链请求的查询参数并接收查询到的目标数据,从而完成数据请求链与数据所在链的链间交互操作。
公共预言机服务通过预定义的联盟链间交互规则对跨链请求进行验证、收集服务信息以及进行服务的转发。
本申请实施例中,第一联盟链可以理解为跨链数据交互中的请求链,用于发出跨链请求,在联盟链跨链交互场景下,参与跨链的每条联盟链既可以作为请求链发出跨链请求,也可以作为数据源链为其他联盟链的跨链请求提供链上信息。
本申请实施例中,跨链请求是由用户向第一联盟链提出的访问请求,可以实现请求方对不同联盟链的数据资源进行统一描述,公共预言机服务根据描述信息定位目标数据所在联盟链地址。跨链请求还包括用户身份信息和目标数据类型。
可以理解的是,跨链请求中目标数据类型可以是具体的数据描述信息,也可以根据目标数据所在联盟链中业务的形式而定。
本申请实施例中,针对跨链请求的验证主要通过公共预言机服务判断联盟链间数据互操作用户身份是否真实合法、请求数据是否符合规范,当验证通过时,即可自动对跨链请求收集服务信息以及进行服务信息的转发,将跨链请求和解析组合后的信息传递给数据源所在联盟链锚定的预言机服务。
本申请实施例,预定义交互规则包括:
参与跨链的各个联盟链的映射信息、跨链请求解释格式、目标数据的加解密规则以及联盟链指定转发规则。
本申请实施例中,预定义的交互规则可以理解为联盟业务链间的数据需要统一定义按照规则进行交互,当新的联盟链参与跨链时也需要按照预定义的映射和交互规则进行跨链流程。
其中,联盟链间交互规则主要包括:联盟链信息映射以及跨链服务标识;跨链服务注册与发现、预言机服务可转发映射;数据交互格式预定义;服务转发格式的预定义,联盟链信息映射以及跨链服务标识定义为,
(1)
式(1)中,参与跨链的联盟链根据其自身的描述信息具有不同的链服务标识,方便在公共预言机服务中为联盟链指定跨链服务以及注册。
跨链服务注册与发现、预言机服务可转发映射定义为,
(2)
式(2)中,预言机服务的可转发映射是指当联盟链决定参与跨链时提供的可以从本联盟链获取数据的联盟链及跨链服务信息,因此,对每一条参与跨链的联盟链拥有一个如下的服务可转发映射chainScale。
数据交互格式预定义,定义为,
(3)
式(3)中,数据交互格式的预定义主要包括:跨链请求格式与服务转发格式。跨链请求是预言机合约收到的从链上交易或链上合约发起的跨链请求。
服务转发格式的预定义,定义为,
(4)
式(4)中,服务转发是公共预言机进行服务发现后为请求方指定对应的目的跨链服务,并将请求信息转发到目的跨链服务,以供目的服务解析处理。
本申请实施例中,第二联盟链可以理解为跨链数据交互中的目标数据所在的联盟链,第二联盟链的预言机服务接收由公共预言机服务发送的跨链请求和解析组合后的信息,第二联盟链的预言机服务查询接收到的请求参数并传递整理的数据。
本申请实施例中,在跨链数据交互场景下,第一联盟链与第二联盟链实现双向的跨链数据流向。
进一步的,联盟链的链间互操作的源链与目标链常常不唯一确定是两条链,因此,参与跨链的联盟链可以是多个,任一联盟链既可以作为请求链,也可以作为目标数据源链。
本申请实施例中,根据数据流方向和出入站两个维度区块链预言机可以分为四种模式:基于拉取的入站预言机、基于推送的入站预言机、基于拉取的出站预言机和基于推送的出站预言机,现有技术中单向数据跨链迁移的场景下,适用基于拉取的入站预言机需要人为主动控制出发时机,只适用于确定两条链的单向数据迁移,无法满足双向数据跨链时的及时性和自动性。
结合基于拉取的出站预言机、基于推送的出站预言机以及基于推送的入站预言机,实现链间数据和请求在请求链和目的数据所在链的双向流动,满足了联盟链间的高效数据交互。
本申请实施例,S10中跨链请求为与第一联盟链通讯连接的用户端发送,接收联盟链中第一联盟链基于预言机合约发送的跨链请求,包括:
S110、依据跨链请求中的目标数据地址提取目标数据的请求参数。
S120、触发基于推送的出站预言机模式解析请求参数,构建与第一联盟链的通信连接。
本申请实施例中,参与跨链的联盟链中部署合约包括:普通智能合约和预言机合约,普通智能合约主要用于联盟链上的业务处理;而预言机合约作为与链下预言机服务锚定的链上部分,用于收集并处理本链各个用户发起的跨链请求、接收到的请求数据查询以及启动跨链请求数据返回的存储。
在实际使用中,当预言机合约部署到联盟链上时,在部署交易的收据中返回一个合约地址,结合参与跨链的联盟链的标识映射,可以唯一指定并建立该联盟链的链下预言机服务。
预言机合约会处理联盟链各个用户发起的跨链请求、查询接收到的请求参数、调用其他合约进入链上数据的查询、与锚定的链下预言机服务交互并传递整理的数据以及会为了避免资源的浪费存储跨链返回的交易哈希等部分数据。
进一步的,参与跨链的联盟链处理需要部署预言机合约并提供该合约的访问权限和对联盟链的准入外,还可以按照自身业务的需要进行联盟节点的部署和业务逻辑的处理,无需为适应跨链方案单独进行设计。
本申请实施例中,基于推送的出站预言机实现了当链上预言机合约被用户或其它合约调用时,写入由各个主题组成的链上合约的事件日志,事件日志通过订阅收集跨链请求的主题来接收调用信息,经过解析来获取跨链请求数据,一旦发现跨链请求数据,立即与预言机服务交互推出本链,进入后续流程,因此,设置基于推送的出站预言机满足跨链请求处理的及时性。
本申请实施例,S20中,依据预定义的交互规则对用户身份信息、目标数据类型验证,得到验证结果,包括:
S201、对用户身份信息进行验证,得到第一验证结果;对目标数据类型进行验证,得到第二验证结果;依据预定义的交互规则对第一验证结果和第二验证结果进行验证。
S202、当第一验证结果通过且第二验证结果通过时,第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果。
S203、当第一验证结果不通过和/或第二验证结果不通过时,跨链预言机拒绝通过验证并将跨链失败信息反馈至第一联盟链。
本申请实施例,对用户身份信息进行验证,得到第一验证结果包括,用户身份信息合法和用户身份信息不合法;第二验证结果包括目标数据类型符合规范和目标数据类型不符合规范;依据预定义的交互规则对第一验证结果和第二验证结果进行判定。
本申请实施例,当判定验证不通过时,公共预言机服务可以直接返回查询失败信息,也可以由合约返回信息码,以供用户查询失败信息。
本申请实施例,S40中,第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果,包括:
S401、接收用于查询目标数据的查询请求。
S402、调用第二联盟链的预言机合约对目标数据查询和整理。
S403、触发基于拉取的出站预言机模式拉取目标数据,依据交互规则进行解析和组合。
本申请实施例,接收查询请求可以理解为跨链预言机接收到的查询目标数据的请求参数,跨链预言机会主动与链上部分交互传递查询目标数据的请求参数。
本申请实施例,预言机合约经过调用获取第二联盟链状态,向链上节点获取目标链上数据,目标数据经过预言机合约转发与链外传输最终通过基于拉取的出站预言机拉到跨链预言机,在跨链预言机中按照预定义的交互规则中的交互格式进行解析和组合,然后进入后续流程,因此,设置基于拉取的出站预言机满足跨链交互操作中查询数据的主动性。
本申请实施例,S50中,将目标数据结果发送至第一联盟链完成跨链,包括:
S501、接收第二联盟链发送的所述目标数据结果。
S502、触发所述基于推送的入站预言机模式将所述目标数据结果转发至所述第一联盟链的预言机合约。
S503、所述预言机合约对目标数据结果进行存储并同步到所述第一联盟链中各个节点。
本申请实施例,当跨链预言机接收到目标数据时,查验接收的是跨链请求所需数据,立即经过链下传输将目标数据结果推入到与第一联盟链锚定的预言机合约,第一联盟链的预言机合约经过外部调用合约以及存储状态,将接收到的目标数据结果反馈给第一联盟链的共识节点。
本申请实施例,第一联盟链的预言机合约接收到目标数据结果后,将目标数据结果存储到链上,并将经历P2P过程到第一联盟链中的各个节点,依次进入后续流程,因此,设置基于推送的入站预言机满足跨链交互数据接收的及时性。
本申请实施例中,还包括:
所述跨链预言机生成非对称密钥;
所述预言机合约具有存储功能,保留与所述预言机合约发生通信交互的任一预言机合约的非对称密钥;
所述跨链预言机通过安全加密密码生成对称密钥。
本申请实施例,在可信预言机本地生成非对称密钥,通过安全加密对称密钥来分发加密密码,进而选择性加密隐私数据,避免数据在链外世界和传输过程中的安全隐患。
在实际应用过程中,参见图3,图3为本申请实施例示出的基于预言机的联盟链跨链操作方法的混合加密示意图,在实际应用过程中,第一联盟链301作为整个跨链操作的请求链,第一智能合约向第一预言机合约发送跨链请求302并接收第一预言机合约发送的数据303,第二联盟链305作为目标数据所在链,第二联盟链305的第二智能合约接收目标数据所在节点发送的查询及整理数据信息306以及第二预言机合约发送的目标数据信息,在跨链预言机304一次完整的通信交互中,其中,各个预言机服务生成或更新非对称密钥时,第一预言机服务与第二预言机服务(公共预言机服务)交换,第三预言机服务与第二预言机服务交换,第二预言机服务拥有第一预言机服务的公钥,这里。
可见,各个预言机服务之间可以在交互时适用对方的公钥加密数据,但是在第二预言机服务与第一预言机服务之间只涉及到跨链请求和指定服务的数据传输,不涉及跨链请求的目的数据,考虑到公共预言机的正常工作流程和强度,跨链请求的目的数据进行返回时便不再经由第二预言机服务,而是在第一预言机服务之间进行目的数据的加密传输。
基于上述实施例的基础上,通过组合三种预言机模式,在基于拉取的出站预言机基础上,引入基于推送的入站预言机和基于推送的出站预言机,满足了跨链交互操作的实时性和主动性,考虑公共网络跨链交互操作时存在的信息链外暴露隐患,采用对称密钥与非对称密钥混合选择加密的方法来传输链间交互的信息,保证跨链交互操作的安全性。
参见图4,图4为本申请实施例示出的跨链交互操作装置的结构示意图,本申请实施例示出的基于预言机的联盟链跨链操作装置,各个联盟链通过跨链预言机相连接,参与跨链的联盟链输出端均设有预言机合约,所述装置应用于跨链预言机,所述装置包括:
接收模块1,用于接收所述联盟链中第一联盟链基于预言机合约发送的跨链请求;所述跨链请求包括:用户身份信息、目标数据地址以及目标数据类型。
验证模块2,用于依据预定义的交互规则对所述用户身份信息、目标数据类型验证,得到验证结果。
判断模块3,用于当所述验证结果是用户身份合法且数据类型符合规范时,根据所述目标数据地址确定第二联盟链的预言机合约。
查询模块4,用于基于所述第二联盟链的预言机合约将所述跨链请求发送给第二联盟链,以使所述第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果。
反馈模块5,用于当接收第二联盟链返回的所述目标数据结果时,将所述目标数据结果发送至所述第一联盟链完成跨链。
其中,参与跨链的联盟链间基于统一规则进行交互,所述跨链预言机具有基于拉取的出站预言机模式、基于推送的出站预言机模式以及基于推送的入站预言机模式,所述基于拉取的出站预言机模式具有查询数据功能,所述基于推送的出站预言机模式具有跨链请求处理的功能,所述基于推送的入站预言机具有数据反馈的功能。
本申请实施例中,跨链请求为与第一联盟链通讯连接的用户端发送,所述接收模块具体用于:
依据跨链请求中的目标数据地址提取目标数据的请求参数。
触发基于推送的出站预言机模式解析请求参数,构建与第一联盟链的通信连接。
本申请实施例中,所述验证模块具体用于:
对用户身份信息进行验证,得到第一验证结果;对目标数据类型进行验证,得到第二验证结果;依据预定义的交互规则对第一验证结果和第二验证结果进行验证。
当第一验证结果通过且第二验证结果通过时,第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果。
当第一验证结果不通过和/或第二验证结果不通过时,跨链预言机拒绝通过验证并将跨链失败信息反馈至第一联盟链。
本申请实施例中,所述查询模块具体用于:
接收用于查询目标数据的查询请求。
调用所述第二联盟链的预言机合约对目标数据查询和整理。
触发基于拉取的出站预言机模式拉取所述目标数据,依据所述交互规则进行解析和组合。
本申请实施例中,所述反馈模块具体用于:
接收第二联盟链发送的目标数据结果。
触发基于推送的入站预言机模式将目标数据结果转发至第一联盟链的预言机合约。
预言机合约对目标数据结果进行存储并同步到第一联盟链中各个节点。
本申请实施例,还包括:
非对称密钥生成模块,用于生成非对称密钥;预言机合约具有存储功能,保留与预言机合约发生通信交互的任一预言机合约的非对称密钥。
对称密钥生成模块,用于跨链预言机通过安全加密对称密钥生成加密密码。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
参见图5,图5是本申请实施例示出的电子设备的结构示意图,电子设备500包括存储器510和处理器520。
处理器520可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器510可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器520或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器510可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器510可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、minSD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器510上存储有可执行代码,当可执行代码被处理器520处理时,可以使处理器520执行上文述及的方法中的部分或全部。
上文中已经参考附图详细描述了本申请的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本申请所必须的。另外,可以理解,本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本申请还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的处理器执行时,使所述处理器执行根据本申请的上述方法的各个步骤的部分或全部。
本领域技术人员还将明白的是,结合这里的申请所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本申请的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (9)
1.基于预言机的联盟链跨链操作方法,其特征在于,各个联盟链通过跨链预言机相连接,参与跨链的联盟链输出端均设有预言机合约,所述方法应用于跨链预言机,所述方法包括:
接收所述联盟链中第一联盟链基于预言机合约发送的跨链请求;所述跨链请求包括:用户身份信息、目标数据地址以及目标数据类型;
依据预定义的交互规则对所述用户身份信息和所述目标数据类型验证,得到验证结果;
当所述验证结果是用户身份合法且数据类型符合规范时,根据所述目标数据地址确定第二联盟链的预言机合约;
基于所述第二联盟链的预言机合约将所述跨链请求发送给第二联盟链,以使所述第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果;
当接收第二联盟链返回的所述目标数据结果时,将所述目标数据结果发送至所述第一联盟链完成跨链;
其中,参与跨链的联盟链间基于统一规则进行交互,所述跨链预言机具有基于拉取的出站预言机模式、基于推送的出站预言机模式以及基于推送的入站预言机模式,所述基于拉取的出站预言机模式具有查询数据功能,所述基于推送的出站预言机模式具有跨链请求处理的功能,所述基于推送的入站预言机具有数据反馈的功能;
所述跨链请求为与所述第一联盟链通讯连接的用户端发送,所述接收所述联盟链中第一联盟链基于预言机合约发送的跨链请求,包括:
依据所述跨链请求中的所述目标数据地址提取所述目标数据的请求参数;
触发所述基于推送的出站预言机模式解析所述请求参数,构建与所述第一联盟链的通信连接。
2.根据权利要求1所述的基于预言机的联盟链跨链操作方法,其特征在于,所述依据预定义的交互规则对所述用户身份信息、目标数据类型验证,得到验证结果,包括:
对所述用户身份信息进行验证,得到第一验证结果;对所述目标数据类型进行验证,得到第二验证结果;依据所述预定义的交互规则对所述第一验证结果和第二验证结果进行验证;
当所述第一验证结果通过且所述第二验证结果通过时,所述第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到所述目标数据结果;
当所述第一验证结果不通过和/或所述第二验证结果不通过时,所述跨链预言机拒绝通过验证并将跨链失败信息反馈至所述第一联盟链。
3.根据权利要求1所述的基于预言机的联盟链跨链操作方法,其特征在于,所述第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果,包括:
接收用于查询目标数据的查询请求;
调用所述第二联盟链的预言机合约对所述目标数据查询和整理;
触发所述基于拉取的出站预言机模式拉取所述目标数据,依据所述交互规则进行解析和组合。
4.根据权利要求1所述的基于预言机的联盟链跨链操作方法,其特征在于,所述将所述目标数据结果发送至所述第一联盟链完成跨链,包括:
接收第二联盟链发送的所述目标数据结果;
触发所述基于推送的入站预言机模式将所述目标数据结果转发至所述第一联盟链的预言机合约;
所述预言机合约对目标数据结果进行存储并同步到所述第一联盟链中各个节点。
5.根据权利要求1所述的基于预言机的联盟链跨链操作方法,其特征在于,还包括:
所述跨链预言机生成非对称密钥;
所述预言机合约具有存储功能,保留与所述预言机合约发生通信交互的任一预言机合约的非对称密钥;
所述跨链预言机通过安全加密密码生成对称密钥。
6.基于预言机的联盟链跨链操作装置,其特征在于,各个联盟链通过跨链预言机相连接,参与跨链的联盟链输出端均设有预言机合约,所述装置应用于跨链预言机,所述装置包括:
接收模块,用于接收所述联盟链中第一联盟链基于预言机合约发送的跨链请求;所述跨链请求包括:用户身份信息、目标数据地址以及目标数据类型;
验证模块,用于依据预定义的交互规则对所述用户身份信息、目标数据类型验证,得到验证结果;
判断模块,用于当所述验证结果是用户身份合法且数据类型符合规范时,根据所述目标数据地址确定第二联盟链的预言机合约;
查询模块,用于基于所述第二联盟链的预言机合约将所述跨链请求发送给第二联盟链,以使所述第二联盟链的预言机合约对第二联盟链进行目标数据查询和整理,得到目标数据结果;
反馈模块,用于当接收第二联盟链返回的所述目标数据结果时,将所述目标数据结果发送至所述第一联盟链完成跨链;
其中,参与跨链的联盟链间基于统一规则进行交互,所述跨链预言机具有基于拉取的出站预言机模式、基于推送的出站预言机模式以及基于推送的入站预言机模式,所述基于拉取的出站预言机模式具有查询数据功能,所述基于推送的出站预言机模式具有跨链请求处理的功能,所述基于推送的入站预言机具有数据反馈的功能。
7.根据权利要求6所述的基于预言机的联盟链跨链操作装置,其特征在于,还包括:
非对称密钥生成模块,用于生成非对称密钥;所述预言机合约具有存储功能,保留与所述预言机合约发生通信交互的任一预言机合约的非对称密钥;
对称密钥生成模块,用于所述跨链预言机通过安全加密对称密钥生成加密密码。
8.一种电子设备,其特征在于,包括:
处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-5中任一项所述的方法。
9.一种非暂时性机器可读存储介质,其特征在于,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310114409.5A CN115774728B (zh) | 2023-02-15 | 2023-02-15 | 基于预言机的联盟链跨链操作方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310114409.5A CN115774728B (zh) | 2023-02-15 | 2023-02-15 | 基于预言机的联盟链跨链操作方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115774728A CN115774728A (zh) | 2023-03-10 |
CN115774728B true CN115774728B (zh) | 2023-04-14 |
Family
ID=85393714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310114409.5A Active CN115774728B (zh) | 2023-02-15 | 2023-02-15 | 基于预言机的联盟链跨链操作方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115774728B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116155624B (zh) * | 2023-04-18 | 2023-07-18 | 北京邮电大学 | 针对异构联盟链的跨链方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10460283B2 (en) * | 2017-09-13 | 2019-10-29 | Vijay Madisetti | Smart contract optimization for multiparty service or product ordering system |
CN114357066A (zh) * | 2021-12-13 | 2022-04-15 | 弥达斯科技(深圳)有限公司 | 区块链跨链交互方法、装置、设备及存储介质 |
CN114513518A (zh) * | 2022-02-28 | 2022-05-17 | 蚂蚁区块链科技(上海)有限公司 | 基于区块链的数据处理方法及系统 |
CN115567321B (zh) * | 2022-11-14 | 2023-03-03 | 安徽中科晶格技术有限公司 | 基于内置预言机合约的跨链系统及方法 |
-
2023
- 2023-02-15 CN CN202310114409.5A patent/CN115774728B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115774728A (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
JP7559111B2 (ja) | ブロックチェーン・ネットワークにおける高速伝搬のための方法及び特殊ネットワーク・ノード | |
CN112491847B (zh) | 区块链一体机及其自动建链方法、装置 | |
CN112953821B (zh) | 消息传输方法及装置 | |
CN109218391B (zh) | 一种基于区块链的分布式存储系统审计与去中心化的方法 | |
US9825836B2 (en) | Self-forming network | |
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
KR101260188B1 (ko) | 피어투피어 네트워크에 대한 분산 해시 테이블에서의 보안 노드 식별자 할당 | |
CN110311958B (zh) | 一种区块链网络系统 | |
Kwok | Peer-to-peer computing: Applications, architecture, protocols, and challenges | |
CN115774728B (zh) | 基于预言机的联盟链跨链操作方法、装置、设备及介质 | |
CN112416881A (zh) | 基于区块链的智能终端存储共享方法、装置、介质及设备 | |
CN113922971A (zh) | 跨链交互方法及装置 | |
CN111401904A (zh) | 联盟链中的共识方法和系统 | |
CN113259460A (zh) | 跨链交互方法及装置 | |
CN113409047A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN114528601B (zh) | 基于区块链数据的访问方法和装置、处理器及电子设备 | |
CN114374699A (zh) | 跨链交互方法和跨链交互的审计方法 | |
CN116057528A (zh) | 支持安全数据路由的方法和装置 | |
CN113923228A (zh) | 跨链交互方法及装置 | |
WO2023185042A1 (zh) | 直连通道的建立方法及装置 | |
CN110086727A (zh) | 一种cgn板间负载分担方法及装置 | |
CN114866560A (zh) | 区块链节点的迁移方法及装置 | |
CN114422520A (zh) | 跨链交互方法及装置 | |
CN116633699B (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 |