基于预言机的访问请求处理方法、装置、设备和介质与流程

文档序号:23230403发布日期:2020-12-08 15:18阅读:153来源:国知局
基于预言机的访问请求处理方法、装置、设备和介质与流程

本公开涉及计算机技术领域、区块链领域等,特别是涉及一种基于预言机的访问请求处理方法、一种基于预言机的访问请求处理装置、一种计算设备以及一种计算机可读存储介质。



背景技术:

预言机是一个可以回答特定问题集合的一个实体,该问题在限定的时间节点和相同的计算背景条件下得出的结论是不变的。比如与天气有关的预言机,在某一时刻询问其天气信息,预言机会给出该时刻的气候、温度、湿度、气压等多维度答案。该问题在不同时刻会得到不同答案,然而在某一指定时刻下的答案是不变的。预言机通常可以用于针对来自外部区块链的访问请求提供处理结果。

在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题。

在通过预言机针对外部区块链的访问请求提供处理结果时,相关技术难以保证处理结果的准确性。



技术实现要素:

有鉴于此,本公开提供了一种优化的基于预言机的访问请求处理方法、基于预言机的访问请求处理装置、计算设备和计算机可读存储介质。

本公开的一个方面提供了一种基于预言机的访问请求处理方法,包括:通过预言机网络接收来自外部区块链网络的第一访问请求,其中,所述预言机网络包括分布式预言机集群和预言机区块链网络,由所述分布式预言机集群中的每个预言机节点基于所述第一访问请求得到处理结果,并将所述处理结果存储至所述预言机区块链网络,由所述预言机区块链网络基于预设的验证方式来验证所述分布式预言机集群中的每个预言机节点的处理结果,在所述处理结果通过验证的情况下,确定存储于所述预言机区块链网络中的处理结果正确,并将正确的处理结果发送给所述外部区块链网络。

根据本公开实施例,上述方法还包括:通过预言机网络接收来自外部区块链网络的第二访问请求,在所述第二访问请求所针对的处理结果存储在所述预言机区块链网络中时,从所述预言机区块链网络中读取与所述第二访问请求相关的处理结果,将与所述第二访问请求相关的处理结果发送给所述外部区块链网络。

根据本公开实施例,上述第一访问请求所针对的处理结果包括第一标识信息。所述方法还包括:基于所述第二访问请求所针对的处理结果的第二标识信息,确定所述预言机区块链网络中是否存在与所述第二标识信息一致的第一标识信息,如果存在则确定第二访问请求所针对的处理结果存储在所述预言机区块链网络中。

根据本公开实施例,上述从所述预言机区块链网络中读取与所述第二访问请求相关的处理结果之前,所述方法包括:确定所述第一访问请求是否被处理完成,如果确定所述第一访问请求未被处理完成,等待所述第一访问请求被处理完成以将针对所述第一访问请求的处理结果存储至所述预言机区块链网络。

根据本公开实施例,上述方法还包括:将所述分布式预言机集群中每个预言机节点的变更信息写入所述预言机区块链网络第一智能合约。

根据本公开实施例,上述将所述处理结果存储至所述预言机区块链网络包括:将所述处理结果写入所述预言机区块链网络的第二智能合约。其中,所述由所述预言机区块链网络基于预设的验证方式来验证所述分布式预言机集群中的每个预言机节点的处理结果包括:由所述预言机区块链网络的第二智能合约基于所述第一智能合约中的变更信息来确定所述处理结果的背书信息,在所述处理结果的背书信息正确的情况下,基于预设的验证方式来验证所述分布式预言机集群中的每个预言机节点的处理结果。

根据本公开实施例,上述由第二智能合约基于所述第一智能合约中的变更信息来确定所述处理结果的背书信息包括:针对存储在所述第二智能合约中的每个处理结果,确定生成所述处理结果的预言机节点是否为第一智能合约中记录的有效节点。

根据本公开实施例,上述预设的验证方式包括:分布式预言机集群中超过预设比例的预言机节点针对所述第一访问请求的处理结果一致。

