CN108305170A - 基于区块链的外部服务访问方法、系统、设备及存储介质 - Google Patents
基于区块链的外部服务访问方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN108305170A CN108305170A CN201810188421.XA CN201810188421A CN108305170A CN 108305170 A CN108305170 A CN 108305170A CN 201810188421 A CN201810188421 A CN 201810188421A CN 108305170 A CN108305170 A CN 108305170A
- Authority
- CN
- China
- Prior art keywords
- request
- block chain
- processing request
- processing
- implementing result
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Abstract
本发明提供了基于区块链的外部服务访问方法、系统、设备及存储介质,该方法包括以下步骤:区块链系统被配置为拦截处理请求,并将被拦截的处理请求转发到预言机,预言机被配置为将先后收到的多个处理请求中基于同一事务请求的多个处理请求分为一组,在同一组处理请求中只将一个处理请求向外部数据提供方发送,并接收外部数据提供方返回的执行结果;预言机向区块链系统发送请求,将处理请求的请求流程记录加盖时间戳和执行结果写入区块链,在每个节点执行背书时将已入链的执行结果返回到每个节点,由区块链系统的所述节点将执行结果返回到应用客户端,写入所述区块链。
Description
技术领域
本发明涉及区块链领域,具体地说,涉及基于区块链的外部服务访问方法、系统、设备及存储介质。
背景技术
2008年,化名为“中本聪”(Satoshi Nakamoto)的学者,发表了《比特币:一种点对点电子现金系统》的论文,奠定了区块链技术的基础。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证不可篡改不可伪造的分布式账本。广义上来讲,区块链技术是利用块链式数据结构来验证与存储数据,利用分布式节点共识算法来生成更新数据,利用密码学的方式保证数据传输和方问安全,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
特别是智能合约,它是区块链最重要的特性,也是区块链能够被称为颠覆性技术的主要原因。区块链中,只有合约双(多)方能动用资金;一旦合约确定了,其中的资金就由区块链按照合约条款来分配,并且只有合约到期后,才可以使用这笔资金。但是合约有时是需要外部情况不同,来执行不同的条款的。比如,以农业保险为例,只有在保险其间发生大旱或大涝时,保险公司需要赔偿农民,如果没有发生大旱或大涝则无需赔偿。我们把保险合同以智能合约写在区块链上,并以是否发生大旱或大涝作为条件,执行合约。这时,是否发生大旱或大涝是一种链外的数据。如何把大旱或大涝这种外部产生的数据,作为条件对接到区块链的智能合约,而且还要保证这些数据是真实有效不能作假的。
目前,区块链作为了一个可信的数据管理技术正在开始被应用于企业级的场景之中。在这些场景下,预言机(oracle)问题尤为关键,它是解决区块链接收可信外部数据的机制。
现有技术的第一种方法是将区块链外部数据集成问题直接交给链外应用,应用获取数据,并输入区块链。第一种方法的主要问题就是安全性不够,作假成本低。
现有技术的第二种方法是将区块链外部数据集成问题交给智能合约定制化实现。第二种方法实现成本高,由于区块链网络中智能合约需要分别独立访问外部数据服务,往往需要对外部服务进行改动,所花费的时间和投入,比普通系统获取信息要高得多。
基于以上困难,本发明提供了一种基于区块链的外部服务访问方法、系统、设备及存储介质
发明内容
针对现有技术中的问题,本发明的目的在于提供基于区块链的外部服务访问方法、系统、设备及存储介质,能够拦截智能合约的外部数据请求,进行自动转发、缓存、最后请求结果单独二次入链,无法事后造假,安全性高。
本发明的实施例还提供一种基于区块链的外部服务访问方法,包括以下步骤:
S101、应用客户端向区块链系统的发起一事务请求,在智能合约执行事务请求的过程中,向外部服务发出事务请求。所述事务请求包括对外部数据提供方进行处理的处理请求;
S102、所述区块链系统按照预设的分配规则,将所述事务请求向所述区块链系统内的多个节点分别发送,触发每个所述节点的智能合约分别向所述外部数据提供方发送所述处理请求;
S103、所述区块链系统被配置为拦截所述处理请求,并将被拦截的所述处理请求转发到预言机,所述预言机被配置为将先后收到的多个所述处理请求中基于同一所述事务请求的多个所述处理请求分为一组,在同一组所述处理请求中只将一个所述处理请求向所述外部数据提供方发送,并接收所述外部数据提供方返回的执行结果;所述预言机向所述区块链系统发送请求,将所述处理请求的请求流程记录加盖时间戳和所述执行结果写入所述区块链,在每个所述节点执行背书时将已入链的所述执行结果返回到每个所述节点;以及
S104、由所述区块链系统的所述节点将所述执行结果返回到应用客户端,当所述应用客户端判断每个所述节点返回的所述执行结果都相同时,所述区块链系统将所述处理请求的请求流程记录加盖时间戳和所述执行结果再次写入所述区块链。
优选地,所述步骤S102中还包括:若每个所述节点接收到所述事务请求,则调用与所述事务请求对应的智能合约进行背书,分别向所述外部数据提供方发送所述处理请求。
优选地,所述步骤S102中还包括:应用客户端根据所述处理请求生成唯一事务标识,所述区块链系统验证后将每个所述处理请求分别附上所述唯一事务标识;
所述步骤S103中还包括:所述预言机将具有相同所述唯一事务标识的多个所述处理请求分为一组。
优选地,所述步骤S102中包括:触发每个所述节点的智能合约通过网络请求分别向所述外部数据提供方发送所述处理请求,并将每个在所述网络请求的请求头分别附上所述唯一事务标识。
优选地,所述步骤S103中包括:所述区块链系统被配置为拦截所有网络请求,并将被拦截的所述网络请求转发到预言机。
优选地,所述步骤S103中包括:所述预言机先将所述网络请求的请求体与和所述执行结果写入所述区块链,然后将所述执行结果返回到发送最早一次所述处理请求的所述节点。
优选地,所述步骤S103中包括:在同一组所述处理请求中将最早一次所述处理请求向所述外部数据提供方发送,并接收所述外部数据提供方返回的对应所述处理请求的执行结果,将所述执行结果返回到发送最早一次所述处理请求的所述节点;同一组所述处理请求中后续的多个所述处理请求进行背书时,查询所述执行结果,并分别返回到后续发送所述处理请求的所述节点。
本发明的实施例还提供一种基于区块链的外部服务访问系统,用于实现上述的基于区块链的外部服务访问方法,包括:
事务请求模块,接收应用客户端向区块链系统发起一事务请求,所述事务请求包括对外部数据提供方进行处理的处理请求;
预言分配模块,按照预设的分配规则,将所述事务请求向所述区块链系统内的多个节点分别发送,触发每个所述节点的智能合约分别向所述外部数据提供方发送所述处理请求;
拦截转发模块,拦截所述处理请求,并将被拦截的所述处理请求转发到预言机,所述预言机被配置为将先后收到的多个所述处理请求中基于同一所述事务请求的多个所述处理请求分为一组,在同一组所述处理请求中只将一个所述处理请求向所述外部数据提供方发送,并接收所述外部数据提供方返回的执行结果;
第一写入模块,将所述处理请求的请求流程记录加盖时间戳和所述执行结果写入所述区块链,在每个所述节点执行背书时将已入链的所述执行结果返回到每个所述节点;以及
第二写入模块,将所述执行结果返回到智能合约,智能合约继续正常执行,将处理结果返回应用客户端,当所述应用客户端判断每个所述节点返回的所述执行结果都相同时,所述区块链系统将所述处理请求的请求流程记录加盖时间戳和所述执行结果再次写入所述区块链
本发明的实施例还提供一种基于区块链的外部服务访问设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述基于区块链的外部服务访问方法的步骤。
本发明的实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述基于区块链的外部服务访问方法的步骤。
本发明的基于区块链的外部服务访问方法、系统、设备及存储介质,通过复用HTTP的代理协议将外部数据服务改造透明化,预言机服务拦截智能合约的外部数据请求,进行自动转发、缓存、二次入链。利用智能合约与外部数据服务实现成本低,外部数据请求直接由智能合约触发,外部应用无法造假,最后请求结果单独二次入链,无法事后造假,安全性高。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明的基于区块链的外部服务访问方法的流程图。
图2是本发明的基于区块链的外部服务访问方法的实施示意图。
图3是本发明的基于区块链的外部服务访问系统的模块示意图。
图4是本发明的基于区块链的外部服务访问设备的结构示意图。以及
图5是本发明的计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
图1是本发明的基于区块链的外部服务访问方法的流程图。如图1所示,本发明的基于区块链的外部服务访问方法,包括以下步骤:
S101、应用方向区块链系统的发起一事务请求,在智能合约执行事务请求的过程中,向外部服务发出事务请求。应用客户端事务请求事务请求包括对外部数据提供方进行处理的处理请求。
S102、区块链系统按照预设的分配规则,将事务请求向区块链系统内的多个节点分别发送,触发每个节点的智能合约分别向外部数据提供方发送处理请求。
S103、区块链系统被配置为拦截处理请求,并将被拦截的处理请求转发到预言机,预言机被配置为将先后收到的多个处理请求中基于同一事务请求的多个处理请求分为一组,在同一组处理请求中只将一个处理请求向外部数据提供方发送,并接收外部数据提供方返回的执行结果。预言机向区块链系统发送请求,将处理请求的请求流程记录加盖时间戳和执行结果写入区块链,在每个节点执行背书时将已入链的执行结果返回到每个节点。以及
S104、由区块链系统的节点将执行结果返回到应用客户端,当应用客户端判断每个节点返回的执行结果都相同时,区块链系统将处理请求的请求流程记录加盖时间戳和执行结果再次写入区块链。
本发明中的预言是指智能合约向外部服务发生交互,获取数据。背书是指区块链系统智能合约运行应用提交的事务请求,将请求与运行结果签名返回客户端。区块链的提交是指应用端收集各区块链节点的背书结果,如果结果一样,正式向区块链系统发送入链提交请求。
本发明通过预言机对所有节点向外部数据提供方发送的相同处理请求进行拦截后合并成一组,在同一组相同的处理请求中仅将一次处理请求,从而保证外部数据提供方不会因为多个节点的多次处理请求而错误地进行多次处理,防止数据出错。并且,利用智能合约与外部数据服务实现成本低,外部数据请求直接由智能合约触发,外部应用无法造假,最后请求结果单独二次入链,无法事后造假,安全性高。
在一个优选方案中,步骤S102中还包括:若每个节点接收到事务请求,则调用与事务请求对应的智能合约进行背书,分别向外部数据提供方发送处理请求。本发明可以根据实际应用的需要设定不同的智能合约,执行账户查询、转账交易、债权转移等等功能,且不以此为限。
在一个优选方案中,步骤S102中还包括:应用客户端根据处理请求生成唯一事务标识,区块链系统验证后将每个处理请求分别附上唯一事务标识。步骤S103中还包括:预言机将具有相同唯一事务标识的多个处理请求分为一组。本实施例中,预言机通过判断接收到的多个节点向外部数据提供方发送的处理请求,是否具有相同的唯一事务标识来进行分组,将具有相同的唯一事务标识的处理请求分为一组,接收到不相同的唯一事务标识的处理请求则新成立一组。从而保证分组的准确和迅速,大大简化了过程,加快了区块链的数据处理的速度和安全性。
在一个优选方案中,步骤S102中包括:触发每个节点的智能合约通过网络请求分别向外部数据提供方发送处理请求,并将每个在网络请求的请求头分别附上唯一事务标识。区块链系统被配置为拦截所有网络请求,并将被拦截的网络请求转发到预言机。在同一组处理请求中将最早一次处理请求向外部数据提供方发送,并接收外部数据提供方返回的对应处理请求的执行结果,将执行结果返回到发送最早一次处理请求的节点。同一组处理请求中后续的多个处理请求进行背书时,查询执行结果,并分别返回到后续发送处理请求的节点。例如:预言机先将网络请求的请求体与和执行结果写入区块链,然后将执行结果返回到发送最早一次处理请求的节点。本实施例中的预言机可以通过复用HTTP的代理协议将外部数据服务改造透明化。预言机服务拦截智能合约的外部数据请求,进行自动转发、缓存和入链。本发明中的网络请求可以是http请求,但不以此为限。
本实施例中的预言机主要起到了拦截、筛选以及缓存三种效果,首先,将对所有节点向外部数据提供方发送的相同处理请求进行拦截,防止多个节点直接访问外部数据提供方,从而保证外部数据提供方不会因为多个节点的多次处理请求而错误地进行多次处理,防止数据出错。也防止了使用外部应用对安全性的破坏和速度的减慢。而且,预言机通过将在同一组相同的处理请求中最早的一次处理请求向外部数据提供方发送,来执行一次具体操作,并将接收到的执行结果缓存。并将执行结果返回给其他节点。因为多个节点的处理请求都是相同的,所以它们的执行结果也必然相同。预言机只要进行依次处理请求就能得到准确的执行结果,大大简化了过程,加快了区块链的数据处理的速度和安全性。
在一个优选方案中,以进行银行转账为例,本发明中的区块链配置智能合约运行时参数,指定所有网络请求需要经过预言机代理,预言机配置银行转账接口地址,讲所有该地址的请求拦截,但不以此为限。
继续参考图2,使用本发明的数据处理方法进行账户余额查询的过程如下:
移动终端1中的APP应用(应用客户端)向区块链系统发起一事务请求,事务请求包括对外部服务器4(外部数据提供方)进行账户余额查询的处理请求。移动终端1中的APP应用会生成唯一事务标识。
区块链系统按照预设的分配规则,将事务请求向区块链系统内的五个节点2分别发送,每个节点2的智能合约通过网络请求分别向外部服务器4发送账户余额查询的处理请求,区块链系统验证每个节点2的唯一事务标识后将每个在网络请求的请求头分别附上唯一事务标识。
区块链系统被配置为拦截处理请求,并将被拦截的处理请求转发到预言机3,预言机3被配置为将先后收到的五个处理请求中基于同一事务请求(都包括了移动终端1中的APP应用发起的进行账户余额查询的处理请求)的五个处理请求分为一组,在同一组处理请求中只将一个处理请求向外部服务器4发送,并接收外部服务器4返回的执行结果,预言机3获得了账户余额查询的结果。可见,本发明中对外部服务器4(外部数据提供方)进行账户余额查询的处理请求仅向外部服务器4发送了一次,大大简化了过程,加快了区块链的数据处理的速度和安全性。
预言机3向区块链系统发送请求,将处理请求的请求流程记录加盖时间戳和执行结果写入区块链,在每个节点2执行背书时将已入链的执行结果返回到每个节点2,以此作为第一次入链。
最后,由区块链系统的节点2将账户余额查询的结果返回到移动终端1,当移动终端1判断每个节点2返回的执行结果都相同时,区块链系统将处理请求的请求流程记录加盖时间戳和执行结果再次写入区块链,以此作为第二次入链。本发明中通过将请求结果单独二次入链,无法事后造假,充分提高了安全性。
本发明的基于区块链的外部服务访问方法通过复用HTTP的代理协议将外部数据服务改造透明化,预言机服务拦截智能合约的外部数据请求,进行自动转发、缓存、二次入链。利用智能合约与外部数据服务实现成本低,外部数据请求直接由智能合约触发,外部应用无法造假,最后请求结果单独二次入链,无法事后造假,安全性高。
图3是本发明的基于区块链的外部服务访问系统的模块示意图。如图3所示,本发明的实施例还提供一种基于区块链的外部服务访问系统5,用于实现上述基于区块链的外部服务访问方法,包括:
事务请求模块51,接收应用客户端向区块链系统发起一事务请求,事务请求包括对外部数据提供方进行处理的处理请求;
预言分配模块52,按照预设的分配规则,将事务请求向区块链系统内的多个节点分别发送,触发每个节点的智能合约分别向外部数据提供方发送处理请求;
拦截转发模块53,拦截处理请求,并将被拦截的处理请求转发到预言机,预言机被配置为将先后收到的多个处理请求中基于同一事务请求的多个处理请求分为一组,在同一组处理请求中只将一个处理请求向外部数据提供方发送,并接收外部数据提供方返回的执行结果;
第一写入模块54,将处理请求的请求流程记录加盖时间戳和执行结果写入区块链,在每个节点执行背书时将已入链的执行结果返回到每个节点;以及
第二写入模块55,将执行结果返回到应用客户端,当应用客户端判断每个节点返回的执行结果都相同时,区块链系统将处理请求的请求流程记录加盖时间戳和执行结果再次写入区块链。
本发明的目的在于提供基于区块链的外部服务访问系统,能够通过复用HTTP的代理协议将外部数据服务改造透明化,预言机服务拦截智能合约的外部数据请求,进行自动转发、缓存、二次入链。利用智能合约与外部数据服务实现成本低,外部数据请求直接由智能合约触发,外部应用无法造假,最后请求结果单独二次入链,无法事后造假,安全性高。
本发明实施例还提供一种基于区块链的外部服务访问设备,包括处理器。存储器,其中存储有处理器的可执行指令。其中,处理器配置为经由执行可执行指令来执行的基于区块链的外部服务访问方法的步骤。
如上所示,该实施例能够通过复用HTTP的代理协议将外部数据服务改造透明化,预言机服务拦截智能合约的外部数据请求,进行自动转发、缓存、二次入链。利用智能合约与外部数据服务实现成本低,外部数据请求直接由智能合约触发,外部应用无法造假,最后请求结果单独二次入链,无法事后造假,安全性高。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
图4是本发明的基于区块链的外部服务访问设备的结构示意图。下面参照图4来描述根据本发明的这种实施方式的电子设备600。图4显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图1中所示的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现的基于区块链的外部服务访问方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
如上所示,该实施例能够通过复用HTTP的代理协议将外部数据服务改造透明化,预言机服务拦截智能合约的外部数据请求,进行自动转发、缓存、二次入链。利用智能合约与外部数据服务实现成本低,外部数据请求直接由智能合约触发,外部应用无法造假,最后请求结果单独二次入链,无法事后造假,安全性高。
图5是本发明的计算机可读存储介质的结构示意图。参考图5所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上,本发明的基于区块链的外部服务访问方法、系统、设备及存储介质,通过复用HTTP的代理协议将外部数据服务改造透明化,预言机服务拦截智能合约的外部数据请求,进行自动转发、缓存、二次入链。利用智能合约与外部数据服务实现成本低,外部数据请求直接由智能合约触发,外部应用无法造假,最后请求结果单独二次入链,无法事后造假,安全性高。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的为属于本发明的保护范围。
Claims (10)
1.一种基于区块链的外部服务访问方法,其特征在于,包括以下步骤:
S101、应用客户端向区块链系统的发起一事务请求,在智能合约执行事务请求的过程中,向外部服务发出事务请求,所述事务请求包括对外部数据提供方进行处理的处理请求;
S102、所述区块链系统按照预设的分配规则,将所述事务请求向所述区块链系统内的多个节点分别发送,触发每个所述节点的智能合约分别向所述外部数据提供方发送所述处理请求;
S103、所述区块链系统被配置为拦截所述处理请求,并将被拦截的所述处理请求转发到预言机,所述预言机被配置为将先后收到的多个所述处理请求中基于同一所述事务请求的多个所述处理请求分为一组,在同一组所述处理请求中只将一个所述处理请求向所述外部数据提供方发送,并接收所述外部数据提供方返回的执行结果;所述预言机向所述区块链系统发送请求,将所述处理请求的请求流程记录加盖时间戳和所述执行结果写入所述区块链,在每个所述节点执行背书时将已入链的所述执行结果返回到每个所述节点;以及
S104、由所述区块链系统的所述节点将所述执行结果返回到应用客户端,当所述应用客户端判断每个所述节点返回的所述执行结果都相同时,所述区块链系统将所述处理请求的请求流程记录加盖时间戳和所述执行结果再次写入所述区块链。
2.根据权利要求1所述的基于区块链的外部服务访问方法,其特征在于,所述步骤S102中还包括:若每个所述节点接收到所述事务请求,则调用与所述事务请求对应的智能合约进行背书,分别向所述外部数据提供方发送所述处理请求。
3.根据权利要求1所述的基于区块链的外部服务访问方法,其特征在于,所述步骤S102中还包括:应用客户端根据所述处理请求生成唯一事务标识,所述区块链系统验证后将每个所述处理请求分别附上所述唯一事务标识;
所述步骤S103中还包括:所述预言机将具有相同所述唯一事务标识的多个所述处理请求分为一组。
4.根据权利要求3所述的基于区块链的外部服务访问方法,其特征在于,所述步骤S102中包括:触发每个所述节点的智能合约通过网络请求分别向所述外部数据提供方发送所述处理请求,并将每个在所述网络请求的请求头分别附上所述唯一事务标识。
5.根据权利要求4所述的基于区块链的外部服务访问方法,其特征在于,所述步骤S103中包括:所述区块链系统被配置为拦截所有网络请求,并将被拦截的所述网络请求转发到预言机。
6.根据权利要求4所述的基于区块链的外部服务访问方法,其特征在于,所述步骤S103中包括:所述预言机先将所述网络请求的请求体与和所述执行结果写入所述区块链,然后将所述执行结果返回到发送最早一次所述处理请求的所述节点。
7.根据权利要求1所述的基于区块链的外部服务访问方法,其特征在于,所述步骤S103中包括:在同一组所述处理请求中将最早一次所述处理请求向所述外部数据提供方发送,并接收所述外部数据提供方返回的对应所述处理请求的执行结果,将所述执行结果返回到发送最早一次所述处理请求的所述节点;同一组所述处理请求中后续的多个所述处理请求进行背书时,查询所述执行结果,并分别返回到后续发送所述处理请求的所述节点。
8.一种基于区块链的外部服务访问系统,用于实现权利要求1至7中任一项所述的基于区块链的外部服务访问方法,其特征在于,包括:
事务请求模块,接收应用客户端向区块链系统发起一事务请求,所述事务请求包括对外部数据提供方进行处理的处理请求;
预言分配模块,按照预设的分配规则,将所述事务请求向所述区块链系统内的多个节点分别发送,触发每个所述节点的智能合约分别向所述外部数据提供方发送所述处理请求;
拦截转发模块,拦截所述处理请求,并将被拦截的所述处理请求转发到预言机,所述预言机被配置为将先后收到的多个所述处理请求中基于同一所述事务请求的多个所述处理请求分为一组,在同一组所述处理请求中只将一个所述处理请求向所述外部数据提供方发送,并接收所述外部数据提供方返回的执行结果;
第一写入模块,将所述处理请求的请求流程记录加盖时间戳和所述执行结果写入所述区块链,在每个所述节点执行背书时将已入链的所述执行结果返回到每个所述节点;以及
第二写入模块,将所述执行结果返回到智能合约,智能合约继续正常执行,将处理结果返回应用客户端,当所述应用客户端判断每个所述节点返回的所述执行结果都相同时,所述区块链系统将所述处理请求的请求流程记录加盖时间戳和所述执行结果再次写入所述区块链。
9.一种基于区块链的外部服务访问设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任意一项所述基于区块链的外部服务访问方法的步骤。
10.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至7中任意一项所述基于区块链的外部服务访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810188421.XA CN108305170A (zh) | 2018-03-07 | 2018-03-07 | 基于区块链的外部服务访问方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810188421.XA CN108305170A (zh) | 2018-03-07 | 2018-03-07 | 基于区块链的外部服务访问方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108305170A true CN108305170A (zh) | 2018-07-20 |
Family
ID=62849568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810188421.XA Pending CN108305170A (zh) | 2018-03-07 | 2018-03-07 | 基于区块链的外部服务访问方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108305170A (zh) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109146514A (zh) * | 2018-07-27 | 2019-01-04 | 程烨 | 畜牧产品溯源信息记录方法、装置、设备和存储介质 |
CN109981679A (zh) * | 2019-04-08 | 2019-07-05 | 上海点融信息科技有限责任公司 | 在区块链网络中执行事务的方法和装置 |
CN110138767A (zh) * | 2019-05-07 | 2019-08-16 | 百度在线网络技术(北京)有限公司 | 事务请求的处理方法、装置、设备和存储介质 |
CN110175915A (zh) * | 2019-04-23 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务执行结果获取方法及系统 |
CN110213266A (zh) * | 2019-05-31 | 2019-09-06 | 联想(北京)有限公司 | 一种区块链跨链的信息处理方法及电子设备 |
CN111008402A (zh) * | 2018-10-08 | 2020-04-14 | 国际商业机器公司 | 区块链时间戳协定 |
CN111008081A (zh) * | 2018-10-08 | 2020-04-14 | 上海派链信息科技有限公司 | 用于区块链系统的方法、装置和计算机存储介质 |
CN111145019A (zh) * | 2018-11-05 | 2020-05-12 | 北京彩球世纪科技有限公司 | 一种在区块链上获取链外数据的方式和系统 |
CN111311255A (zh) * | 2020-01-19 | 2020-06-19 | 杭州云象网络技术有限公司 | 一种基于预言机的智能合约形式化验证和纠错方法 |
CN111460474A (zh) * | 2020-03-27 | 2020-07-28 | 北京瑞卓喜投科技发展有限公司 | 去中心化的预言机实现方法、装置、存储器和计算机 |
US10757084B1 (en) | 2019-03-29 | 2020-08-25 | Alibaba Group Holding Limited | Retrieving access data for blockchain networks using highly available trusted execution environments |
US10803205B1 (en) | 2019-03-27 | 2020-10-13 | Alibaba Group Holding Limited | Retrieving public data for blockchain networks using trusted execution environments |
CN111953648A (zh) * | 2020-06-22 | 2020-11-17 | 北京欧链科技有限公司 | 基于区块链预言机的数据处理方法、装置及电子设备 |
US10911244B2 (en) | 2019-03-27 | 2021-02-02 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using highly available trusted execution environments |
CN112395358A (zh) * | 2020-11-19 | 2021-02-23 | 京东数科海益信息科技有限公司 | 档案管理方法、装置、电子设备和存储介质 |
CN112532733A (zh) * | 2020-12-02 | 2021-03-19 | 东软集团股份有限公司 | 智能合约调用外部数据的方法、装置、存储介质及电子设备 |
CN112818409A (zh) * | 2020-07-03 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 一种区块生成方法及共识节点 |
CN113051076A (zh) * | 2021-03-23 | 2021-06-29 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种请求数据处理方法和装置 |
US11062308B2 (en) | 2019-04-23 | 2021-07-13 | Advanced New Technologies Co., Ltd. | Service execution result obtaining method and system based on blockchain |
CN113254168A (zh) * | 2021-06-11 | 2021-08-13 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN113807968A (zh) * | 2021-09-22 | 2021-12-17 | 网易(杭州)网络有限公司 | 区块链用户请求处理方法、装置、委托服务器及存储介质 |
WO2022121851A1 (zh) * | 2020-12-09 | 2022-06-16 | 中兴通讯股份有限公司 | 区块链数据请求处理方法、装置、服务器及存储介质 |
CN115190162A (zh) * | 2022-06-27 | 2022-10-14 | 杭州溪塔科技有限公司 | 区块链中的代理服务配置方法及代理服务系统 |
KR20220167217A (ko) * | 2021-06-11 | 2022-12-20 | 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 | 블록체인 시스템의 가동 방법, 장치, 설비 및 저장 매체 |
WO2023109217A1 (zh) * | 2021-12-15 | 2023-06-22 | 杭州趣链科技有限公司 | 数据处理方法、区块链系统、计算机设备及存储介质 |
CN116436979A (zh) * | 2023-06-15 | 2023-07-14 | 湖南湘江树图信息科技创新中心有限公司 | 联盟区块链调用外部服务的方法及系统 |
WO2024001507A1 (zh) * | 2022-06-30 | 2024-01-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、系统、装置、设备及存储介质 |
US11924360B2 (en) | 2018-10-08 | 2024-03-05 | Green Market Square Limited | Blockchain timestamp agreement |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107507005A (zh) * | 2017-08-01 | 2017-12-22 | 众安信息技术服务有限公司 | 一种基于联盟链的链外数据访问方法和系统 |
US20180060836A1 (en) * | 2016-08-29 | 2018-03-01 | Bank Of America Corporation | Application life-cycle transition record recreation system |
-
2018
- 2018-03-07 CN CN201810188421.XA patent/CN108305170A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180060836A1 (en) * | 2016-08-29 | 2018-03-01 | Bank Of America Corporation | Application life-cycle transition record recreation system |
CN107507005A (zh) * | 2017-08-01 | 2017-12-22 | 众安信息技术服务有限公司 | 一种基于联盟链的链外数据访问方法和系统 |
Non-Patent Citations (1)
Title |
---|
李赫 等: ""智能合约如何可信地与外部世界交互"", 《中国金融电脑》 * |
Cited By (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109146514B (zh) * | 2018-07-27 | 2022-09-30 | 量子云码(福建)科技有限公司 | 畜牧产品溯源信息记录方法、装置、设备和存储介质 |
CN109146514A (zh) * | 2018-07-27 | 2019-01-04 | 程烨 | 畜牧产品溯源信息记录方法、装置、设备和存储介质 |
CN111008402B (zh) * | 2018-10-08 | 2024-03-08 | 绿市广场有限公司 | 区块链时间戳协定 |
US11924360B2 (en) | 2018-10-08 | 2024-03-05 | Green Market Square Limited | Blockchain timestamp agreement |
CN111008402A (zh) * | 2018-10-08 | 2020-04-14 | 国际商业机器公司 | 区块链时间戳协定 |
CN111008081A (zh) * | 2018-10-08 | 2020-04-14 | 上海派链信息科技有限公司 | 用于区块链系统的方法、装置和计算机存储介质 |
CN111145019A (zh) * | 2018-11-05 | 2020-05-12 | 北京彩球世纪科技有限公司 | 一种在区块链上获取链外数据的方式和系统 |
US10824763B2 (en) | 2019-03-27 | 2020-11-03 | Alibaba Group Holding Limited | Integrity of communications between blockchain networks and external data sources |
US11323271B2 (en) | 2019-03-27 | 2022-05-03 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using highly available trusted execution environments |
US10803205B1 (en) | 2019-03-27 | 2020-10-13 | Alibaba Group Holding Limited | Retrieving public data for blockchain networks using trusted execution environments |
US11082240B2 (en) | 2019-03-27 | 2021-08-03 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using highly available trusted execution environments |
US10911244B2 (en) | 2019-03-27 | 2021-02-02 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using highly available trusted execution environments |
US11088850B2 (en) | 2019-03-27 | 2021-08-10 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using highly available trusted execution environments |
US11449641B2 (en) | 2019-03-27 | 2022-09-20 | Advanced New Technologies Co., Ltd. | Integrity of communications between blockchain networks and external data sources |
US11080430B2 (en) | 2019-03-27 | 2021-08-03 | Advanced New Technologies Co., Ltd. | Integrity of communications between blockchain networks and external data sources |
US11405372B2 (en) | 2019-03-29 | 2022-08-02 | Advanced New Technologies Co., Ltd. | Retrieving access data for blockchain networks using highly available trusted execution environments |
US10757084B1 (en) | 2019-03-29 | 2020-08-25 | Alibaba Group Holding Limited | Retrieving access data for blockchain networks using highly available trusted execution environments |
US11095629B2 (en) | 2019-03-29 | 2021-08-17 | Advanced New Technologies Co., Ltd. | Retrieving access data for blockchain networks using highly available trusted execution environments |
CN109981679B (zh) * | 2019-04-08 | 2021-08-10 | 上海点融信息科技有限责任公司 | 在区块链网络中执行事务的方法和装置 |
CN109981679A (zh) * | 2019-04-08 | 2019-07-05 | 上海点融信息科技有限责任公司 | 在区块链网络中执行事务的方法和装置 |
CN110175915B (zh) * | 2019-04-23 | 2021-04-06 | 创新先进技术有限公司 | 一种基于区块链的业务执行结果获取方法及系统 |
US11062308B2 (en) | 2019-04-23 | 2021-07-13 | Advanced New Technologies Co., Ltd. | Service execution result obtaining method and system based on blockchain |
CN110175915A (zh) * | 2019-04-23 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务执行结果获取方法及系统 |
CN110138767B (zh) * | 2019-05-07 | 2021-11-30 | 百度在线网络技术(北京)有限公司 | 事务请求的处理方法、装置、设备和存储介质 |
CN110138767A (zh) * | 2019-05-07 | 2019-08-16 | 百度在线网络技术(北京)有限公司 | 事务请求的处理方法、装置、设备和存储介质 |
CN110213266A (zh) * | 2019-05-31 | 2019-09-06 | 联想(北京)有限公司 | 一种区块链跨链的信息处理方法及电子设备 |
CN111311255B (zh) * | 2020-01-19 | 2023-07-25 | 杭州云象网络技术有限公司 | 一种基于预言机的智能合约形式化验证和纠错方法 |
CN111311255A (zh) * | 2020-01-19 | 2020-06-19 | 杭州云象网络技术有限公司 | 一种基于预言机的智能合约形式化验证和纠错方法 |
CN111460474A (zh) * | 2020-03-27 | 2020-07-28 | 北京瑞卓喜投科技发展有限公司 | 去中心化的预言机实现方法、装置、存储器和计算机 |
CN111460474B (zh) * | 2020-03-27 | 2023-12-29 | 北京瑞卓喜投科技发展有限公司 | 去中心化的预言机实现方法、装置、存储器和计算机 |
CN111953648A (zh) * | 2020-06-22 | 2020-11-17 | 北京欧链科技有限公司 | 基于区块链预言机的数据处理方法、装置及电子设备 |
CN112818409A (zh) * | 2020-07-03 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 一种区块生成方法及共识节点 |
CN112818409B (zh) * | 2020-07-03 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 一种区块生成方法及共识节点 |
CN112395358A (zh) * | 2020-11-19 | 2021-02-23 | 京东数科海益信息科技有限公司 | 档案管理方法、装置、电子设备和存储介质 |
CN112532733A (zh) * | 2020-12-02 | 2021-03-19 | 东软集团股份有限公司 | 智能合约调用外部数据的方法、装置、存储介质及电子设备 |
CN112532733B (zh) * | 2020-12-02 | 2024-02-02 | 东软集团股份有限公司 | 智能合约调用外部数据的方法、装置、存储介质及电子设备 |
WO2022121851A1 (zh) * | 2020-12-09 | 2022-06-16 | 中兴通讯股份有限公司 | 区块链数据请求处理方法、装置、服务器及存储介质 |
CN113051076A (zh) * | 2021-03-23 | 2021-06-29 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种请求数据处理方法和装置 |
CN113254168B (zh) * | 2021-06-11 | 2021-10-15 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
US11588654B2 (en) | 2021-06-11 | 2023-02-21 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus for operating blockchain system, device and storage medium |
KR102501542B1 (ko) | 2021-06-11 | 2023-02-21 | 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 | 블록체인 시스템의 가동 방법, 장치, 설비 및 저장 매체 |
KR20220167217A (ko) * | 2021-06-11 | 2022-12-20 | 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 | 블록체인 시스템의 가동 방법, 장치, 설비 및 저장 매체 |
CN113254168A (zh) * | 2021-06-11 | 2021-08-13 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN113807968B (zh) * | 2021-09-22 | 2024-02-23 | 网易(杭州)网络有限公司 | 区块链用户请求处理方法、装置、委托服务器及存储介质 |
CN113807968A (zh) * | 2021-09-22 | 2021-12-17 | 网易(杭州)网络有限公司 | 区块链用户请求处理方法、装置、委托服务器及存储介质 |
WO2023109217A1 (zh) * | 2021-12-15 | 2023-06-22 | 杭州趣链科技有限公司 | 数据处理方法、区块链系统、计算机设备及存储介质 |
CN115190162B (zh) * | 2022-06-27 | 2023-11-28 | 杭州溪塔科技有限公司 | 区块链中的代理服务配置方法及代理服务系统 |
CN115190162A (zh) * | 2022-06-27 | 2022-10-14 | 杭州溪塔科技有限公司 | 区块链中的代理服务配置方法及代理服务系统 |
WO2024001507A1 (zh) * | 2022-06-30 | 2024-01-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、系统、装置、设备及存储介质 |
CN116436979A (zh) * | 2023-06-15 | 2023-07-14 | 湖南湘江树图信息科技创新中心有限公司 | 联盟区块链调用外部服务的方法及系统 |
CN116436979B (zh) * | 2023-06-15 | 2023-08-11 | 湖南湘江树图信息科技创新中心有限公司 | 联盟区块链调用外部服务的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108305170A (zh) | 基于区块链的外部服务访问方法、系统、设备及存储介质 | |
US10839395B2 (en) | Techniques for expediting processing of blockchain transactions | |
JP6532930B1 (ja) | ブロックチェーンベースのユーザ識別管理用の分散型台帳装置、分散型台帳方法 | |
CN109716707B (zh) | 分布式电子记录和交易历史的服务器设备和方法 | |
AU2019222743B2 (en) | Asset management method and apparatus, and electronic device | |
EP3507938B1 (en) | Biometric identification and verification among iot devices and applications | |
US20210304201A1 (en) | Transaction verification method and apparatus, storage medium, and electronic device | |
CN105556919B (zh) | 使用服务请求票据进行多因素认证 | |
US9641535B2 (en) | Apparatus and data processing systems for accessing an object | |
CN110297689A (zh) | 智能合约执行方法、装置、设备及介质 | |
US20190095919A1 (en) | System and method for integrating cyber fraud intelligence and payment risk decisions | |
US20170295159A1 (en) | Authenticating Clients Using Tokens | |
CN108923908A (zh) | 授权处理方法、装置、设备及存储介质 | |
JP2022516265A (ja) | 統合支払いのバックエンド構築方法、システム、コンピュータ機器及び記憶媒体 | |
CN109767200B (zh) | 一种电子支付方法、装置、系统和存储介质 | |
CN107835181A (zh) | 服务器集群的权限管理方法、装置、介质和电子设备 | |
CN112308236A (zh) | 用于处理用户请求的方法、装置、电子设备及存储介质 | |
CN110535631A (zh) | 边缘计算节点数据传输的方法、系统、设备及存储介质 | |
US20210349743A1 (en) | Systems and methods for converting record formats | |
CN110301127A (zh) | 用于预测性令牌验证的装置和方法 | |
CN115334145B (zh) | 一种业务处理方法、装置、电子设备及存储介质 | |
US10303335B2 (en) | Multicomputer processing of client device request data with centralized event orchestration | |
CN108829436A (zh) | 热修复方法、装置、系统、电子设备及计算机可读介质 | |
CN105339928A (zh) | 网站服务器请求重新路由 | |
CN114186994A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180720 |
|
WD01 | Invention patent application deemed withdrawn after publication |