一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

区块链的链外服务实现方法、装置、设备和介质与流程

2022-04-14 00:54:44 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及区块链技术。


背景技术:

2.由于区块链是确定性的运行环境,因此不允许不确定的事情或因素,所以一般通过链上部署的智能合约来提供业务功能。现有技术为了实现区块链调用链外服务而引入了预言机机制。
3.随着网络服务(web services)应用的快速发展,越来越多的链外服务也慢慢采用web services的开发结构。链外服务的来源多,因此出现了如何选择合适链外服务源的问题。
4.但是,区块链和链外服务架构之间存在鸿沟,导致区块链无法高效的利用链外服务应用。


技术实现要素:

5.本公开提供了一种区块链的链外服务实现方法、装置、设备和介质。以实现区块链对链外服务应用的高效利用。
6.根据本公开的一方面,提供了一种区块链的链外服务实现方法,应用于区块链节点,所述方法包括:在执行业务事务请求的过程中,调用预言机合约,以产生链外服务调用请求;通过所述预言机合约处理所述链外服务调用请求,以根据区块链中记录的链外服务描述数据选择确定目标链外服务源,并使得所述目标链外服务源响应所述链外服务调用请求;通过所述预言机合约获取所述链外服务源反馈的服务结果;根据所述目标链外服务源的链外服务描述数据对所述服务结果进行检验;通过所述预言机合约,将检验通过的服务结果响应所述业务事务请求的执行过程。
7.根据本公开的另一方面,提供了一种区块链的链外服务实现方法,应用于链外服务源,所述方法包括:通过区块链客户端,基于区块链中部署的预言机合约发起服务绑定事务请求,以请求注册所提供的链外服务的描述数据;获取所述预言机合约所产生的链外服务调用请求;执行所述链外服务调用请求并产生服务结果,反馈给所述预言机合约。
8.根据本公开的另一方面,提供了一种区块链的链外服务实现装置,应用于区块链节点,所述装置包括:事务请求执行模块,用于在执行业务事务请求的过程中,调用预言机合约,以产生链外服务调用请求;
调用请求处理模块,用于通过所述预言机合约处理所述链外服务调用请求,以根据区块链中记录的链外服务描述数据选择确定目标链外服务源,并使得所述目标链外服务源响应所述链外服务调用请求;服务结果获取模块,用于通过所述预言机合约获取所述链外服务源反馈的服务结果;服务结果检验模块,用于根据所述目标链外服务源的链外服务描述数据对所述服务结果进行检验;服务结果响应模块,用于通过所述预言机合约,将检验通过的服务结果响应所述业务事务请求的执行过程。
9.根据本公开的另一方面,提供了一种区块链的链外服务实现装置,应用于链外服务源,所述装置包括:绑定事务请求发起模块,用于通过区块链客户端,基于区块链中部署的预言机合约发起服务绑定事务请求,以请求注册所提供的链外服务的描述数据;调用请求获取模块,用于获取所述预言机合约所产生的链外服务调用请求;服务结果生成模块,用于执行所述链外服务调用请求并产生服务结果,反馈给所述预言机合约。
10.根据本公开的另一方面,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例所提供的任意一种区块链的链外服务实现方法。
11.根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例所提供的任意一种区块链的链外服务实现方法。
12.根据本公开的另一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开实施例所提供的任意一种区块链的链外服务实现方法。
13.根据本公开的技术,实现了区块链对链外服务应用的高效利用。
14.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
15.附图用于更好地理解本方案,不构成对本公开的限定。其中:图1是根据本公开实施例提供的一种区块链的链外服务实现方法的示意图;图2是根据本公开实施例提供的另一种区块链的链外服务实现方法的示意图;图3是根据本公开实施例提供的又一种区块链的链外服务实现方法的示意图;图4是根据本公开实施例提供的一种区块链的链外服务实现装置的结构示意图;图5是根据本公开实施例提供的一种区块链的链外服务实现装置的结构示意图;图6是用来实现本公开实施例的区块链的链外服务实现方法的电子设备的框图。
具体实施方式
16.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
17.图1是根据本公开实施例提供的一种区块链的链外服务实现方法的示意图,本公开实施例可适用于区块链对链外服务进行调用的情况。该方法可由一种区块链的链外服务实现装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为区块链节点。参考图1,该方法应用于区块链节点,该方法具体包括如下:s110、在执行业务事务请求的过程中,调用预言机合约,以产生链外服务调用请求。
18.其中,业务事务请求可以是由用户根据自身需求通过区块链的客户端向业务智能合约所发起的事务请求。其中,业务智能合约可以是区块链系统中部署的能够实现相应的业务功能的智能合约。例如,业务功能可以是电子商品购买功能等;业务功能还可以是区块链系统中需要为其他业务智能合约提供的功能,例如,人脸识别、权限验证等。
19.其中,预言机合约可以是预先部署在区块链节点中的用于为链上用户提供外部服务调用的智能合约,即该预言机合约能够为链上用户提供链外服务,并且能够基于治理机制对链外服务进行治理。链外服务调用请求可以是执行业务事务请求过程中,遇到需要对链外服务进行调用的情况时所产生的请求。例如,链外服务调用请求可以是请求调用链外的人脸识别服务。
20.需要说明的是,链上用户可以通过预言机合约获取当前能够调用的链下服务的服务类型,例如,服务类型可以包括人脸识别服务、语音识别服务和定位服务等。具体可以是用户向预言机合约发起服务获取请求,由预言机合约将可使用的链下服务的服务类型以文字或列表等形式向用户进行展示;或者,还可以是用户以搜索或查询的方式,向预言机合约发起服务查询请求,从而由预言机合约确定用户所查询的链下服务是否存在,并将查询结果反馈至用户。
21.示例性的,用户可以通过区块链的客户端获取预言机合约提供的接口界面;根据用户的实际需求,可以在预言机提供的接口界面所展示的至少一种链外服务的服务类型中,选取想要调用的链外服务,并由区块链节点调用预言机合约产生链外服务调用请求。
22.示例性的,用户还可以根据实际需求向区块链节点发起业务事务请求,并运行业务智能合约执行业务事务请求。区块链节点在执行业务事务请求的过程中,若需要调用链外服务时,则可以对部署在区块链中的预言机合约进行调用,并由预言机合约产生链外服务调用请求。
23.在一个可选实施例中,在执行业务事务请求的过程中,调用预言机合约,以产生链外服务调用请求包括:在运行业务智能合约执行业务事务请求的过程中,根据调用预言机合约的指令,调用预言机合约,并输入调用参数,以产生链外服务调用请求;其中,调用参数包括下述至少一项:服务名称、服务输入数据、候选链外服务源的地址、消费元素上限、服务质量要求数据、服务结果的回调地址。
24.其中,调用预言机合约的指令可以用于在业务智能合约的执行阶段对预言机合约
进行调用。需要说明的是,可以认为预言机合约的指令就是链外服务调用请求,因为除了调用预言机合约的接口函数之外,通常还包括调用参数。调用参数可以包括服务名称、服务输入数据、候选链外服务源的地址、消费元素上限、服务质量要求数据、服务结果的回调地址等中的至少一种。其中,服务输入数据可以是调用该服务所需提供的数据,不同服务可以对应不同的服务输入数据。
25.需要说明的是,提供相同类型服务的链外服务源可以有多个,不同类型服务对应的至少一个链外服务源的地址不同,且地址用于表征唯一的链外服务源。相应的,候选链外服务源的地址可以是被调用的链外服务对应的至少一个支持该服务的服务源地址。
26.其中,消费元素上限可以是调用链外服务的用户愿意支付的最大费用。例如,消费元素可以是虚拟货币或代币、或其他链上数字资源等。服务质量要求数据可以是调用链外服务的用户对服务的质量要求,例如,可以包括对服务响应时间或响应区块数量等要求,响应区块数量即在多少个区块之内即可返回服务结果。服务结果的回调地址可以是用于接收服务结果的预言机合约的地址。
27.本可选实施例通过在运行业务智能合约执行业务事务请求的过程中,根据调用预言机合约的指令,调用预言机合约,并输入调用参数,以产生链外服务调用请求,实现了对预言机合约的跨合约调用,而无需单独发起调用预言机合约的业务事务请求,即可产生链外服务调用请求,从而提高了请求调用的效率。通过调用预言机合约,基于输入调用参数,产生链外服务调用请求,提高了后续选取目标链外服务源的精确度。
28.s120、通过预言机合约处理链外服务调用请求,以根据区块链中记录的链外服务描述数据选择确定目标链外服务源,并使得目标链外服务源响应链外服务调用请求。
29.其中,链外服务描述数据包括至少两个链外服务源对所提供服务的描述数据。
30.其中,链外服务描述数据可以是用于描述链外服务源的数据,例如,链外服务描述数据可以包括链外服务源的服务质量,如链外服务响应时间、响应区块数量等。或者,还可以包括调用链外服务源所需支付的费用等。需要说明的是,链外服务描述数据可以预先记录在区块链中,以供后续预言机合约能够根据预先记录的链外服务描述数据确定目标链外服务源,以及对后续反馈的服务结果的检验。
31.其中,目标链外服务源可以是从候选链外服务源中选取的最终用于响应链外服务调用请求的链外服务源。候选链外服务源可以是能够满足链外服务调用请求的至少一个链外服务源。
32.示例性的,区块链节点可以调用预言机合约处理链外服务调用请求,并且能够根据链外服务调用请求确定候选链外服务源;预言机合约可以根据区块链中记录的链外服务描述数据,例如服务质量数据,从候选链外服务源中选择确定目标链外服务源,即可以从候选链外服务源中选取服务响应时间较短的链外服务源作为目标链外服务源。预言机合约可以使得目标链外服务源响应链外服务调用请求。
33.需要说明的是,预言机合约可以采用接口调用的方式实现目标链外服务源响应链外服务调用请求。具体可以是使得区块链网络中的各区块链节点分别与链外服务源进行接口调用,从而实现链外服务源对链外服务调用请求的响应。然而,区块链网络包括多个区块链节点,若分别调用链外服务源,则可能产生大量的调用请求。
34.可选的,可以采用事件日志监听的方式,实现目标链外服务源响应链外服务调用
请求。
35.在一个可选实施例中,区块链节点调用预言机合约处理链外服务调用请求,产生链外调用事件日志,并记录在区块头或区块体中。链外服务源可以对区块链中的链外调用事件日志进行监听,当监听到链外调用事件日志时,则由目标链外服务源对链外服务调用请求进行响应。
36.其中,区块体中可以记录区块的详细数据,例如,可以记录区块链执行过程中产生或接收的至少一条请求数据。区块头中可以记录上一个区块的哈希值和本区块的哈希值,以及至少一颗用于记录信息的树。例如,事件日志可以记录在区块头中的日志树中。日志树可以是用于记录区块中各事件信息的数据结构。事件信息可以是链外调用事件的相关信息。
37.s130、通过预言机合约获取链外服务源反馈的服务结果。
38.其中,服务结果可以是链外服务源根据链外调用服务请求,基于自身所提供的服务内容而产生的结果。
39.示例性的,链外服务源可以在监听到链外调用事件后,对链外调用请求进行响应,并将基于链外调用服务请求产生的服务结果,反馈至预言机合约。
40.s140、根据目标链外服务源的链外服务描述数据对服务结果进行检验。
41.需要说明的是,当目标链外服务源响应链外服务调用请求时,预言机合约可以对调用请求的目标链外服务源进行监控,例如,预言机合约可以监控目标链外服务源对链外服务调用请求的实际响应时间。
42.示例性的,当预言机合约获取到目标链外服务源反馈的服务结果时,预言机合约可以根据监控得到服务结果对应的实际响应时间,以及记录的目标链外服务源的链外服务描述数据中的服务响应时间,对服务结果进行检验。若服务结果的实际响应时间不大于服务描述数据中记录的服务响应时间,则可以确定服务结果的检验通过;若服务结果的实际响应时间大于服务描述数据中记录的服务响应时间,则可以确定服务结果的检验未通过。
43.s150、通过预言机合约,将检验通过的服务结果响应业务事务请求的执行过程。
44.示例性的,预言机合约可以将检测通过的服务结果作为业务事务请求执行过程中的反馈结果响应至业务智能合约。
45.本公开实施例方案通过在执行业务事务请求的过程中,调用预言机合约产生链外服务调用请求并进行处理,以根据链外服务描述数据确定目标链外服务源,由目标链外服务源响应链外服务调用请求;通过预言机合约获取链外服务源反馈的服务结果;根据目标链外服务源的链外服务描述数据对服务结果进行检验并将检验通过的服务结果响应业务事务请求的执行过程。上述方案通过链外服务源响应链外服务调用请求从而产生服务结果的方式,实现了区块链对链外服务应用的高效利用,使得链上用户能够根据自身实际需求,选择链下提供的各类服务,为用户提供更多的服务选择,提高了用户的便利性;并且,由预言机合约控制链外服务源响应链外服务调用请求,根据预先存储的链外服务描述数据,对服务结果进行检验,实现了为用户提供链外服务的同时对链外服务源进行治理,从而保证了服务提供者和服务消费者都能够最大程度受益。
46.图2是根据本公开实施例提供的另一种区块链的链外服务实现方法的示意图,本实施例是在上述实施例的基础上提出的一种可选方案。
47.参见图2,本实施例提供的区块链的链外服务实现方法包括:s210、在执行业务事务请求的过程中,调用预言机合约,以产生链外服务调用请求。
48.需要说明的是,链外的提供者可以向区块链链上的用户(消费者)提供各种类型的链外服务。例如,链外服务的服务类型可以包括人脸识别服务、智能语音服务和导航服务等。当链外的提供者想要向区块链提供一种全新类型的服务时,如指纹识别服务,则需要向区块链节点发起定义新服务的请求,并由预言机合约对该定义请求进行处理。或者,也可以区块链的平台方等其他组织方确定存在链外服务的需求,而发起定义新服务。
49.在一个可选实施例中,在执行业务事务请求的过程中,调用预言机合约,以产生链外服务调用请求之前,还包括:获取服务定义事务请求;调用预言机合约执行服务定义事务请求,以获取链外服务的定义标准,并记录在区块链中;其中,链外服务的定义标准用于确定链外服务描述数据的内容。
50.其中,服务定义事务请求可以是由服务的提供者或管理方等任意用户发起的用于对链外服务进行标准定义的请求。定义标准可以是定义服务提供者需要为自身提供服务所需描述的具体内容。所有提供该服务的链外服务源均需要按照该服务的定义标准,确定链外描述数据的内容。
51.示例性的,若链外服务的提供者所提供的服务未在区块链链上被记录或被定义,则可以由服务提供者向区块链节点发起服务定义事务请求。区块链节点获取服务定义事务请求后,调用预言机合约执行该服务定义事务请求,并根据服务定义事务请求获取链外服务的定义标准,以记录在区块链中。若后续有想要提供该服务的链外服务源,则链外服务源需要根据该服务在区块链中记录的定义标准,确定链外服务描述数据的内容。
52.本可选实施例通过调用预言机合约执行获取的服务定义事务请求,以获取链外服务的定义标准,并记录在区块链中,实现了对链外服务的定义,以及区块链对链外服务的定义标准的存储,便于后续提供该服务的链外服务源能够根据定义标准确定自身的链外服务描述数据,从而便于后续对提供该服务的链外服务源的调用。
53.需要说明的是,若存在想要提供链外服务的链外数据源,则需要预先在链上进行注册,以完成与该链外服务之间的绑定,具体可以是根据在预言机合约中预先存储的该服务的定义标准,向链上发起绑定请求以实现与该服务的绑定。
54.在一个可选实施例中,在执行业务事务请求的过程中,调用预言机合约,以产生链外服务调用请求之前,获取服务绑定事务请求;调用预言机合约执行服务绑定事务请求,以获取链外服务描述数据,并记录在区块链中;其中,链外服务描述数据包括下述至少一项:链外服务源的地址、服务质量数据、服务惩罚数据、预存抵押元素和消费元素数据。
55.其中,服务绑定事务请求可以是由链外服务源发起的用于进行服务绑定的事务请求。服务质量数据可以包括服务响应时间或服务响应区块数;服务惩罚数据可以包括冻结或销毁目标链外服务源所属账户在区块链中的预存抵押元素的数量;预存抵押元素和消费元素可以是虚拟货币或代币。消费元素数据可以是调用该链外服务所需支付的费用。
56.需要说明的是,链外数据源在向区块链发起服务绑定事务请求之前,可以预先确定区块链中是否记录有该服务的定义标准;若是,则向区块链发起服务绑定事务请求;若否,则可以向区块链发起服务定义事务请求。
57.示例性的,链外服务源可以预先向区块链节点获取所提供的链外服务的定义标准,以根据定义标准确定链外服务描述数据;链外服务源向区块链发起服务绑定事务请求;区块链获取服务绑定事务请求后,调用预言机合约执行服务绑定事务请求;预言机合约根据该服务绑定事务请求,确定链外数据源的链外服务描述数据并记录在区块链中,以实现链外服务源与链上定义的服务之间的绑定。
58.本可选实施例通过获取服务绑定事务请求;调用预言机合约执行服务绑定事务请求,以获取链外服务描述数据,并记录在区块链中,实现了链外服务源与链上定义的服务之间的绑定;根据链外服务源对该服务绑定过程中所提供的链外服务描述数据,实现了区块链对该链外服务源的治理,从而保障了链外服务源所属提供者与用户之间的公平性。
59.为确保链外服务源能够较好的为链上用户提供服务,可以采用预言机合约对链外服务源进行监测,从而使得链外服务源所提供的服务质量较差时对其进行惩罚。
60.在一个可选实施例中,在获取链外服务描述数据,并记录在区块链中之后,通过预言机合约监测链外服务描述数据;如果链外服务源所属账号预存元素低于预存抵押元素,则禁用链外服务源;如果链外服务源所属账号预存元素高于预存抵押元素,则启用链外服务源。
61.其中,预言机合约对链外服务描述数据可以是定时监测,也可以是在每次对链外服务源的预存抵押元素进行扣除时监测一次等。链外服务源所属账号的预存元素可以是由于各种因素扣除账号中的预存抵押元素之后的剩余抵押元素。
62.示例性的,可以通过预言机合约监测链外服务描述数据中的预存质押元素,并判断链外服务源所属账号的预存元素是否低于预存抵押元素;若是,则禁用链外服务源;若否,则启用链外服务源。
63.本可选实施例通过预言机合约监测链外服务描述数据的方式,实现了对链外服务源的禁止和启用,从而实现了对链外服务源的治理,通过对链外服务源存在欺骗行为时的禁止使用惩罚,避免了链外服务源频繁出现服务质量差的情况发生。
64.s220、通过预言机合约处理链外服务调用请求,以根据区块链中记录的链外服务描述数据中的服务质量数据和消费元素数据,选择确定目标链外服务源,并使得目标链外服务源响应链外服务调用请求;其中,链外服务描述数据包括至少两个链外服务源对所提供服务的描述数据。
65.其中,服务质量数据可以包括服务响应时间或服务响应区块数。服务响应时间可以是由链外服务源设定的响应调用请求所需消耗的时间;服务响应区块数可以是由链外服务源设定的响应调用请求所需消耗的区块数量。服务响应时间越长或服务响应区块数越少,表示服务质量越低;服务响应时间越段或服务响应区块数越多,表示服务质量越高。
66.其中,消费元素数据可以是请求链外服务源响应服务调用请求并提供服务所需支付的费用。例如,消费元素可以是虚拟货币或代币。需要说明的是,支持同一项服务的不同链外服务源对应的服务质量数据或消费元素数据可以相同,也可以不同。例如,链外服务源a和链外服务源b均支持人脸识别服务,链外服务源a支持该服务所需的服务响应时间为10ms,消费元素数据为每提供一次服务需消耗10代币;而链外服务源b支持该服务所需的服务响应时间为15ms,消费元素数据为每提供一次服务需消耗8代币。
67.区块链节点可以调用预言机合约来处理链外服务调用请求,并根据链外服务调用
请求,确定候选链外服务源。其中,候选链外服务源可以是能够满足链外服务调用请求的至少一个链外服务源。预言机合约根据预先记录的链外服务描述数据中的服务质量数据和消费元素数据,从候选链外服务源中确定目标链外服务源。
68.示例性的,预言机合约可以综合考虑候选链外服务源的服务响应时间、服务响应区块数以及使用候选链外服务源所需支付的费用等因素,从候选链外服务源中选取目标链外服务源,例如,可以将候选链外服务源中服务响应时间较短和/或需要支付的费用较少的链外服务源,作为目标链外服务源。
69.示例性的,预言机合约也可以根据链外服务调用请求,确定候选链外服务源,并将候选链外服务源以及候选服务源对应的链外服务描述数据以列表或文字等形式,向发起调用请求的所属用户展示,以供用户根据实际需求,从候选链外服务源中选取目标链外服务源。
70.示例性的,预言机合约还可以根据链外服务调用请求,确定候选链外服务源,并基于预先记录在区块中的链外服务描述数据中的服务质量数据和消费元素数据,从候选链外服务源中选取效果最优的待确认链外服务源;预言机合约将待确认链外服务源向发起调用请求的所属用户展示,由用户确定是否将待确认链外服务源作为目标链外服务源;若是,则将待确认链外服务源作为目标链外服务源,并使得目标链外服务源响应链外服务调用请求;若否,则由预言机合约基于候选链外服务源和链外服务描述数据,重新确定待确认链外服务源,并由用户再次确认。
71.s230、通过预言机合约获取链外服务源反馈的服务结果。
72.s240、根据目标链外服务源的链外服务描述数据中的服务质量数据,对服务结果的服务质量进行检验。
73.可以根据预先记录在区块链中的目标链外服务源的链外服务描述数据中的服务质量数据,如服务响应时间和/或服务响应区块数,对服务结果的服务质量进行检验。
74.示例性的,区块链节点调用预言机合约控制链外服务源响应链外服务调用请求,并获取链外服务源反馈的服务结果,预言机合约获取到服务结果后,确定目标链外服务源对该调用请求的实际响应时间和实际响应区块数。预言机合约将目标链外服务源的实际响应时间和预先记录在区块链的服务描述数据中服务响应时间进行比较,确定对服务结果的服务响应时间的检验结果;将目标链外服务源的实际响应区块数和预先记录在区块链的服务描述数据中服务响应区块数进行比较,确定对服务结果的服务响应区块数的检验结果。
75.根据对服务结果的服务响应时间的检验结果和/或对服务结果的服务响应区块数的检验结果,确定对服务结果的服务质量的检验结果。若对服务响应时间的检验和对服务响应区块数的检验均通过,则可以认为服务质量的检验通过。
76.示例性的,可以由预言机合约判断目标链外服务源的实际响应时间是否不大于预先记录在区块链的服务描述数据中服务响应时间;若是,则可以认为对服务响应时间的检验通过;若否,则可以认为对服务响应时间的检验未通过;或者,若目标链外服务源的实际响应时间大于预先记录在区块链的服务描述数据中服务响应时间,则还可以由预言机合约判断目标链外服务源的实际响应时间与预先记录在区块链的服务描述数据中服务响应时间之间的时间差值,是否超过预设时间阈值;若是,则可以认为对服务响应时间的检验未通过;若否,则可以认为对服务响应时间的检验通过。其中,预设时间阈值可以由相关技术人
员进行预先设定。
77.示例性的,可以由预言机合约判断目标链外服务源的实际响应区块数是否不小于预先记录在区块链的服务描述数据中服务响应区块数;若是,则可以认为对服务响应区块数的检验通过;若否,则可以认为对服务响应区块数的检验未通过。或者,若目标链外服务源的实际响应区块数小于预先记录在区块链的服务描述数据中服务响应区块数,则还可以由预言机合约判断目标链外服务源的实际响应区块数与预先记录在区块链的服务描述数据中服务响应区块数之间的数量差值,是否超过预设数量阈值;若是,则可以认为对服务响应区块数的检验未通过;若否,则可以认为对服务响应时间的检验通过。其中,预设数量阈值可以由相关技术人员进行预先设定。
78.s250、如果检验通过,则继续执行服务结果响应操作。
79.示例性的,如果对服务结果的服务质量的检测通过,即对服务结果的服务响应时间和服务响应区块数的检测均通过,则继续执行服务结果响应操作。
80.s260、如果检验不通过,则根据服务结果的服务质量和链外服务描述数据中的服务惩罚规则,对目标链外服务源执行惩罚操作。
81.其中,服务惩罚规则可以包括冻结或销毁目标链外服务源所属账户在区块链中的预存抵押元素。例如,抵押元素可以是虚拟货币或代币。
82.示例性的,如果对服务结果的服务质量的检测不通过,则可以根据服务结果的服务响应时间的检测结果和服务响应区块数的检测结果,以及链外服务描述数据中的服务惩罚规则,对目标链外服务源执行惩罚操作。
83.具体的,若对服务结果的服务响应时间的检测不通过,或者对服务结果的服务响应区块数的检测不通过,则将目标链外服务源所属账户在区块链中的预存抵押元素执行冻结操作。例如,可以由相关技术人员预先设定冻结时间周期,被冻结的抵押元素在该冻结时间周期内不可使用。若对服务结果的服务响应时间的检测不通过,并且对服务结果的服务响应区块数的检测也不通过,则将目标链外服务源所属账户在区块链中的预存抵押元素执行销毁操作。
84.s270、通过预言机合约,将检验通过的服务结果响应业务事务请求的执行过程。
85.本公开实施例通过预言机合约处理链外服务调用请求,以根据区块链中记录的链外服务描述数据中的服务质量数据和消费元素数据,选择确定目标链外服务源,实现了对目标链外服务源的准确确定,从而实现了对目标链外服务源的准确调用,为用户提供了更优质的服务,同时给用户带来良好的服务体验。通过根据目标链外服务源的链外服务描述数据中的服务质量数据,对服务结果的服务质量进行检验的方式,提高了对服务结果的服务质量的检测准确度,当检验不通过时,根据服务结果的服务质量和链外服务描述数据中的服务惩罚规则,对目标链外服务源执行惩罚操作,实现了对当链外服务源的服务质量存在问题时,对链外服务源的治理,避免链外服务源频繁出现服务质量问题的情况发生,从而保证了服务提供者和服务消费者都能够最大程度受益。
86.图3是根据本公开实施例提供的一种区块链的链外服务实现方法的示意图,本公开实施例可适用于区块链对链外服务进行调用的情况。该方法可由一种区块链的链外服务实现装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为链外服务源。参考图3,该方法应用于链外服务源,该方法具体包括如下:
s310、通过区块链客户端,基于区块链中部署的预言机合约发起服务绑定事务请求,以请求注册所提供的链外服务的描述数据。
87.其中,服务绑定事务请求可以是由链外服务源发起的用于进行服务绑定的事务请求。链外服务的描述数据包括下述至少一项:链外服务源的地址、服务质量数据、服务惩罚数据、预存抵押元素和消费元素数据。
88.示例性的,链外服务源可以通过区块链客户端,向区块链发起服务绑定事务请求,以请求在区块链中注册所提供的链外服务描述数据,以供区块链调用预言机合约对服务绑定事务请求进行处理。
89.在一个可选实施例中,在基于区块链中部署的预言机合约发起服务绑定事务请求之前,还包括:通过预言机合约查询区块链上记录的链外服务的定义标准;其中,链外服务的定义标准用于确定链外服务描述数据的内容。
90.链外服务源可以通过区块链的客户端获取预言机合约提供的接口界面,并在接口界面中查询区块链上记录的链外服务源想要提供的链外服务的定义标准,并根据该定义标准,基于预言机合约发起服务绑定事务请求。
91.需要说明的是,若链外服务源在接口界面中未查询到区块链上记录有链外服务源想要提供的链外服务的定义标准,则链外服务源可以向区块链发起服务定义事务请求,以请求调用预言机合约将该链外服务的定义标准记录在区块链中。其中,链外服务的定义标准用于确定链外服务描述数据的内容。
92.本可选实施例通过在预言机合约发起服务绑定事务请求之前,由预言机合约查询区块链上记录的链外服务的定义标准的方式,实现了对该链外服务是否在链上存在进行预先确定,便于后续链外服务的注册与绑定。
93.s320、获取预言机合约所产生的链外服务调用请求。
94.链外服务源可以采用接口调用的方式获取预言机合约所产生的链外服务调用请求,还可以采用事件日志监听的方式,获取预言机合约所产生的链外服务调用请求。
95.示例性的,区块链节点调用预言机合约处理链外服务调用请求,产生链外调用事件日志,并记录在区块头或区块体中。链外服务源可以对区块链中的链外调用事件日志进行监听,当监听到链外调用事件日志时,则由目标链外服务源对链外服务调用请求进行响应。其中,目标链外服务源可以是从候选链外服务源中选取的最终用于响应链外服务调用请求的链外服务源。候选链外服务源可以是能够满足链外服务调用请求的至少一个链外服务源。
96.s330、执行链外服务调用请求并产生服务结果,反馈给预言机合约。
97.示例性的,链外服务源可以在监听到链外调用事件后,对链外调用请求进行响应,并将基于链外调用服务请求产生的服务结果,反馈给预言机合约。
98.本公开实施例方案通过区块链客户端,基于区块链中部署的预言机合约发起服务绑定事务请求,以请求注册所提供的链外服务的描述数据;获取预言机合约所产生的链外服务调用请求;执行链外服务调用请求并产生服务结果,反馈给预言机合约。上述方案通过链外服务源在区块链中进行链外服务的注册,实现了链下服务源在区块链中的服务绑定,使得链上用户能够根据自身实际需求,选择链下提供的各类服务,为用户提供更多的服务选择,提高了用户的便利性。
99.图4是根据本公开实施例提供的一种区块链的链外服务实现装置的示意图,本实施例可适用于区块链对链外服务进行调用的应用场景,该装置配置于电子设备中,可实现本公开任意实施例所述的区块链的链外服务实现方法。该电子设备可以为区块链节点,参考图4,该区块链的链外服务实现装置400具体包括如下:事务请求执行模块401,用于在执行业务事务请求的过程中,调用预言机合约,以产生链外服务调用请求;调用请求处理模块402,用于通过所述预言机合约处理所述链外服务调用请求,以根据区块链中记录的链外服务描述数据选择确定目标链外服务源,并使得所述目标链外服务源响应所述链外服务调用请求;其中,所述链外服务描述数据包括至少两个链外服务源对所提供服务的描述数据;服务结果获取模块403,用于通过所述预言机合约获取所述链外服务源反馈的服务结果;服务结果检验模块404,用于根据所述目标链外服务源的链外服务描述数据对所述服务结果进行检验;服务结果响应模块405,用于通过所述预言机合约,将检验通过的服务结果响应所述业务事务请求的执行过程。
100.本公开实施例方案通过链外服务源响应链外服务调用请求从而产生服务结果的方式,实现了区块链对链外服务应用的高效利用,使得链上用户能够根据自身实际需求,选择链下提供的各类服务,为用户提供能多的服务选择,提高了用户的便利性;并且,根据预先存储的链外服务描述数据,对服务结果进行检验,实现了为用户提供链外服务的同时对链外服务源进行治理,从而保证了服务提供者和服务消费者都能够最大程度受益。
101.在一种可选的实施方式中,所述链外服务描述数据包括至少两个链外服务源对所提供服务的描述数据。
102.在一种可选的实施方式中,所述服务结果检验模块404,包括:服务质量检验单元,用于根据所述目标链外服务源的链外服务描述数据中的服务质量数据,对所述服务结果的服务质量进行检验;响应操作执行单元,用于如果检验通过,则继续执行服务结果响应操作;惩罚操作执行单元,用于如果检验不通过,则根据所述服务结果的服务质量和所述链外服务描述数据中的服务惩罚规则,对所述目标链外服务源执行惩罚操作。
103.在一种可选的实施方式中,所述调用请求处理模块402,包括:目标链外服务源确定单元,用于通过所述预言机合约处理所述链外服务调用请求,以根据区块链中记录的链外服务描述数据中的服务质量数据和消费元素数据,选择确定目标链外服务源。
104.在一种可选的实施方式中,所述服务质量包括:服务响应时间或服务响应区块数;所述惩罚操作包括:冻结或销毁所述目标链外服务源所属账户在区块链中的预存抵押元素。
105.在一种可选的实施方式中,所述装置400还包括:定义事务请求获取模块,用于获取服务定义事务请求;定义标准获取模块,用于调用所述预言机合约执行所述服务定义事务请求,以获
取链外服务的定义标准,并记录在区块链中;其中,所述链外服务的定义标准用于确定所述链外服务描述数据的内容。
106.在一种可选的实施方式中,所述装置400还包括:绑定事务请求获取模块,用于获取服务绑定事务请求;描述数据获取模块,用于调用所述预言机合约执行所述服务绑定事务请求,以获取链外服务描述数据,并记录在区块链中;其中,所述链外服务描述数据包括下述至少一项:链外服务源的地址、服务质量数据、服务惩罚数据、预存抵押元素和消费元素数据。
107.在一种可选的实施方式中,所述装置400还包括:描述数据监测模块,用于通过所述预言机合约监测所述链外服务描述数据;链外服务源禁用模块,用于如果链外服务源所属账号预存元素低于预存抵押元素,则禁用所述链外服务源;链外服务源启用模块,用于如果链外服务源所属账号预存元素高于预存抵押元素,则启用所述链外服务源。
108.在一种可选的实施方式中,事务请求执行模块401,包括:事务请求执行单元,用于在运行业务智能合约执行所述业务事务请求的过程中,根据调用预言机合约的指令,调用所述预言机合约,并输入调用参数,以产生链外服务调用请求;其中,所述调用参数包括下述至少一项:服务名称、服务输入数据、候选链外服务源的地址、消费元素上限、服务质量要求数据、服务结果的回调地址。
109.本公开实施例的技术方案所提供的一种区块链的链外服务实现装置可执行本公开任意实施例所提供的区块链的链外服务实现方法,具备执行区块链的链外服务实现方法相应的功能模块和有益效果。
110.图5是根据本公开实施例提供的一种区块链的链外服务实现装置的示意图,本实施例可适用于区块链对链外服务进行调用的应用场景,该装置配置于电子设备中,可实现本公开任意实施例所述的区块链的链外服务实现方法。该电子设备可以为链外服务源,参考图5,该区块链的链外服务实现装置500具体包括如下:绑定事务请求发起模块501,用于通过区块链客户端,基于区块链中部署的预言机合约发起服务绑定事务请求,以请求注册所提供的链外服务的描述数据;调用请求获取模块502,用于获取所述预言机合约所产生的链外服务调用请求;服务结果生成模块503,用于执行所述链外服务调用请求并产生服务结果,反馈给所述预言机合约。
111.本公开实施例方案通过区块链客户端,基于区块链中部署的预言机合约发起服务绑定事务请求,以请求注册所提供的链外服务的描述数据;获取预言机合约所产生的链外服务调用请求;执行链外服务调用请求并产生服务结果,反馈给预言机合约。上述方案通过链外服务源在区块链中进行链外服务的注册,实现了链下服务源在区块链中的服务绑定,使得链上用户能够根据自身实际需求,选择链下提供的各类服务,为用户提供更多的服务选择,提高了用户的便利性。
112.在一种可选的实施方式中,所述装置500还包括:
定义标准查询模块,用于在基于区块链中部署的预言机合约发起服务绑定事务请求之前,通过预言机合约查询区块链上记录的链外服务的定义标准;其中,所述链外服务的定义标准用于确定所述链外服务描述数据的内容。
113.在一种可选的实施方式中,所述链外服务的描述数据包括下述至少一项:链外服务源的地址、服务质量数据、服务惩罚数据、预存抵押元素和消费元素数据。
114.本公开实施例的技术方案所提供的一种区块链的链外服务实现装置可执行本公开任意实施例所提供的区块链的链外服务实现方法,具备执行区块链的链外服务实现方法相应的功能模块和有益效果。
115.本公开的技术方案中,所涉及的业务事务请求、链外服务调用请求、链外服务描述数据、服务结果等的收集、存储、使用、加工、传输、提供和公开等,均符合相关法律法规的规定,且不违背公序良俗。
116.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
117.图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
118.如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
119.设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
120.计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如区块链的链外服务实现方法。例如,在一些实施例中,区块链的链外服务实现方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到ram 603并由计算单元601执行时,可以执行上文描述的区块链的链外服务实现方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行区块链的链外服务实现方法。
121.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
122.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
123.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
124.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
125.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)区块链网络和互联网。
126.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了
区块链的服务器。
127.人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
128.云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
129.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
130.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献