根据本公开实施例,上述由所述分布式预言机集群中的每个预言机节点基于所述第一访问请求得到处理结果包括:由所述分布式预言机集群中的每个预言机节点将所述第一访问请求发送至服务提供商,便于服务提供商处理所述第一访问请求以生成所述处理结果,接收来自所述服务提供商的处理结果。

本公开的另一个方面提供了一种基于预言机的访问请求处理装置,包括:接收模块、获取模块、验证模块以及发送模块。其中,接收模块用于通过预言机网络接收来自外部区块链网络的第一访问请求,其中,所述预言机网络包括分布式预言机集群和预言机区块链网络。获取模块用于通过所述分布式预言机集群中的每个预言机节点基于所述第一访问请求得到处理结果,并将所述处理结果存储至所述预言机区块链网络。验证模块用于通过所述预言机区块链网络基于预设的验证方式来验证所述分布式预言机集群中的每个预言机节点的处理结果。发送模块用于在所述处理结果通过验证的情况下,确定存储于所述预言机区块链网络中的处理结果正确,并将正确的处理结果发送给所述外部区块链网络。

根据本公开实施例,上述装置还包括:附加接收模块、读取模块以及附加发送模块。其中,附加接收模块用于接收来自外部区块链网络的第二访问请求。读取模块用于在所述第二访问请求所针对的处理结果存储在所述预言机区块链网络中时,从所述预言机区块链网络中读取与所述第二访问请求相关的处理结果。附加发送模块用于将与所述第二访问请求相关的处理结果发送给所述外部区块链网络。

根据本公开实施例,上述第一访问请求所针对的处理结果包括第一标识信息。所述装置还包括:第一确定模块,用于基于所述第二访问请求所针对的处理结果的第二标识信息,确定所述预言机区块链网络中是否存在与所述第二标识信息一致的第一标识信息,如果存在则确定第二访问请求所针对的处理结果存储在所述预言机区块链网络中。

根据本公开实施例,上述从所述预言机区块链网络中读取与所述第二访问请求相关的处理结果之前,所述装置包括:第二确定模块以及存储模块。其中,第二确定模块用于确定所述第一访问请求是否被处理完成。存储模块用于在如果确定所述第一访问请求未被处理完成,等待所述第一访问请求被处理完成以将针对所述第一访问请求的处理结果存储至所述预言机区块链网络。

根据本公开实施例,上述装置还包括:写入模块,用于将所述分布式预言机集群中每个预言机节点的变更信息写入所述预言机区块链网络第一智能合约。

根据本公开实施例,上述将所述处理结果存储至所述预言机区块链网络包括:将所述处理结果写入所述预言机区块链网络的第二智能合约。其中,所述由所述预言机区块链网络基于预设的验证方式来验证所述分布式预言机集群中的每个预言机节点的处理结果包括:由所述预言机区块链网络的第二智能合约基于所述第一智能合约中的变更信息来确定所述处理结果的背书信息,在所述处理结果的背书信息正确的情况下,基于预设的验证方式来验证所述分布式预言机集群中的每个预言机节点的处理结果。

根据本公开实施例,上述由第二智能合约基于所述第一智能合约中的变更信息来确定所述处理结果的背书信息包括:针对存储在所述第二智能合约中的每个处理结果,确定生成所述处理结果的预言机节点是否为第一智能合约中记录的有效节点。

根据本公开实施例,上述预设的验证方式包括:分布式预言机集群中超过预设比例的预言机节点针对所述第一访问请求的处理结果一致。

根据本公开实施例,上述由所述分布式预言机集群中的每个预言机节点基于所述第一访问请求得到处理结果包括:由所述分布式预言机集群中的每个预言机节点将所述第一访问请求发送至服务提供商,便于服务提供商处理所述第一访问请求以生成所述处理结果,接收来自所述服务提供商的处理结果。

本公开的另一方面提供了一种计算设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。

本公开的另一方面提供了一种非易失性可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

