CN114327802B - 区块链访问链外数据的方法、装置、设备和介质 - Google Patents

区块链访问链外数据的方法、装置、设备和介质 Download PDF

Info

Publication number
CN114327802B
CN114327802B CN202210251326.6A CN202210251326A CN114327802B CN 114327802 B CN114327802 B CN 114327802B CN 202210251326 A CN202210251326 A CN 202210251326A CN 114327802 B CN114327802 B CN 114327802B
Authority
CN
China
Prior art keywords
chain
service
data
access
request
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
Application number
CN202210251326.6A
Other languages
English (en)
Other versions
CN114327802A (zh
Inventor
刘晓赫
郑旗
郑斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202210251326.6A priority Critical patent/CN114327802B/zh
Publication of CN114327802A publication Critical patent/CN114327802A/zh
Application granted granted Critical
Publication of CN114327802B publication Critical patent/CN114327802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开提供了一种区块链访问链外数据的方法、装置、设备和介质,涉及计算机技术领域,尤其涉及区块链技术。该方法应用于区块链节点,包括:获取基于业务合约发起的业务预执行请求;在执行业务预执行请求的过程中,如果检测到链外数据的访问需求,则产生链外数据访问请求;根据链外数据访问请求,使得预言机服务根据链外数据访问请求对链外数据源进行访问;接收预言机服务反馈的链外数据访问结果和预言机服务的背书签名;根据链外数据访问结果继续执行业务预执行请求,以产生业务预执行结果;获取业务事务请求并向区块链提交业务事务请求。上述技术方案能够降低区块链访问链外数据的延迟,并避免网络拥堵。

Description

区块链访问链外数据的方法、装置、设备和介质
技术领域
本公开涉及计算机技术领域,尤其涉及区块链技术。
背景技术
由于区块链系统是确定性的环境,所以,如果要访问链外数据源时,可通过预言机(Oracle)机制实现。
区块链中的业务合约,可以通过预言机节点中设置的预言机服务来访问链外数据源。但是,现有技术存在的缺陷在于,在执行区块链中事务请求的过程中,通过预言机服务访问链外数据,再向区块链反馈存在较高延迟;一次事务请求的访问需求会触发多次交互,导致网络拥堵。
发明内容
本公开提供了一种区块链访问链外数据的方法、装置、设备和介质,以解决预言机服务在访问链外数据时的较高延迟和网络拥堵问题。
第一方面,本公开实施例提供了一种区块链访问链外数据的方法,应用于区块链节点,所述方法包括:
获取基于业务合约发起的业务预执行请求;
在执行所述业务预执行请求的过程中,如果检测到链外数据的访问需求,则产生链外数据访问请求;
根据所述链外数据访问请求,使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问;
接收所述预言机服务反馈的链外数据访问结果和预言机服务的背书签名;
根据所述链外数据访问结果继续执行所述业务预执行请求,以产生业务预执行结果;
获取业务事务请求并向区块链提交所述业务事务请求;其中,所述业务事务请求包括所述业务预执行请求、链外数据访问结果、背书签名和业务预执行结果。
第二方面,本公开实施例还提供了一种区块链访问链外数据的装置,配置于区块链节点,所述装置包括:
业务预执行请求获取模块,用于获取基于业务合约发起的业务预执行请求;
链外数据访问请求生成模块,用于在执行所述业务预执行请求的过程中,如果检测到链外数据的访问需求,则产生链外数据访问请求;
预言机服务控制模块,用于根据所述链外数据访问请求,使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问;
反馈数据接收模块,用于接收所述预言机服务反馈的链外数据访问结果和预言机服务的背书签名;
业务预执行结果生成模块,用于根据所述链外数据访问结果继续执行所述业务预执行请求,以产生业务预执行结果;
业务事务请求获取模块,用于获取业务事务请求并向区块链提交所述业务事务请求;其中,所述业务事务请求包括所述业务预执行请求、链外数据访问结果、背书签名和业务预执行结果。
第三方面,本公开实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面实施例所提供的一种区块链访问链外数据的方法。
第四方面,本公开实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如第一方面实施例所提供的一种区块链访问链外数据的方法。
第五方面,本公开实施例还提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现如第一方面实施例所提供的一种区块链访问链外数据的方法。
本公开实施例通过在对业务合约发起的业务预执行请求的执行过程中,根据所产生的链外数据访问请求,能够对链外的预言机服务进行控制,以实现对链外数据源的访问并接收所反馈的链外数据访问结果,使得预言机服务无需以异步事件监听的方式获取链上所产生的链外数据访问请求,从而有效降低区块链在事务请求执行过程中获取链外数据的延迟,同时避免一次事务请求的访问需求触发多次交互所产生的网络拥堵。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例提供的一种区块链访问链外数据的方法的流程图;
图2是根据本公开实施例提供的一种区块链访问链外数据的方法的流程图;
图3是根据本公开实施例提供的一种区块链访问链外数据的方法的结构示意图;
图4是用来实现本公开实施例所提供的区块链访问链外数据的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例提供的一种区块链访问链外数据的方法的流程图,本公开实施例可适用于区块链通过执行基于业务合约发起的业务预执行请求,以访问链外数据的情况。该方法可由一种区块链访问链外数据的装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,电子设备可以为区块链节点。参考图1,该方法具体包括如下:
S110、获取基于业务合约发起的业务预执行请求;
其中,在区块链系统中可以部署各种智能合约来实现相应的业务功能,可称为业务合约,业务功能例如为:电子货物的购买、游戏等直接提供给用户的功能,业务功能也可以是在区块链系统中需要为其他业务合约提供的功能,例如,转账数据处理、权限验证等。用户可通过区块链的客户端获取业务合约提供的接口界面。
其中,用户可以根据自身需要通过客户端向业务合约发起业务事务请求。业务预执行请求可以是用户根据自身需要通过客户端向业务合约发起的预执行请求。需要注意的是,业务事务请求需要被广播至所有的区块链节点中执行,而预执行请求可以是在用户所在的当前区块链节点执行即可。
具体地,用户可以根据自身的需求通过客户端向业务合约发起相应的预执行请求,相应的,用户所在的当前区块链节点可以对该预执行请求进行获取。
S120、在执行所述业务预执行请求的过程中,如果检测到链外数据的访问需求,则产生链外数据访问请求;
其中,在区块链的客户端中可以运行多种去中心化应用(DApp),例如,金融衍生品交易平台、借贷平台、快递追踪、物联网(IoT)、稳定币、博彩游戏、保险以及预测市场等等。多数DApp在运行过程中都需要与区块链外的数据进行交互。其中,链外数据访问请求可以用于请求当前区块链节点所调用的智能合约对链外数据进行访问。链外数据可以包括交易商品的认证信息,物流快递信息、借贷方的个人征信信息以及用于为游戏玩家提供奖励的随机数信息等等。
具体地,当前区块链节点在对其所获取的业务预执行请求执行的过程中,可以对执行过程中所产生的需求进行检测,如果检测到存在对链外数据的访问需求,则可以生成对应的链外数据访问请求。
示例性的,如果检测到链外数据的访问需求,则产生链外数据访问请求包括:
如果检测到链外数据的访问需求,则根据所述访问需求确定待访问的链外数据源和预言机服务的地址,并根据所述待访问的链外数据源和预言机服务的地址产生链外数据访问请求。
其中,链外数据源可以是独立于区块链外用于存储数据的数据库或者数据库服务器。
具体地,当前区块链节点在业务预执行请求执行的过程中检测到链外数据的访问需求时,可以对该访问需求进一步解析,确定待访问的链外数据源和预言机服务的地址,则可根据所获取的链外数据源和预言机服务的地址,对链外数据访问请求进行生成。
可以理解的是,通过基于所检测到的链外数据的访问需求,能够对所要访问的链外数据源和预言机服务的地址进行确定,并生成相应的链外数据访问请求,从而使得当前区块链节点可以依据所生成的链外数据访问请求准确定位到链外数据源和预言机服务,有助于保证区块链访问链外数据过程的正确进行。
S130、根据所述链外数据访问请求,使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问;
其中,预言机服务可以用于将从链外数据源中获取的链外数据传递给区块链中对应的智能合约。该智能合约可以是预言机合约。预言机合约可以是在业务预执行请求执行的过程中,遇到需要访问链外数据的需求时所调用的、用于获取链外数据的智能合约。该预言机合约可以用于执行链外数据访问请求。
具体地,可以通过预言机合约执行链外数据访问请求,基于预言机服务的地址,对链下的预言机服务进行控制,以使得预言机服务可根据对应的链外数据源的地址对该链外数据源进行访问。
示例性地,根据所述链外数据访问请求,使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问包括:
根据所述链外数据访问请求,调用预言机服务的访问接口,以使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问。
具体地,当前区块链节点可以在执行链外数据访问请求的过程中,对在预言机服务中预先定义的访问接口进行调用,并通过该访问接口对预言机服务进行控制,进而根据链外数据访问请求可对链外数据源进行访问。
可以理解的是,基于链外数据访问请求,当前区块链节点能够以主动调用预言机服务中访问接口的方式,使得预言机服务对链外数据源进行访问,使得链下的预言机服务无需对区块链中的链外数据访问事件进行主动的异步监听,从而降低了区块链在获取链外数据时的延迟,且避免了一次事务请求的访问需求触发多次交互所产生的网络拥堵情况的发生。
可选的,所述预言机服务的访问接口可以为所述预言机服务的原生代码程序接口。
其中,预言机服务的原生代码接口可以是在预言机服务所对应的原生代码程序中预先定义的应用程序接口(API),可以供区块链中对应的智能合约进行调用。
具体地,通过在预言机服务所对应的原生代码程序中预先定义对链外数据进行访问的应用程序接口(API),以供区块链中对应的智能合约进行调用,从而使得当前区块链节点可以通过调用预言机服务的原生代码程序接口的方式对预言机服务进行控制,有助于提高访问链外数据源的效率。
示例性地,根据所述链外数据访问请求,调用预言机服务的访问接口可以具体包括:
根据所述链外数据访问请求中的预言机服务的地址,调用预言机服务的访问接口,并将所述待访问的链外数据源的地址作为调用访问接口的输入参数。
其中,链外数据访问请求中可以包括预言机服务的地址和链外数据源的地址。输入参数可以是预言机服务的访问接口实现对链外数据源访问功能所需要输入的参数。例如,该输入参数可以包括待访问的链外数据源的地址、预言机服务的地址以及链外数据源的网络应用程序接口(web API)访问请求的超文本传输协议(http)参数。该http参数包括网际互联协议(ip)、端口(port)、标头(header)以及请求方法(method)等相关参数。
具体地,当前区块链节点可以根据链外数据访问请求确定预言机服务的地址,向该预言机服务发起访问接口调用请求,并将待访问的链外数据源的地址作为相应的输入参数,以实现对所述访问接口的调用。
可以理解的是,基于预言机服务的地址,将待访问的链外数据源的地址作为输入参数对预言机服务的访问接口进行调用,使得当前区块链节点可以根据预言机服务和链外数据源的地址,主动实现对链外数据源的访问,无需预言机服务再对区块链中相应的链外数据访问事件进行异步监听,有助于降低区块链访问链外数据延迟,避免网络拥堵。
示例性地,根据所述链外数据访问请求,调用预言机服务的访问接口可以具体包括:
通过预言机合约执行所述链外数据访问请求,并产生预言机服务的访问接口的调用指令,由预言机合约的虚拟机传输给区块链内核程序;
通过所述区块链内核程序将所述调用指令传输给所述预言机服务所在的预言机节点。
其中,调用指令可以用于指示调用预言机服务的访问接口。预言机合约的虚拟机可以为预言机合约的执行提供计算资源和运行环境。区块链内核程序可以是用于支持区块链中各功能运行的核心程序。预言机节点可以是区块链外用于获取链外数据的服务节点。
具体地,预言机合约可在执行链外数据访问请求的过程中,产生预言机服务的访问接口的调用指令,并由该预言机合约所对应的虚拟机将该调用指令传输至区块链内核程序。进一步地,当区块链内核程序可以对该调用指令进行解析,确定待访问的预言机服务,以将该调用指令传送至待访问的预言机服务所在的预言机节点。
可以理解的是,基于预言机合约执行链外数据访问请求,能够产生预言机服务的访问接口的调用指令并传输至区块链内核,使得区块链内核可将该调用指令传输给对应的预言机服务所在的预言机节点,从而实现对相应的预言机服务的访问接口的调用,而无需预言机服务自身对区块链中相应的链外数据访问事件进行异步监听,有助于降低区块链访问链外数据延迟,避免网络拥堵。
示例性地,根据所述链外数据访问请求,调用预言机服务的访问接口包括:
通过预言机合约执行所述链外数据访问请求,以获取链外数据的访问需求;
根据所述访问需求,以及预言机合约中注册的预言机服务和链外数据源,确定待访问的链外数据源和预言机服务的地址产生链外数据访问请求。
其中,访问需求可以是用户对所要访问的链外数据的详细要求。
具体地,可以通过预言机合约对所获取的链外数据访问请求进行执行,可根据执行结果确定所要获取的链外数据的访问需求,基于该访问需求,可以在预言机合约中已经注册的预言机服务和链外数据源中查找相匹配的预言机服务和链外数据源,并确定该预言机服务和链外数据源的地址,以生成对应的链外数据访问请求。
可以理解的是,通过获取链外数据访问请求所对应的访问需求,能够在预言机合约中对相匹配的预言机服务和链外数据源进行确定,从而能够对所要访问的链外数据源和预言机服务予以确定,并重新生成相应的链外数据访问请求,使得所生成的链外数据访问请求中包含了所需要访问的预言机服务和链外数据源的精确地址,以指示对链外数据的准确获取,有助于提高链外数据的获取效率。
S140、接收所述预言机服务反馈的链外数据访问结果和预言机服务的背书签名;
其中,链外数据访问结果可以是由链外数据源中所获取的链外数据。预言机服务的背书签名可以是预言机服务对所获取的链外数据访问结果的签名,例如,可以是预言机服务利用自身私钥对链外数据访问结果所进行的签名。
具体地,预言机服务在链外数据源中获取到链外数据后,针对该链外数据进行签名,并将该链外数据和预言机服务的签名背书一起返回至对应区块链节点中。
S150、根据所述链外数据访问结果继续执行所述业务预执行请求,以产生业务预执行结果;
具体地,当前区块链节点在获取到链外数据访问结果后,当前业务预执行请求过程中所产生的链外数据的访问需求得以满足,可以继续对该业务预执行请求进行执行,从而获取到相应的预执行结果。
S160、获取业务事务请求并向区块链提交所述业务事务请求;其中,所述业务事务请求包括所述业务预执行请求、链外数据访问结果、背书签名和业务预执行结果;
其中,业务事务请求可以是用户基于自身需要,通过客户端向当前区块链节点所发起的事务处理请求。业务预执行请求可以是对该业务事务请求的预执行操作。
具体地,当前区块链节点可以在产生相应的业务预执行结果后,对该预执行结果进行签名,并将该预执行结果和签名置于特定的写集中,返回至用户所在的客户端。进一步地,用户可以基于所获取的预执行结果,通过客户端向区块链中对应的业务合约发起业务处理请求。其中,该业务处理请求中包括业务预执行请求、链外数据访问结果、背书签名和业务预执行结果。相应的,当前区块链节点可以对该业务处理请求进行获取并向区块链提交所述业务事务请求,以请求各区块链节点验证该业务事务请求。
可选的,背书签名可以用于在区块链节点验证到链外数据访问需求时,直接根据所述背书签名的验证结果确认所述链外数据访问结果。
具体地,当前区块链节点会将其所获取的业务事务请求广播至区块链的其它节点,以使得区块链各节点对该业务事务请求进行共识。其中,在各区块链节点对该业务事务请求进行验证的过程中,若执行到对链外数据访问需求进行验证时,可通过对该业务事务请求中的背书签名进行验证的方式,基于背书签名验证的结果对链外数据访问结果直接进行验证即可,而无需再次控制预言机服务访问外部数据源。
可选的,若背书签名的验证结果符合要求,则可以使用对应的链外数据访问结果继续执行业务事务请求。若验证失败,则可以停止业务事务请求的执行。
本公开实施例通过在对业务合约发起的业务预执行请求的执行过程中,根据所产生的链外数据访问请求,能够对链外的预言机服务进行使得,以实现对链外数据源的访问并接收所反馈的链外数据访问结果,使得预言机服务无需以异步事件监听的方式获取链上所产生的链外数据访问请求,从而有效降低区块链在事务请求执行过程中获取链外数据的延迟,同时避免了一次事务请求的访问需求触发多次交互所产生的网络拥堵。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等,均符合相关法律法规的规定,且不违背公序良俗。
图2是根据本公开实施例提供的一种区块链访问链外数据的方法的流程图。本公开实施例是在上述各实施例的技术方案的基础上,进行了优化。
进一步地,在“向区块链提交所述业务事务请求,以请求各区块链节点验证所述业务事务请求”操作之后,追加“接收并验证提交至区块链的业务事务请求的过程中,如果从所述业务事务请求中获取到链外数据访问结果和背书签名,则将所述链外数据访问结果和背书签名记录为链外数据访问需求的上下文;在验证所述链外数据的访问需求时,验证所述背书签名;在背书签名验证通过时,确认所述链外数据访问结果作为所述链外数据访问需求的结果。”,以实现链外数据访问需求的结果的确定。
如图2所示的区块链访问链外数据的方法,包括:
S210、获取基于业务合约发起的业务预执行请求;
S220、在执行所述业务预执行请求的过程中,如果检测到链外数据的访问需求,则产生链外数据访问请求;
S230、根据所述链外数据访问请求,使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问;
S240、接收所述预言机服务反馈的链外数据访问结果和预言机服务的背书签名;
S250、根据所述链外数据访问结果继续执行所述业务预执行请求,以产生业务预执行结果;
S260、获取业务事务请求并向区块链提交所述业务事务请求;其中,所述业务事务请求包括所述业务预执行请求、链外数据访问结果、背书签名和业务预执行结果;
可选的,背书签名可以用于在区块链节点验证到链外数据访问需求时,直接根据所述背书签名的验证结果确认所述链外数据访问结果。
S270、接收并验证提交至区块链的业务事务请求的过程中,如果从所述业务事务请求中获取到链外数据访问结果和背书签名,则将所述链外数据访问结果和背书签名记录为链外数据访问需求的上下文;
其中,上下文可以是用于验证链外数据访问需求所需要的相关信息。
具体地,当业务事务请求被提交至区块链后,区块链各节点可针对业务事务请求展开验证,进一步地,区块链各节点在验证过程中,可以解析出该业务事务请求中所包含的链外数据访问结果和背书签名,基于此,可以对该链外数据访问结果和背书签名进行获取,并记录为链外数据访问需求的上下文。
S280、在验证所述链外数据的访问需求时,验证所述背书签名;在背书签名验证通过时,确认所述链外数据访问结果作为所述链外数据访问需求的结果。
具体地,当验证过程执行至链外数据的访问需求时,可以选择直接对背书签名进行验证。相应的,若背书签名的验证结果符合要求,可以将链外数据访问结果作为链外数据访问需求的结果。
本公开实施例通过在对业务合约发起的业务预执行请求的执行过程中,根据所产生的链外数据访问请求,能够对链外的预言机服务进行控制,以实现对链外数据源的访问并接收所反馈的链外数据访问结果,使得预言机服务无需以异步事件监听的方式获取链上所产生的链外数据访问请求,从而有效降低区块链在事务请求执行过程中获取链外数据的延迟,同时避免了一次事务请求的访问需求触发多次交互所产生的网络拥堵。并且,通过预执行操作,区块链在对所获取的业务事务请求进行验证时,若验证到链外数据访问需求则无需再进行远程调用,通过验证背书签名即可确认链外数据访问结果,从而提高了业务事务请求验证的效率,为针对该业务事务请求在区块链中所展开的共识操作提供了便利。
图3是根据本公开实施例所提供的一种区块链访问链外数据的装置的结构示意图。本公开实施例可适用于区块链通过执行基于业务合约发起的业务预执行请求,以访问链外数据的情况。该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为区块链节点。参考图3,该装置配置于区块链节点中,具体包括如下:
业务预执行请求获取模块310,用于获取基于业务合约发起的业务预执行请求;
链外数据访问请求生成模块320,用于在执行所述业务预执行请求的过程中,如果检测到链外数据的访问需求,则产生链外数据访问请求;
预言机服务控制模块330,用于根据所述链外数据访问请求,使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问;
反馈数据接收模块340,用于接收所述预言机服务反馈的链外数据访问结果和预言机服务的背书签名;
业务预执行结果生成模块350,用于根据所述链外数据访问结果继续执行所述业务预执行请求,以产生业务预执行结果;
业务事务请求获取模块360,用于获取业务事务请求并向区块链提交所述业务事务请求;其中,所述业务事务请求包括所述业务预执行请求、链外数据访问结果、背书签名和业务预执行结果;
可选的,背书签名可以用于在区块链节点验证到链外数据访问需求时,直接根据所述背书签名的验证结果确认所述链外数据访问结果。
可选的,根据所述链外数据访问请求,使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问包括:
根据所述链外数据访问请求,调用预言机服务的访问接口,以使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问。
可选的,所述预言机服务的访问接口为所述预言机服务的原生代码程序接口。
可选的,根据所述链外数据访问请求,调用预言机服务的访问接口包括:
通过预言机合约执行所述链外数据访问请求,并产生预言机服务的访问接口的调用指令,由预言机合约的虚拟机传输给区块链内核程序;
通过所述区块链内核程序将所述调用指令传输给所述预言机服务所在的预言机节点。
可选的,如果检测到链外数据的访问需求,则产生链外数据访问请求包括:
如果检测到链外数据的访问需求,则根据所述访问需求确定待访问的链外数据源和预言机服务的地址,并根据所述待访问的链外数据源和预言机服务的地址产生链外数据访问请求;
相应的,根据所述链外数据访问请求,调用预言机服务的访问接口还包括:
根据所述链外数据访问请求中的预言机服务的地址,调用预言机服务的访问接口,并将所述待访问的链外数据源的地址作为调用访问接口的输入参数。
可选的,根据所述链外数据访问请求,调用预言机服务的访问接口还包括:
通过预言机合约执行所述链外数据访问请求,以获取链外数据的访问需求;
根据所述访问需求,以及预言机合约中注册的预言机服务和链外数据源,确定待访问的链外数据源和预言机服务的地址产生链外数据访问请求。
可选的,所述装置还包括:
链外数据访问需求的上下文确定模块,用于接收并验证提交至区块链的业务事务请求的过程中,如果从所述业务事务请求中获取到链外数据访问结果和背书签名,则将所述链外数据访问结果和背书签名记录为链外数据访问需求的上下文;
背书签名验证模块,用于在验证所述链外数据的访问需求时,验证所述背书签名;
链外数据访问需求的结果确定模块,用于在背书签名验证通过时,确认所述链外数据访问结果作为所述链外数据访问需求的结果。
本公开实施例所提供的区块链访问链外数据的装置可以执行本公开实施例所提供的任意的区块链访问链外数据的方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本公开任意方法实施例中的描述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如区块链访问链外数据的方法。例如,在一些实施例中,区块链访问链外数据的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的区块链访问链外数据的方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行区块链访问链外数据的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (10)

1.一种区块链访问链外数据的方法,应用于区块链节点,所述方法包括:
获取基于业务合约发起的业务预执行请求;
在执行所述业务预执行请求的过程中,如果检测到链外数据的访问需求,则产生链外数据访问请求;
根据所述链外数据访问请求,使得预言机服务根据所述链外数据访问请求对链外数据源进行访问;
接收所述预言机服务反馈的链外数据访问结果和预言机服务的背书签名;
根据所述链外数据访问结果继续执行所述业务预执行请求,以产生业务预执行结果;
获取业务事务请求并向区块链提交所述业务事务请求;其中,所述业务事务请求包括所述业务预执行请求、链外数据访问结果、背书签名和业务预执行结果;
接收并验证提交至区块链的业务事务请求的过程中,如果从所述业务事务请求中获取到链外数据访问结果和背书签名,则将所述链外数据访问结果和背书签名记录为链外数据访问需求的上下文;
在验证所述链外数据的访问需求时,验证所述背书签名;
在背书签名验证通过时,确认所述链外数据访问结果作为所述链外数据访问需求的结果。
2.根据权利要求1所述的方法,其中,所述背书签名用于在区块链节点验证到链外数据访问需求时,直接根据所述背书签名的验证结果确认所述链外数据访问结果。
3.根据权利要求1所述的方法,其中,根据所述链外数据访问请求,使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问包括:
根据所述链外数据访问请求,调用预言机服务的访问接口,以使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问。
4.根据权利要求3所述的方法,其中,所述预言机服务的访问接口为所述预言机服务的原生代码程序接口。
5.根据权利要求4所述的方法,其中,根据所述链外数据访问请求,调用预言机服务的访问接口包括:
通过预言机合约执行所述链外数据访问请求,并产生预言机服务的访问接口的调用指令,由预言机合约的虚拟机传输给区块链内核程序;
通过所述区块链内核程序将所述调用指令传输给所述预言机服务所在的预言机节点。
6.根据权利要求3所述的方法,其中,如果检测到链外数据的访问需求,则产生链外数据访问请求包括:
如果检测到链外数据的访问需求,则根据所述访问需求确定待访问的链外数据源和预言机服务的地址,并根据所述待访问的链外数据源和预言机服务的地址产生链外数据访问请求;
相应的,根据所述链外数据访问请求,调用预言机服务的访问接口包括:
根据所述链外数据访问请求中的预言机服务的地址,调用预言机服务的访问接口,并将所述待访问的链外数据源的地址作为调用访问接口的输入参数。
7.根据权利要求3所述的方法,其中,根据所述链外数据访问请求,调用预言机服务的访问接口包括:
通过预言机合约执行所述链外数据访问请求,以获取链外数据的访问需求;
根据所述访问需求,以及预言机合约中注册的预言机服务和链外数据源,确定待访问的链外数据源和预言机服务的地址产生链外数据访问请求。
8.一种区块链访问链外数据的装置,配置于区块链节点,所述装置包括:
业务预执行请求获取模块,用于获取基于业务合约发起的业务预执行请求;
链外数据访问请求生成模块,用于在执行所述业务预执行请求的过程中,如果检测到链外数据的访问需求,则产生链外数据访问请求;
预言机服务控制模块,用于根据所述链外数据访问请求,使得所述预言机服务根据所述链外数据访问请求对链外数据源进行访问;
反馈数据接收模块,用于接收所述预言机服务反馈的链外数据访问结果和预言机服务的背书签名;
业务预执行结果生成模块,用于根据所述链外数据访问结果继续执行所述业务预执行请求,以产生业务预执行结果;
业务事务请求获取模块,用于获取业务事务请求并向区块链提交所述业务事务请求;其中,所述业务事务请求包括所述业务预执行请求、链外数据访问结果、背书签名和业务预执行结果;
上下文确定模块,用于接收并验证提交至区块链的业务事务请求的过程中,如果从所述业务事务请求中获取到链外数据访问结果和背书签名,则将所述链外数据访问结果和背书签名记录为链外数据访问需求的上下文;
背书签名验证模块,用于在验证所述链外数据的访问需求时,验证所述背书签名;
结果确定模块,用于在背书签名验证通过时,确认所述链外数据访问结果作为所述链外数据访问需求的结果。
9.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的区块链访问链外数据的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的区块链访问链外数据的方法。
CN202210251326.6A 2022-03-15 2022-03-15 区块链访问链外数据的方法、装置、设备和介质 Active CN114327802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210251326.6A CN114327802B (zh) 2022-03-15 2022-03-15 区块链访问链外数据的方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210251326.6A CN114327802B (zh) 2022-03-15 2022-03-15 区块链访问链外数据的方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN114327802A CN114327802A (zh) 2022-04-12
CN114327802B true CN114327802B (zh) 2022-06-17

Family

ID=81033731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210251326.6A Active CN114327802B (zh) 2022-03-15 2022-03-15 区块链访问链外数据的方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN114327802B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115297119B (zh) * 2022-10-09 2023-02-03 江西信惠链科技有限公司 基于区块链和验证计算的联合征信方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981679A (zh) * 2019-04-08 2019-07-05 上海点融信息科技有限责任公司 在区块链网络中执行事务的方法和装置
CN110866740A (zh) * 2019-11-14 2020-03-06 百度在线网络技术(北京)有限公司 一种区块链事务请求的处理方法、装置、电子设备和介质
CN111401903A (zh) * 2020-06-03 2020-07-10 腾讯科技(深圳)有限公司 区块链消息处理方法、装置、计算机以及可读存储介质
CN111565204A (zh) * 2020-07-16 2020-08-21 百度在线网络技术(北京)有限公司 区块链运行方法、装置、设备及存储介质
CN112651037A (zh) * 2020-12-31 2021-04-13 深圳前海微众银行股份有限公司 区块链系统的链外数据访问方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018122997A1 (de) * 2018-09-19 2020-03-19 Infineon Technologies Ag Blockkettenentität, kettenexterne entität, zertifizierungsvorrichtung für blockkettenoperationen und verfahren zum durchführen einer kooperation zwischen einer blockkettenentität und einer kettenexternen entität
KR20210040569A (ko) * 2019-10-04 2021-04-14 삼성에스디에스 주식회사 블록체인 기반 데이터 관리 시스템 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981679A (zh) * 2019-04-08 2019-07-05 上海点融信息科技有限责任公司 在区块链网络中执行事务的方法和装置
CN110866740A (zh) * 2019-11-14 2020-03-06 百度在线网络技术(北京)有限公司 一种区块链事务请求的处理方法、装置、电子设备和介质
CN111401903A (zh) * 2020-06-03 2020-07-10 腾讯科技(深圳)有限公司 区块链消息处理方法、装置、计算机以及可读存储介质
CN111565204A (zh) * 2020-07-16 2020-08-21 百度在线网络技术(北京)有限公司 区块链运行方法、装置、设备及存储介质
CN112651037A (zh) * 2020-12-31 2021-04-13 深圳前海微众银行股份有限公司 区块链系统的链外数据访问方法和系统

Also Published As

Publication number Publication date
CN114327802A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
US9898741B2 (en) Real time analytics system
CN111427971B (zh) 用于计算机系统的业务建模方法、装置、系统和介质
CN114328132A (zh) 外部数据源的状态监控方法、装置、设备和介质
CN114358147A (zh) 异常账户识别模型的训练方法、识别方法、装置及设备
CN117474091A (zh) 一种知识图谱构建方法、装置、设备及存储介质
CN114327802B (zh) 区块链访问链外数据的方法、装置、设备和介质
CN115421922A (zh) 一种分布式系统的限流方法、装置、设备、介质及产品
US11245766B1 (en) Determining processing weights of rule variables for rule processing optimization
CN117908838A (zh) 软件需求文档的生成方法、装置、电子设备及存储介质
CN113220367A (zh) 小程序的运行方法、装置、电子设备及存储介质
CN110782310B (zh) 从第三方平台异步获取用户属性信息的方法、装置和系统
CN114338051B (zh) 区块链获取随机数的方法、装置、设备和介质
CN111383096A (zh) 欺诈检测及其模型训练方法、装置、电子设备及存储介质
CN109426962B (zh) 一种数据模型校准方法、装置和设备
CN114780807A (zh) 业务检测方法、装置、计算机系统及可读存储介质
CN114004701A (zh) 生成交易结果的方法及装置、电子设备和存储介质
CN113344620A (zh) 福利信息的发放方法、设备和存储介质
CN113052509A (zh) 模型评估方法、模型评估装置、电子设备和存储介质
CN112769782A (zh) 多云安全基线管理的方法与设备
CN113239296B (zh) 小程序的展示方法、装置、设备和介质
CN114362968B (zh) 区块链获取随机数的方法、装置、设备和介质
CN114565030B (zh) 特征筛选方法、装置、电子设备和存储介质
CN115357346B (zh) 基于区块链的事务处理方法、装置、电子设备及介质
CN114399333A (zh) 媒介信息的投放效果检测方法、装置、设备及存储介质
CN114860455A (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