根据本公开的实施例,利用如上所述的基于预言机的访问请求处理方法,可以至少部分地解决相关技术中在通过预言机针对外部区块链的访问请求提供处理结果时,相关技术难以保证处理结果的准确性的技术问题。因此可以实现验证处理结果的效率的技术效果。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的基于预言机的访问请求处理方法和基于预言机的访问请求处理装置的应用场景;

图2示意性示出了根据本公开实施例的基于预言机的访问请求处理方法的流程图;

图3示意性示出了根据本公开另一实施例的基于预言机的访问请求处理方法的流程图;

图4示意性示出了根据本公开另一实施例的基于预言机的访问请求处理方法的流程图;

图5示意性示出了根据本公开实施例的基于预言机的访问请求处理装置的框图;以及

图6示意性示出了根据本公开实施例的用于实现处理访问请求的计算机系统的方框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程控制装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读存储介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

本公开的实施例提供了一种基于预言机的访问请求处理方法,包括:通过预言机网络接收来自外部区块链网络的第一访问请求,其中,预言机网络包括分布式预言机集群和预言机区块链网络。然后,由分布式预言机集群中的每个预言机节点基于第一访问请求得到处理结果,并将处理结果存储至预言机区块链网络,由预言机区块链网络基于预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果。接下来,在处理结果通过验证的情况下,确定存储于预言机区块链网络中的处理结果正确,并将正确的处理结果发送给外部区块链网络。

区块链是一种采用了非对称密钥对交易信息签名并加密传输的技术。区块链用于是验证交易、组装区块,并形成区块链结构。使用区块链的目的是为了达成共识机制,防止链分叉。可以使用p2p数据传输手段,以此来实现分布式网络存储。

区块链技术的颠覆力量来自于其分布式的、去中心化的加密数据存储技术,以及无需第三方信任机构的可靠底层机制。

区块链网络及依附于该网络的数字货币构成了一个去中心化的自组织生态,网络中的节点遵循统一的法则,数据不可篡改,数据多节点维护,简单清晰的共识机制,在此基础上形成的信任体系不需要依赖某一节点或者第三方,是对体系规则的信任。

区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。

针对中心化预言机,即当外部区块链网络执行智能合约访问某一预言机时,由中心化预言机访问服务提供商,该服务提供商整合了区块链网络需求的相关资源方,诸如天气、股票、汇率以及证券交易等资源,用于提供外部区块链网络中的智能合约进行调用存证。

中心化预言机难以自证,当接收到外部区块链网络的访问请求时,中心化预言机在没有监管的情况下,可以任意修改访问请求的内容,或返回不正确的处理结果,预言机的可靠性无法得到保障。即便是有监管接入的情况下,也只能监控其访问请求的内容,无法确定返回的处理结果的正确性。

针对去中心化预言机网络,即分布式预言机集群。分布式预言机集群中所有的预言机节点同时处理来自智能合约的访问请求,同时针对该访问请求到服务提供商处检索访问请求所针对的问题答案,所有预言机节点通过汇总答案,并将最可靠的答案作为返回的处理结果,例如超过51%预言机节点的答案一致,则将该答案的作为可信的处理结果返回。

中心化预言机网络能够一定程度上解决可信的问题,但每次执行智能合约验证的时候,所有参与区块链网络的节点都会对预言机发起验证请求,一旦涉及到大量和频繁的请求,将会对预言机造成处理压力。预言机每一次对问题的处理都需要汇总反馈以确保问题的可靠度,因此每一次的请求都会导致预言机所有节点的任务触发以及结果分析,对计算机资源有较高需求,同时难以实现高效率,即每一次的请求都会存在一定的耗时。

本公开实施例的基于预言机的访问请求处理方法例如采用去中心化预言机的方式。

图1示意性示出了根据本公开实施例的基于预言机的访问请求处理方法和基于预言机的访问请求处理装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,本公开实施例的应用场景例如包括预言机网络110、外部区块链网络120以及服务提供商130。

根据本公开实施例,预言机网络110是一个可以回答特定问题集合的一个网络,该问题在限定的时间节点和相同的计算背景条件下得出的结论是不变的。比如与天气有关的预言机,在某一时刻询问其天气信息,预言机网络110会给出该时刻的气候、温度、湿度、气压等多维度答案。该问题在不同时刻会得到不同答案,然而在某一指定时刻下的答案是不变的。预言机网络110通常可以用于针对来自外部区块链120的访问请求提供处理结果。

在外部区块链网络120在执行智能合约时,如果需要相关参数,则外部区块链网络120可以通过访问预言机网络110来请求获取相关参数。

服务提供商130可以是处理外部区块链网络120的访问请求并生成处理结果的机构。例如,服务提供商130可以是天气信息服务提供商,用于针对关于天气的访问请求提供某时刻或某时段的天气信息。

具体地,预言机网络110将来自外部区块链网络120的访问请求发送给服务提供商130,服务提供商130处理该访问请求得到处理结果,该处理结果中包含外部区块链120执行智能合约所需的参数。然后由预言机网络110将处理结果返回给外部区块链网络120。

图2示意性示出了根据本公开实施例的基于预言机的访问请求处理方法的流程图。

如图2所示,本公开实施例的基于预言机的访问请求处理方法例如可以包括操作s210~操作s240。

在操作s210,通过预言机网络接收来自外部区块链网络的第一访问请求,其中,预言机网络包括分布式预言机集群和预言机区块链网络。

根据本公开实施例,预言机网络例如是双分布式网络。例如预言机网络包括分布式预言机集群和预言机区块链网络。其中,分布式预言机集群例如包括多个预言机节点,每个预言机节点均可以接收外部区块链网络的访问请求。预言机区块链网络可以用于存储与第一访问请求相关联的处理结果。

例如,外部区块链网络在运行其智能合约时,向预言机网络发起第一访问请求。

在操作s220,由分布式预言机集群中的每个预言机节点基于第一访问请求得到处理结果,并将处理结果存储至预言机区块链网络。

例如,针对分布式预言机集群中的每个预言机节点来说,每个预言机节点均可以接收第一访问请求,并基于第一访问请求得到处理结果。然后,将每个预言机节点得到的处理结果写入预言机区块链网络。

例如,由分布式预言机集群中的每个预言机节点将第一访问请求发送至服务提供商,便于服务提供商处理第一访问请求以生成处理结果。然后,每个预言机节点可以接收来自服务提供商的处理结果并将该处理结果存储至预言机区块链网络。

在操作s230,由预言机区块链网络基于预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果。

在一种示例中,预设的验证方式包括:分布式预言机集群中超过预设比例的预言机节点针对第一访问请求的处理结果一致。

接下来,在操作s240,在处理结果通过验证的情况下,确定存储于预言机区块链网络中的处理结果正确,并将正确的处理结果发送给外部区块链网络。

例如,如果分布式预言机集群中有超过预设比例的预言机节点针对第一访问请求的处理结果一致,则可以确定处理结果通过验证。其中,预设比例可以是50%、80%、90%等等。以预设比例为50%为例,当分布式预言机集群具有50%以上的预言机节点针对第一访问请求得到的处理结果一致,可以确定处理结果通过验证。

根据本公开实施例,通过将预言机网络设置为包括分布式预言机集群和预言机区块链网络的双分布式网络,通过分布式预言机集群基于第一访问请求得到处理结果,并将处理结果存储至预言机区块链网络,使得存储至预言机区块链网络中的处理结果不可篡改。另外,可以通过预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果,使得通过验证的处理结果更加可靠。

图3示意性示出了根据本公开另一实施例的基于预言机的访问请求处理方法的流程图。

如图3所示,本公开实施例的基于预言机的访问请求处理方法例如可以包括操作s210~操作s240以及操作s310~操作s360。其中,操作s210~操作s240例如与图2中描述的操作相同或类似,在此不再赘述。在一种示例中,操作s310~操作s360例如在操作s240之后执行。

在操作s310,通过预言机网络接收来自外部区块链网络的第二访问请求。例如,外部区块链网络在运行其智能合约时,向预言机网络发起第二访问请求。

在操作s320,确定第一访问请求是否被处理完成。

在操作s330,如果确定第一访问请求未被处理完成,等待第一访问请求被处理完成以将针对第一访问请求的处理结果存储至预言机区块链网络。

如果确定第一访问请求已被处理完成并生成处理结果,则可以执行操作s340。

在操作s340,确定第二访问请求所针对的处理结果是否存储在预言机区块链网络中。

例如,第一访问请求所针对的处理结果包括第一标识信息,第一标识信息用于唯一表征第一访问请求。例如,第一标识信息可以表征第一访问请求的访问时间、访问者的id信息等。具体地,第一标识信息可以是处理结果的头部信息。

其中,确定第二访问请求所针对的处理结果是否存储在预言机区块链网络中例如包括:基于第二访问请求所针对的处理结果的第二标识信息,确定预言机区块链网络中是否存在与第二标识信息一致的第一标识信息,如果存在则确定第二访问请求所针对的处理结果存储在预言机区块链网络中。其中,第二标识信息用于唯一表征第二访问请求。例如,第二标识信息可以表征第二访问请求的访问时间、访问者的id信息等。

在操作s350,在第二访问请求所针对的处理结果存储在预言机区块链网络中时,从预言机区块链网络中读取与第二访问请求相关的处理结果。

接下来,在操作s360,将与第二访问请求相关的处理结果发送给外部区块链网络。

在本公开实施例中,针对第二访问请求,如果第二访问请求所针对的处理结果已经存储在预言机区块链网络中,则可以直接将针对第二访问请求的处理结果反馈给外部区块链网络,而不需要分布式预言机集群再一次将第二访问请求发送给服务提供商进行处理,从而提高了访问效率。

根据本公开实施例,预言机区块链网络运行有第一智能合约和第二智能合约。

其中,第一智能合约可以用于记录分布式预言机集群中每个预言机节点的节点信息。第二智能合约可以用于存储处理结果并基于预设的验证方式来验证所存储的处理结果是否正确。

例如,本公开实施例可以将分布式预言机集群中每个预言机节点的变更信息写入预言机区块链网络第一智能合约。其中,预言机节点的变更信息例如表征预言机节点为集群的新增节点、退出集群的节点等等。

根据本公开实施例,上述操作s220中关于将处理结果存储至预言机区块链网络包括:将处理结果写入预言机区块链网络的第二智能合约。

根据本公开实施例,上述操作s220中关于由预言机区块链网络基于预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果包括:

由预言机区块链网络的第二智能合约基于第一智能合约中的变更信息来确定处理结果的背书信息。其中,处理结果的背书信息例如包括预言机节点的节点信息。即,针对每个处理结果,该处理结果的背书信息为基于第一访问请求得到该处理结果的预言机节点的节点信息。

具体地,针对存储在第二智能合约中的每个处理结果,确定生成处理结果的预言机节点是否为第一智能合约中记录的有效节点。其中,第一智能合约中记录的有效节点例如可以是除了退出集群的节点之外的其他节点。即,针对退出集群的节点所得到的处理结果可以是不正确结果或不可信结果。

在处理结果的背书信息正确的情况下,可以基于预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果。例如,如果背书信息表征得到该处理结果的预言机节点不是退出集群的节点,则可以表明该处理结果有效,即背书信息正确,则可以进一步由第二智能合约基于预设的验证方式来验证该处理结果。

可以理解,通过本公开实施例的技术方案,提高预言机节点反馈给外部区块链网络的处理结果的可信度,并且提高了对处理结果的验证效率,从而提高的外部区块链网格的访问效率。

图4示意性示出了根据本公开另一实施例的基于预言机的访问请求处理方法的流程图。

如图4所示,本公开实施例的基于预言机的访问请求处理方法例如可以包括操作s401~操作s416。其中,本公开实施例对操作s401~操作s416的执行顺序不作限定。

本公开实施例,例如涉及外部区块链网络和预言机网络之间的数据交互。其中,预言机网络可以包括收发预言机、分布式预言机集群、预言机区块链网络等。收发预言机例如用于负责预言机网络和外部区块链网络之间的数据交互。分布式预言机集群例如用于处理来自外部区块链网络的第一访问请求和第二访问请求。预言机区块链网络例如用于验证和存储针对第一访问请求的处理结果。

在操作s401,外部区块链网络发起第一访问请求。例如外部区块链网络在执行其智能合约时,通过其智能合约发起第一访问请求。该第一访问请求例如是首次访问请求。

在操作s402,外部区块链网络发起第二访问请求。例如外部区块链网络在执行其智能合约时,通过其智能合约发起第二访问请求。该第二访问请求例如是首次访问请求之后的访问请求。

在操作s403,如果第一防问请求未被处理完成,则将第二访问请求挂起,等待第一访问请求被处理完成。

在操作s404,由收发预言机接收第一访问请求,并将第一访问请求发送至分布式预言机集群中进行处理。

在操作s405,分布式预言机集群发生节点变更,例如集群新增节点或节点退出集群等。

在操作s406,将预言机节点的变更信息同步至预言机区块链网络。预言机区块链网络包括第一智能合约和第二智能合约。

其中,第一智能合约可以用于记录分布式预言机集群中每个预言机节点的节点信息。第二智能合约可以用于存储处理结果并基于预设的验证方式来验证所存储的处理结果是否正确。

在操作s407,更新预言机节点的变更信息至预言机区块链网络中的第一智能合约。

在操作s408,由分布式预言机集群中的每个预言机节点同时处理第一访问请求。例如,由每个预言机节点将第一访问请求发送给服务提供商进行处理,并接收服务提供商返回的处理结果。

在操作s409,将每个预言机节点处理得到的处理结果写入第二智能合约。

在操作s410,第二智能合约基于第一智能合约中的变更信息验证处理结果。具体地,第二智能合约基于第一智能合约中的变更信息验证处理结果的背书信息,在背书信息正确的情况下,可以基于预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果。

在操作s411,当处理结果通过验证时,将存储在第二智能合约中的处理结果返回给分布式预言机集群中的每个预言机节点。

在操作s412,每个预言机节点将处理结果返回给收发预言机。

在操作s413,收发预言机将处理结果返回外部区块链网络。

在操作s414,第一访问请求被处理完成得到处理结果之后,从第二智能合约中读取针对第二访问请求的处理结果。

在操作s415,将第二智能合约中针对第二访问请求的处理结果返回给收发预言机。

在操作s416,收发预言机将针对第二访问请求的处理结果返回外部区块链网络。

可见,通过将预言机网络设置为包括分布式预言机集群和预言机区块链网络的双分布式网络,通过分布式预言机集群基于第一访问请求得到处理结果,并将处理结果存储至预言机区块链网络,使得存储至预言机区块链网络中的处理结果不可篡改。另外,可以通过预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果,使得通过验证的处理结果更加可靠。

图5示意性示出了根据本公开实施例的基于预言机的访问请求处理装置的框图。

如图5所示,基于预言机的访问请求处理装置500例如可以包括接收模块510、获取模块520、验证模块530以及发送模块540。

接收模块510可以用于接收来自外部区块链网络的第一访问请求,其中,预言机网络包括分布式预言机集群和预言机区块链网络。根据本公开实施例,接收模块510例如可以执行上文参考图2描述的操作s210,在此不再赘述。

获取模块520可以用于基于第一访问请求得到处理结果,并将处理结果存储至预言机区块链网络。根据本公开实施例,获取模块520例如可以执行上文参考图2描述的操作s220,在此不再赘述。

验证模块530可以用于基于预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果。根据本公开实施例,验证模块530例如可以执行上文参考图2描述的操作s230,在此不再赘述。

发送模块540可以用于在处理结果通过验证的情况下,确定预言机区块链网络中的处理结果正确,并将正确的处理结果发送给外部区块链网络。根据本公开实施例,发送模块540例如可以执行上文参考图2描述的操作s240,在此不再赘述。

根据本公开实施例,装置500还可以包括:附加接收模块、读取模块以及附加发送模块。其中,附加接收模块用于接收来自外部区块链网络的第二访问请求。读取模块用于在第二访问请求所针对的处理结果存储在预言机区块链网络中时,从预言机区块链网络中读取与第二访问请求相关的处理结果。附加发送模块用于将与第二访问请求相关的处理结果发送给外部区块链网络。

根据本公开实施例,第一访问请求所针对的处理结果包括第一标识信息。装置500还可以包括:第一确定模块,用于基于第二访问请求所针对的处理结果的第二标识信息,确定预言机区块链网络中是否存在与第二标识信息一致的第一标识信息,如果存在则确定第二访问请求所针对的处理结果存储在预言机区块链网络中。

根据本公开实施例,从预言机区块链网络中读取与第二访问请求相关的处理结果之前,装置500还可以包括:第二确定模块以及存储模块。其中,第二确定模块用于确定第一访问请求是否被处理完成。存储模块用于在如果确定第一访问请求未被处理完成,等待第一访问请求被处理完成以将针对第一访问请求的处理结果存储至预言机区块链网络。

根据本公开实施例,装置500还可以包括:写入模块,用于将分布式预言机集群中每个预言机节点的变更信息写入预言机区块链网络第一智能合约。

根据本公开实施例,将处理结果存储至预言机区块链网络包括:将处理结果写入预言机区块链网络的第二智能合约。其中,由预言机区块链网络基于预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果包括:由预言机区块链网络的第二智能合约基于第一智能合约中的变更信息来确定处理结果的背书信息,在处理结果的背书信息正确的情况下,基于预设的验证方式来验证分布式预言机集群中的每个预言机节点的处理结果。

根据本公开实施例,由第二智能合约基于第一智能合约中的变更信息来确定处理结果的背书信息包括:针对存储在第二智能合约中的每个处理结果,确定生成处理结果的预言机节点是否为第一智能合约中记录的有效节点。

根据本公开实施例,预设的验证方式包括:分布式预言机集群中超过预设比例的预言机节点针对第一访问请求的处理结果一致。

根据本公开实施例,由分布式预言机集群中的每个预言机节点基于第一访问请求得到处理结果包括:由分布式预言机集群中的每个预言机节点将第一访问请求发送至服务提供商,便于服务提供商处理第一访问请求以生成处理结果,接收来自服务提供商的处理结果。

本公开还提供了一种计算设备,该计算设备可以包括:一个或多个处理器和存储装置。存储装置可以用于存储一个或多个程序。其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器可以执行图2~图4所示的方法。

本公开的另一方面提供了一种非易失性可读存储介质,存储有计算机可执行指令,该指令在被执行时用于实现图2~图4所示的方法。

本公开的另一方面提供了一种计算机程序,计算机程序包括计算机可执行指令,该指令在被执行时用于实现图2~图4所示的方法。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,接收模块510、获取模块520、验证模块530以及发送模块540中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,接收模块510、获取模块520、验证模块530以及发送模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块510、获取模块520、验证模块530以及发送模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图6示意性示出了根据本公开实施例的用于实现处理访问请求的计算机系统的方框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括处理器601、计算机可读存储介质602。该系统600可以执行根据本公开实施例的方法。

具体地,处理器601例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质602,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

计算机可读存储介质602可以包括计算机程序603,该计算机程序603可以包括代码/计算机可执行指令,其在由处理器601执行时使得处理器601执行根据本公开实施例的方法或其任何变形。

计算机程序603可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序603中的代码可以包括一个或多个程序模块,例如包括603a、模块603b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器601执行时,使得处理器601可以执行根据本公开实施例的方法或其任何变形。

根据本公开的实施例,接收模块510、获取模块520、验证模块530以及发送模块540中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器601执行时,可以实现上面描述的相应操作。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现上述方法。

根据本公开的实施例,计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。

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

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1