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

一种智能合约的跨链调用方法及装置与流程

2023-02-02 08:29:04 来源:中国专利 TAG:


1.本说明书多个实施例涉及区块链技术领域,尤其涉及一种智能合约的跨链调用方法及装置。


背景技术:

2.随着区块链技术的发展,越来越多的区块链建立起来,然而这些区块链大部分都是独立的,相互之间无法联通。因此,在实际应用中,为了充分利用各个区块链上部署的服务资源,可以将这些区块链作为成员区块链组建成一个区块链服务网络,并将各个成员区块链上部署的智能合约所包含的合约执行逻辑,通过该区块链服务网络的管理平台,以用户服务的形式开放给用户,供用户进行调用。


技术实现要素:

3.根据本说明书多个实施例的第一方面,提出一种智能合约的跨链调用方法,所述方法应用于由若干成员区块链构成的区块链服务网络中的任一目标成员区块链中的节点设备;其中,所述区块链服务网络中的至少部分成员区块链上部署的用户智能合约所包含的合约执行逻辑,以用户服务的形式开放调用;所述区块链网络中的各成员区块链上,分别部署了系统智能合约;所述系统智能合约包含与所述用户服务对应的跨链调用逻辑;
4.所述方法包括:
5.获取服务使用方发起的针对所述用户服务的调用数据;其中,所述用户服务的服务接口绑定了部署在其它成员区块链上的用户智能合约所包含的合约执行逻辑;
6.响应于所述调用数据,调用所述系统智能合约包含的所述跨链调用逻辑,从与所述服务接口绑定的合约执行逻辑中,为所述服务使用方确定目标合约执行逻辑,并发起针对所述其它成员区块链上部署的包含所述目标合约执行逻辑的用户智能合约的跨链调用。
7.根据本说明书多个实施例的第二方面,还提供一种智能合约的跨链调用装置,所述装置应用于由若干成员区块链构成的区块链服务网络中的任一目标成员区块链中的节点设备;其中,所述区块链服务网络中的各成员区块链上部署的用户智能合约所包含的合约执行逻辑,以用户服务的形式开放调用;所述区块链网络中的各成员区块链上,分别部署了系统智能合约;所述系统智能合约包含与所述用户服务对应的跨链调用逻辑;
8.所述装置包括:
9.获取模块,获取服务使用方发起的针对所述用户服务的调用数据;其中,所述用户服务的服务接口绑定了部署在其它成员区块链上的用户智能合约所包含的合约执行逻辑;
10.调用模块,响应于所述调用数据,调用所述系统智能合约包含的所述跨链调用逻辑,从与所述服务接口绑定的合约执行逻辑中,为所述服务使用方确定目标合约执行逻辑,并发起针对所述其它成员区块链上部署的包含所述目标合约执行逻辑的用户智能合约的跨链调用。
11.在本说明书以上的实施方式中,一方面,由于区块链服务网络支持对各成员区块
链上部署的用户智能合约所包含的合约执行逻辑进行服务化,将其以用户服务的形式开放调用,并且与该用户服务对应的合约执行逻辑,可以不再与该用户服务直接进行绑定,而是与该用户服务对应的服务接口进行绑定;因此,在将该用户服务开放给服务使用方时,可以只将该用户服务对应的服务接口暴露给服务使用方即可,而与该服务接口绑定的合约执行逻辑相关的信息,则可以不再暴露给该服务使用方,从而可以避免将与用户服务对应的合约执行逻辑相关的信息,直接暴露给服务使用方而造成的隐私泄露。
12.另一方面,由于服务使用方在通过系统智能合约跨链调用与该用户服务的服务接口绑定的合约执行逻辑时,最终调用的合约执行逻辑是由系统智能合约从与该服务接口绑定的合约执行逻辑中动态确定出的;因此,通过这种方式,可以提升上述用户服务在被调用时的灵活性。而且,对于服务使用方来说,并不能提前感知到被调用的该合约执行逻辑所在的智能合约,以及该智能合约所在的成员区块链;因此,这种跨链调用合约的方式,将具有较高的隐私性和安全性。
附图说明
13.图1是本说明书一示例性实施例示出的区块链服务网络的网络架构图。
14.图2是本说明书根据一示例性实施例示出的一种区块链服务网络的组建方法的流程图。
15.图3是本说明书示出的一种对目标区块链进行注册处理的流程图。
16.图4是本说明书根据一示例性实施例示出的一种为用户服务设置服务接口,并为服务接口绑定合约执行逻辑的示意图。
17.图5是本说明书根据一示例性实施例示出的一种服务的使用注册方法的流程图。
18.图6是本说明书根据一示例性实施例示出的一种智能合约的跨链调用方法的流程图。
19.图7是一示例性实施例提供的一种电子设备的示意结构图。
20.图8是本说明书根据一示例性实施例示出的一种智能合约的跨链调用装置的框图。
具体实施方式
21.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
22.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
23.在相关技术中,为了整合不同的区块链上部署的用户智能合约的服务能力,充分
利用各个区块链上部署的服务资源,通常可以将这些区块链作为成员区块链组建成一个区块链服务网络,再将各个成员区块链上部署的智能合约所包含的合约执行逻辑,通过该区块链服务网络的中心化管理平台进行服务化,以用户服务的形式开放给用户,供用户进行调用。在实际应用中,在将各个成员区块链上部署的智能合约所包含的合约执行逻辑,进行服务化时,具体可以通过在区块链服务网络的管理平台上注册一个面向用户的用户服务,并将该用户服务与需要服务化的合约执行逻辑直接进行绑定,然后再将该用户服务开放给用户。
24.由于注册完成的该用户服务,最终需要开放给用户;因此,如果采用将该用户服务与需要服务化的合约执行逻辑直接进行绑定的方式,则这些与用户服务绑定的合约执行逻辑相关的信息,势必也会暴露给用户从而面临隐私暴露的风险。
25.有鉴于此,本说明书则提出一种在对区块链上部署的智能合约所包含的合约执行逻辑进行服务化的应用场景中,将需要服务化的合约执行逻辑,与面向用户开放的用户服务的服务接口进行绑定,并且在调用该用户服务时,从与该用户服务的服务接口绑定的合约执行逻辑中,来动态确定被调用的合约执行逻辑的智能合约跨链调用方案。
26.在实现时,区块链服务网络中的至少部分成员区块链上部署的用户智能合约所包含的合约执行逻辑,仍然可以以用户服务的形式开放调用。其中,与该用户服务对应的合约执行逻辑,可以不再与该用户服务直接进行绑定,而是与该用户服务对应的服务接口进行绑定。
27.当区块链服务网络中的任一目标成员区块链中的节点设备,在收到服务使用方发起的针包含该用户服务的服务接口的调用数据时,可以响应该调用数据,从与该服务接口绑定的部署在其它成员区块链上的用户智能合约所包含的合约执行逻辑中,为该服务使用方确定出一个可供调用的目标合约执行逻辑,然后再发起针对上述其它成员区块链上部署的包含该目标合约执行逻辑的用户智能合约的跨链调用,以完成针对个用户服务的服务调用。
28.在以上技术方案中,一方面,由于区块链服务网络支持对各成员区块链上部署的用户智能合约所包含的合约执行逻辑进行服务化,将其以用户服务的形式开放调用,并且与该用户服务对应的合约执行逻辑,可以不再与该用户服务直接进行绑定,而是与该用户服务对应的服务接口进行绑定;因此,在将该用户服务开放给服务使用方时,可以只将该用户服务对应的服务接口暴露给服务使用方即可,而与该服务接口绑定的合约执行逻辑相关的信息,则可以不再暴露给该服务使用方,从而可以避免将与用户服务对应的合约执行逻辑相关的信息,直接暴露给服务使用方而造成的隐私泄露。
29.例如,以与上述用户服务对应的合约执行逻辑为可执行的函数为例,如果采用直接将该用户服务与这些可执行的函数进行绑定的方式,势必需要将这些函数相关的函数名等信息暴露给用户。而如果采用将该用户服务与服务接口进行绑定,可以还需要将这些服务接口甚至是这些函数相关的功能描述等信息暴露给用户即可,而这些函数的函数名等实质的内容,则可以不再需要暴露给用户。
30.另一方面,由于服务使用方在通过系统智能合约跨链调用与该用户服务的服务接口绑定的合约执行逻辑时,最终调用的合约执行逻辑是由系统智能合约从与该服务接口绑定的合约执行逻辑中动态确定出的;因此,通过这种方式,可以提升上述用户服务在被调用
时的灵活性。
31.例如,在实际应用中,该服务接口可以绑定多个服务功能相同的合约执行逻辑,从而该系统智能合约则可以按照具体的需求,从与该服务接口绑定的多个合约执行逻辑中,灵活的指定出一个合约执行逻辑供用户调用,这种调用方式显然具有灵活性较高的特点。
32.而且,通过这种方式,对于服务使用方来说,并不能提前感知到被调用的该合约执行逻辑所在的智能合约,以及该智能合约所在的成员区块链;因此,这种跨链调用合约的方式,将具有较高的隐私性和安全性。
33.例如,仍以与上述用户服务对应的合约执行逻辑为可执行的函数为例,由于用户在调用该用户服务时,系统智能合约从与该用户服务的服务接口绑定的可执行的函数中分配的函数,对于用户而言是完全不确定的,用户也无法提前了解到这些信息。因此,这种调用方式,显然是具有一定的隐蔽性,可以充分确保这些合约执行逻辑被调用时的隐私安全。
34.请参见图1,图1是本说明书一示例性实施例示出的区块链服务网络的网络架构图。
35.如图1所示,在上述区块链服务网络的网络架构中,可以包括由若干成员区块链组成的区块链服务网络、待注册的目标区块链网络以及用于对区块链服务网络进行管理的中心化管控平台。
36.其中,上述中心化管控平台,具体可以是一个用于对上述区块链服务网络进行中心化管理的服务平台。承载该中心化管控平台的硬件设备,可以是服务器,也可以是基于若干台服务器构成的服务器集群,在本说明书中不进行特别限定。
37.上述中心化管控平台作为中心化的服务平台,可以对上述区块链服务网络进行成员管理。例如,可以负责区块链服务网络中的成员区块链的注册加入、退出网络,等等。
38.除此之外,上述中心化管控平台还可以用于实现各成员区块链之间的跨链访问;
39.例如,在实际应用中,上述中心化管控平台,通常可以通过向各成员区块链下发和部署系统智能合约,来实现针对各个成员区块链的管理功能。而对各成员区块链之间的跨链访问进行管理,也是中心化管控平台针对各成员区块链的一种常见的管理功能。因此,在这种情况下,上述中心化管控平台也可以向各成员区块链下发并部署用于实现跨链数据访问的系统智能合约,使得各成员区块链网络可以基于部署的上述系统智能合约,来实现与其它成员区块链之间的跨链数据访问。
40.当然,除了通过向各成员区块链下发和部署系统智能合约的方式,来实现针对各个成员区块链的管理功能的以外,中心化管控平台也可以搭载一个跨链服务组件,该跨链服务组件可以具体用于实现各成员区块链之间的跨链数据交互。加入区块链服务网络的各成员区块链,可以通过上述中心化管控平台上的跨链服务组件,来实现与其它成员区块链之间的跨链数据访问。
41.请继续参见图1,需要说明的是,在初始情况下,区块链服务网络中可以没有成员区块链,目标区块链通过中心化管理平台完成注册后才能加入到区块链服务网络中。
42.其中,图1中示出的第一成员区块链、第二成员区块链和第三成员区块链,是指已经加入上述区块链服务网络的成员区块链。图1中示出的待注册的目标区块链网络,是指暂未加入区块链服务网络的区块链网络,上述目标区块链网络可以通过与中心化管控平台进行注册交互,来申请作为成员区块链加入到上述目标区块链网络。
43.请参见图2,图2是本说明书根据一示例性实施例示出的一种区块链服务网络的组建方法的流程图,该方法可以应用于图1所示的中心化管控平台;所述方法包括:
44.步骤201:接收与目标区块链对应的注册请求;
45.上述目标区块链可以通过与区块链服务网络的中心化管控平台进行注册交互,向上述中心化管控平台发送注册请求的方式,来注册成为该区块链服务网络的成员区块链。
46.其中,上述注册请求具体可以是由具有上述目标区块链的注册权限的用户,通过在上述中心化管控平台上所注册的用户账户所发起的。
47.例如,在实际应用中,具有上述目标区块链的注册权限的用户,在上述中心化管控平台上注册的用户账户,具体可以包括上述中心化管控平台中的系统管理员账户、上述目标区块链的管理者在上述中心化管控平台上注册的管理员账户、目标区块链中的用户智能合约的部署方用户在上述中心化管控平台上注册的用户账户,等等。需要指出的是,发出注册请求的用户账户,具体是指在中心化管控平台中注册的中心化账户,而并不是在各成员区块链中注册的区块链账户。
48.其中,在上述注册请求中,可以包括与待注册的上述目标区块链相关的一些基础注册信息。上述基础注册信息具体可以包括,上述目标区块链的访问地址信息、以及上述目标区块链相关的区块链配置信息,等等。
49.当然,在实际应用中,在上述注册请求中,除了可以包括与待注册的上述目标区块链相关的一些基础注册信息以外,还可以包含其它形式的注册信息,在本说明书中不进行特别限定。其中,上述目标区块链的访问地址信息,具体用于与中心化管控平台之间建立网络连接;在实际应用中,上述访问地址信息具体可以包括上述目标区块链中的一个或者多个节点设备对应的域名信息或者ip地址信息,使得中心化管控平台可以基于上述域名信息或者ip地址信息,与上述目标区块链中的一个或者多个节点设备之间建立通信连接。
50.上述区块链配置信息,具体可以包括任意形式的能够用于表示上述目标区块链的基本配置的信息;例如,上述区块链配置信息,具体可以包括与上述目标区块链对应的区块链类型信息、上述目标区块链所采用的区块链协议的协议类型信息,以及上述目标区块链采用的共识算法的算法类型信息,等等。
51.步骤202:响应于所述注册请求,针对所述目标区块链进行注册处理,以将所述目标区块链作为成员区块链加入所述区块链服务网络;
52.中心化管控平台在接收到与目标区块链对应的注册请求时,可以响应该注册请求,对该注册请求进行合法性检查;例如,对该注册请求进行的合法性检查,具体可以包括检查该注册请求的发起者,是否具有相应的注册权限;以及,该注册请求中的数据格式是否满足预设的规则或格式要求,等等。
53.中心化管控平台在完成针对该注册请求的合法性检查后,如果该注册请求通过了合法性检查,中心化管控平台可以进一步基于该注册请求中携带的数据内容,对该目标区块链进行注册处理,以将该目标区块链作为成员区块链加入到该区块链服务网络。
54.其中,中心化管控平台对目标区块链进行的注册处理,具体可以包括在该目标区块链中创建与该中心化管控平台对应的区块链账户。
55.例如,在实现时,可以先在该目标区块链中为该中心化管控平台申请一个公私钥对,私钥由该中心化管控平台的管理用户持有,再基于公钥进行计算生成一个对应的账户
地址(比如该账户地址通常可以是公钥计算得到的一个hash值),然后在目标区块链中再创建一个与该账户地址对应的区块链账户。
56.需要说明的是,在采用账户模型的区块链中,区块链支持的账户类型通常包括外部账户和合约账户。外部账户就是由用户直接控制的账户,也称之为用户账户。而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。而以上描述的在该目标区块链中创建与该中心化管控平台对应的区块链账户,具体可以是一个外部账户。当在该目标区块链中为该中心化管控平台创建了对应的区块链账户之后,此时该中心化管控平台已取得该目标区块链中合法的用户身份,从而使得中心化管控平台可以基于该外部账户,来发起针对该目标区块链中部署的用户智能合约的合约调用。
57.中心化管控平台对目标区块链进行的注册处理,除了可以包括在该目标区块链中创建与该中心化管控平台对应的区块链账户之外,还可以包括与该目标区块链的注册过程相关的其它形式的注册处理过程。
58.例如,在示出的一种实施方式中,中心化管控平台对目标区块链进行的注册处理,具体还可以包括在目标区块链中部署至少一个系统智能合约;其中,上述至少一个系统智能合约具体可以是一个用于与其它成员区块链进行跨链通信的目标系统智能合约。
59.当然,除了该用于与其它成员区块链进行跨链通信的目标系统智能合约以外,还可以包括用于实现其它的基础管理功能的系统智能合约;例如,上述至少一个系统智能合约还可以包括用于对目标区块链进行服务管理的智能合约,用于对目标区块链网络进行网络治理的系统智能合约,以及用于对中心化管控平台上注册的用户服务或者服务解决方案相关的用户进行服务激励的智能合约等等,在本说明书中不再进行一一列举。
60.请参见图3,图3为本说明书示出的一种对目标区块链进行注册处理的流程图,包括如下的执行步骤:
61.步骤301,注册方向中心化平台发起与目标区块链对应的注册请求;
62.中心化管控平台在收到上述注册请求后,可以响应该注册请求,开始对上述目标区块链进行注册处理。其中,在本实施例中,对上述目标区块链进行的注册处理,可以包括以下的步骤302-步骤306示出的注册处理流程。
63.步骤302,保存目标区块链的区块链配置信息;
64.步骤303,基于目标区块链的访问地址信息与目标区块链中的至少部分节点设备建立通信连接;
65.如前所述,在上述注册请求中,可以包括与上述目标区块链相关的一些区块链配置信息;例如,上述区块链配置信息,可以包括上述目标区块链的访问地址信息,以及上述目标区块链相关的配置信息,等等。中心化管控平台在收到上述注册请求后,可以获取该注册请求中携带的上述区块链配置信息,然后基于获取到的区块链配置信息针对上述目标区块链执行后续的注册处理流程。
66.中心化管控平台在收到上述注册请求后,可以将从注册请求中读取到的与目标区块链相关的区块链配置信息,作为成员区块链的配置信息,在本地的数据库中进行存储。
67.例如,在实现时,中心化管控平台可以维护一个用于存储上述区块链服务网络中的各个成员区块链相关的区块链配置信息的信息库,中心化管控平台可以将从上述注册请求中读取到目标区块链相关的区块链配置信息,作为成员区块链的区块链配置信息存储至
该信息库中。
68.中心化管控平台在将与目标区块链相关的区块链配置信息,作为成员区块链的配置信息,在本地的数据库中进行存储之后,还可以进一步基于从注册请求中读取到的上述目标区块链的访问地址信息,与目标区块链中的至少部分节点设备建立通信连接。
69.例如,如前所述,上述访问地址信息具体可以包括上述目标区块链中的一个或者多个节点设备对应的域名信息或者ip地址信息,中心化管控平台可以基于上述域名信息或者ip地址信息,与上述目标区块链中的一个或者多个节点设备之间建立通信连接。其中,在实现时,中心化管控平台可以与上述目标区块链中的所有节点设备均建立通信连接,也可以仅与上述目标区块链中的部分关键的节点设备(比如存储完整的区块链账本的全节点)建立通信连接。
70.步骤304,基于所述通信连接从目标区块链中的节点设备处获取所述目标区块链相关的区块链数据。
71.中心化管控平台在与目标区块链中的至少部分节点设备建立了通信连接之后,可以继续基于该通信连接,从目标区块链中的节点设备处获取该目标区块链相关的区块链数据。
72.其中,从目标区块链中的节点设备处获取到的该目标区块链相关的区块链数据,具体可以包括与该目标区块链相关的任意形式的数据,在本说明书中不进行特别限定;
73.例如,在一个例子中,从目标区块链中的节点设备处获取到的该目标区块链相关的区块链数据,具体可以包括该目标区块链完整的区块链账本、与该目标区块链的区块链账本对应的认证根数据、以及该目标区块链中的各个节点设备的公钥数据,等等。
74.其中,需要说明的是,在区块链领域,与区块链账本对应的认证根数据,通常可以包括区块链账本中的创世块数据、各个区块的区块头数据等,可以用于对该区块链账本中存储的数据进行认证的数据。
75.在从目标区块链中的节点设备处获取到该目标区块链相关的区块链数据之后,中心化管控平台可以在数据库中存储获取到的区块链数据。
76.例如,如前所述,中心化管控平台可以维护一个用于存储上述区块链服务网络中的各个成员区块链相关的区块链配置信息的信息库,中心化管控平台可以将从上述注册请求中读取到目标区块链相关的区块链配置信息,作为成员区块链的区块链配置信息存储至该信息库中。而中心化管控平台在从目标区块链中的节点设备处获取到该目标区块链相关的区块链数据之后,也可以将获取到的区块链数据,在上述信息库中与上述目标区块链相关的区块链配置信息进行关联存储。
77.步骤305,在所述目标区块链上创建与所述中心化管控平台对应的区块链账户。
78.中心化管控平台基于上述通信连接从目标区块链中的节点设备处获取所述目标区块链相关的区块链数据之后,还可以继续在上述目标区块链上,为中心化管控平台创建一个对应的区块链账户。其中,创建上述区块链账户的具体过程不再赘述。
79.当在上述目标区块链上为中心化管控平台创建了对应的区块链账户之后,此时该中心化管控平台已取得该目标区块链中合法的用户身份,并已经具有调用上述目标区块链上部署的用户智能合约的能力,后续中心化管控平台可以基于该区块链账户来发起针对该目标区块链上部署的用户智能合约的合约调用。
80.其中,在上述中心化管控平台上,具体可以维护一个区块链账户列表。该区块链账户列表中具体可以包含在各个成员区块链上创建的上述中心化管控平台对应的区块链账户。当在上述目标区块链上为中心化管控平台创建了对应的区块链账户之后,可以将该区块链账户添加至上述区块链账户列表中进行维护。
81.需要说明的是,在各个成员区块链上创建的上述中心化管控平台对应的区块链账户具体可以相同,也可以不相同。例如,在一个例子中,为了便于进行账户管理,在各个成员区块链上创建的上述中心化管控平台对应的区块链账户,默认可以采用同一个预设的区块链账户。比如,在实现时,各个成员区块链均可以将某一个固定的区块链账户提前进行预留,作为与中心化管控平台对应的区块链账户。
82.步骤306,在目标区块链中部署至少一个系统智能合约。
83.当在上述目标区块链上,为中心化管控平台创建一个对应的区块链账户之后,中心化管控平台还可以继续在该目标区块链中部署至少一个系统智能合约。上述至少一个系统智能合约具体可以包括用于与其它成员区块链进行跨链通信的目标系统智能合约。
84.其中,上述至少一个系统智能合约除了可以包括用于与其它成员区块链进行跨链通信的目标系统智能合约之外,还可以包括用于对目标区块链进行服务管理的智能合约,用于对目标区块链网络进行网络治理的系统智能合约、用于对在中心化管控平台上注册的用户服务相关的用户进行服务激励的系统智能合约,等等,在本说明书中不进行特别限定。
85.当然,在实际应用中,具体也可以将以上提到的用于与其它成员区块链进行跨链通信的目标系统智能合约,用于对目标区块链进行服务管理的智能合约,用于对目标区块链网络进行网络治理的系统智能合约、用于对在中心化管控平台上注册的用户服务相关的用户进行服务激励的系统智能合约等,整合成一个系统智能合约。
86.例如,在实际应用中,可以将用于与其它成员区块链进行跨链通信的跨链调用逻辑,用于对目标区块链进行服务管理的服务管理逻辑,用于对目标区块链网络进行网络治理的网络治理逻辑,用于对在中心化管控平台上注册的用户服务相关的用户进行服务激励的服务激励逻辑,包含在同一个系统智能合约中。
87.需要说明的是,上述系统智能合约与上述目标区块链上部署的用户智能合约,是两类完全不同的智能合约。
88.上述系统智能合约包含的合约执行逻辑,通常是与中心化管控平台上的一些管理功能相关执行逻辑。
89.例如,如前所述的进行网络治理的系统智能合约所包含的合约执行逻辑,可以是与中心化管控平台对上述区块链服务网络进行网络治理的功能相关的执行逻辑;相应的,如前所述的用于对在中心化管控平台上注册的用户服务相关的用户进行服务激励的系统智能合约所包含的合约执行逻辑,可以是与中心化管控平台对注册的用户服务相关的用户进行服务激励的功能相关的执行逻辑。而上述用户智能合约包含的合约执行逻辑,通常与用户在成员区块链上定义的用户服务逻辑相关。
90.通过在上述目标区块链上部署至少一个系统智能合约,使得上述目标区块链上的用户,也可以通过调用上述目标区块链上部署的系统智能合约的方式,在上述目标区块链上来完成一些与上述中心化管控平台上的管理功能相关的操作。
91.步骤307,向所述注册方返回与所述目标区块链对应的成功注册消息。
92.当中心化管控平台针对上述目标区块链执行了如步骤302-步骤306示出的各项注册处理流程后,此时上述目标区块链将作为成员区块链,成功的加入到上述区块链服务网络。
93.在这种情况下,上述中心化管控平台向上述注册方返回与上述目标区块链对应的成功注册消息,以通知上述注册方该目标区块链已经作为成员区块链,成功的加入到了上述区块链服务网络。
94.其中,需要说明的是,以上实施例中步骤302-步骤306示出的各项注册处理流程的先后顺序仅为示意性的,在本说明书中不进行特别的限定。可以理解的是,在实际应用中,以上实施例中步骤302-步骤306示出的各项注册处理流程的先后顺序,可以基于实际的注册需求进行灵活的调整和互换。
95.在本说明书中,在上述区块链服务网络中的各成员区块链上,均可以部署若干用户智能合约。其中,这些用户智能合约中的合约代码对应的合约执行逻辑,通常可以包括分别对应不同的基础服务能力的多个合约执行逻辑。
96.例如,在实际应用中,智能合约中包含的合约执行逻辑,通常可以是函数的形式,一个智能合约中则可以包含分别对应不同的服务功能的多个函数。
97.而上述中心化管控平台,还可以支持对上述区块链服务网络中的至少部分成员区块链上部署的用户智能合约所包含的合约执行逻辑进行服务化的功能。相应的,服务提供方可以通过上述中心化管控平台支持的上述功能,针对至少部分成员区块链上部署的用户智能合约所包含的合约执行逻辑进行服务化,然后将其以用户服务的形式开放给服务使用方,供服务使用方进行调用。
98.需要说明的是,在对区块链服务网络中的至少部分成员区块链上的用户智能合约所包含的合约执行逻辑进行服务化时,具体可以针对某一用户智能合约所包含的某一特定的合约执行逻辑进行服务化,也可以针对多个合约执行逻辑进行组合后整体进行服务化。
99.也即,通过服务化产生的用户服务,具体可以是指部署在区块链服务网络中的各成员区块链上的某一用户智能合约所包含的某一特定的合约执行逻辑构成的服务,也可以是指部署在区块链服务网络中的至少部分成员区块链上的用户智能合约所包含的多个合约执行逻辑进行组合后生成的服务。
100.例如,在一个例子中,假设某一用户在某一成员区块链上部署了一个用户智能合约,该用户智能合约包含多个合约执行逻辑,在这种情况下,该用户可以选择针对该用户智能合约包含的某一特定的合约执行逻辑进行服务化,在上述中心化管控平台上注册一个与该合约执行逻辑绑定的用户服务,开放给其他用户,供其他用户进行调用。
101.在另一个例子中,假设某一用户在各成员区块链上部署了多个用户智能合约,或者该用户具有其他用户在各成员区块链上部署的多个用户智能合约的访问权限,在这种情况下,该用户可以选择将上述多个用户智能合约中包含的多个合约执行逻辑组合成用户服务,并在上述中心化管控平台上注册一个与上述多个合约执行逻辑绑定的用户服务,开放给其他用户,供其他用户进行调用。
102.其中,在将上述多个合约执行逻辑进行组合之后进行服务化时,具体可以将分布在多个不同的成员区块链上的用户智能合约所包含的合约执行逻辑,组合生成一个用户服务之后进行服务化,也可以将同一个成员区块链中的多个用户智能合约所包含的合约执行
逻辑;或者,将同一个成员区块链中的同一个用户智能合约所包含的多个合约执行逻辑组合生成一个服务之后进行服务化,在本说明书中不进行特别限定。
103.需要说明的是,在将多个合约执行逻辑进行组合时,还可以将该多个合约执行逻辑,按照一定的逻辑顺序,进行组合。而上述逻辑顺序,通常取决于服务使用方具体的服务需求,在实际应用中,可以基于实际的服务需求来灵活的确定。
104.在本说明书中,在对合约执行逻辑进行服务化时,仍然可以采用在上述中心化管控平台上注册用户服务,并将注册的用户服务与需要进行服务化的合约执行逻辑进行绑定的方式来完成。
105.也即,服务提供方具体可以通过向中心化管控平台发起服务注册,为需要进行服务化的合约执行逻辑注册对应的用户服务,再将该用户服务与上述合约执行逻辑进行绑定,以完成针对该合约执行逻辑的服务化。
106.需要说明的是,服务提供方向中心化管控平台发起服务注册的具体过程,在本说明书中不再进行详述,本领域技术人员可以参考相关技术中的记载。
107.其中,为了避免将需要服务化的合约执行逻辑相关的信息暴露给服务使用方,在将注册的该用户服务与合约执行逻辑进行绑定时,可以不再采用将该用户服务直接与该合约执行逻辑进行绑定的方式,而是可以在中心化管控平台上为注册的该用户服务设置服务接口,将该用户服务的服务接口与合约执行逻辑进行绑定。
108.其中,需要说明的是,上述服务接口,具体可以是一个能够唯一标识该用户服务的服务标识。为上述用户服务设置的服务接口的数量,可以是一个也可以是多个,在本说明书中不进行特别限定。
109.在示出的一种实施方式中,以上述用户服务是由多个合约执行逻辑进行组合后生成的服务为例,在这种情况下,在为该用户服务设置服务接口时,具体可以将该用户服务拆分为分别对应不同服务功能的多个子服务,并为各个每个子服务分别设置对应的服务接口,然后再为每个服务接口绑定相应的合约执行逻辑。
110.其中,为了提升各个子服务的服务稳定性,在为各个子服务的服务接口绑定合约执行逻辑时,具体还可以为这些服务接口中的至少部分服务接口绑定具有相同的服务功能的多个合约执行逻辑。而服务使用方在调用该子服务时,具体可以基于一定的调度策略,从该子服务绑定的多个合约执行逻辑中,为服务使用方分配一个目标合约执行逻辑,面向该服务调用方提供服务。
111.例如,请参见图4,图4为本说明书示出的一种为用户服务设置服务接口,并为服务接口绑定合约执行逻辑的示意图。
112.如图4所示,图4示出的需要进行服务化的为合约实例1-7,这些合约实例分别隶属于成员区块链a、b和c上部署的用户智能合约。其中,合约实例是指用户智能合约中包含的合约执行逻辑;比如,可以是用户智能合约中包含的可执行的函数。
113.其中,图4示出的服务a,可以按照服务功能拆分为子服务1和子服务2。为子服务1设置的服务接口为a1,该服务接口a1绑定了两个具有相同的服务功能的合约实例1和2。为子服务2设置的服务接口为a2,该服务接口a2只绑定了一个合约实例3。
114.图4示出的服务b,可以按照服务功能拆分为子服务3、子服4和子服务5。为子服务3设置的服务接口为b1,该服务接口b1只绑定了一个合约实例1。为子服务4设置的服务接口
为b2,该服务接口b2绑定了两个具有相同的服务功能的合约实例4和5。为子服务5设置的服务接口为b3,该服务接口b3绑定了两个具有相同的服务功能的合约实例3和6。
115.图4示出的服务c,可以不进行子服务的拆分,为该服务c设置的服务接口为c1,该服务接口c1只绑定了一个合约实例7。
116.如图4可知,在实际应用中,对于由多个合约执行逻辑组合生成的用户服务,具体可以为该用户服务,设置多个服务接口,并为至少部分服务接口绑定具有相同功能的多个合约执行逻辑。
117.在本说明书中,当服务提供方在上述中心化管控平台上注册一个用户服务,并为该用户服务绑定了需要服务化的合约执行逻辑之后,中心化管控平台可以将该目标用户服务作为标准化的服务进行服务部署,以开放给服务使用方进行调用。
118.需要说明的是,上述中心化管控平台在部署注册完成的上述用户服务时,具体可以采用分布式部署的方式。
119.其中,所谓分布式的部署,具体是指将上述用户服务以系统智能合约的形式,分布式部署在各成员区块链上,以供服务使用方调用。
120.一方面,由于组成上述用户服务的合约调用逻辑,可能包括分布于多个成员区块链上部署的多个用户智能合约所包含的合约执行逻辑,则服务使用方在调用上述用户服务时,可能也需要跨链调用分布在多个成员区块链上的多个用户智能合约;因此,上述中心化管控平台在部署上述用户服务时,具体可以为该用户服务开发对应的跨链调用逻辑,然后将该跨链调用逻辑作为系统智能合约中的合约执行逻辑,部署在各成员区块链上。
121.例如,如前所述,上述系统智能合约包含的合约执行逻辑,通常是与中心化管控平台上的一些管理功能相关执行逻辑。因此,通过这种方式,相当于是将为该用户服务开发的跨链调用逻辑,也作为中心化管控平台上的一些管理功能相关执行逻辑的一部分,以系统智能合约的形式,部署在各成员区块链上。
122.除之之外,在对该用户服务进行服务部署时,还可以将该用户服务的服务接口与合约执行逻辑的绑定关系,作为该用户服务的服务配置信息,也存储至上述系统智能合约,由上述系统智能合约来进行维护。
123.另一方面,为了方便将服务提供方注册的用户服务,开放给服务使用方进行服务调用,上述中心化管控平台在部署上述用户服务时,还可以为该用户服务开发对应的服务注册逻辑;然后将该服务注册逻辑作为系统智能合约中的合约执行逻辑,部署在各成员区块链上。通过这种方式,相当于是将为该用户服务开发的使用注册逻辑,也作为中心化管控平台上的一些管理功能相关执行逻辑的一部分,以系统智能合约的形式,部署在各成员区块链上。
124.请参见图5,图5是本说明书根据一示例性实施例示出的一种服务的使用注册方法的流程图,该方法应用于图1所示的任一目标成员区块链中的节点设备;其中,上述区块链网络中的各成员区块链上,分别部署了上述系统智能合约;上述系统智能合约包含与上述用户服务对应的服务注册逻辑;所述方法包括:
125.步骤502:获取服务使用方针对所述用户服务的使用注册数据;其中,所述用户服务的服务接口绑定了部署在其它成员区块链上的用户智能合约所包含的合约执行逻辑;
126.当服务提供方在上述中心化管控平台上注册的用户服务,以系统智能合约的形式
分布式的部署在上述区块链服务网络中的各成员区块链之后,服务使用方可以通过向其接入的目标成员区块链中的节点设备,提交针对该用户服务的使用注册数据,来发起针对上述系统智能合约的合约调用,来取得该用户服务的服务调用权限。
127.其中,需要说明的是,上述服务使用方,具体可以是一个在该目标成员区块链上注册了用户账户的用户,也可以是该目标成员区块链上部署的一个用户智能合约,在本说明书中不进行特别限定。
128.在示出的一种实施方式中,如果上述服务使用方是一个在该目标成员区块链上注册了用户账户的用户,此时上述调用数据具体可以是该用户通过接入该目标成员区块链的用户客户端,打包的一笔针对上述系统智能合约的智能合约调用交易。
129.该用户客户端可以将打包完成的该智能合约调用交易,作为上述调用数据提交给该目标成员区块链中的节点设备,发起针对上述系统智能合约包含的上述跨链调用逻辑的合约调用,以触发该目标成员区块链中的节点设备分布式的执行该系统智能合约中包含的上述跨链调用逻辑,来取得该用户服务的服务调用权限。
130.当然,在实际应用中,该用户也可以通过上述用户客户端将针对上述系统智能合约的智能合约的调用数据,提交至与上述目标成员区块链对应的baas平台,再由该baas平台将上述调用数据打包成针对上述系统智能合约的合约调用交易,提交给该目标成员区块链中的节点设备。
131.在示出的另一种实施方式中,如果上述服务使用方是该目标成员区块链上部署的一个用户智能合约,则该用户智能合约可以包含一个引用了上述用户服务的服务接口的合约执行逻辑。
132.在合约执行逻辑中引用该用户服务的服务接口,通常是指在该合约执行逻辑对应的合约代码中,引用上述用户服务的服务接口,使得用户在调用该合约代码时,该合约代码在执行的过程中,可以进一步的基于引用的服务接口,发起针对该服务接口对应的用户服务的服务调用。当用户在发起针对该用户智能合约包含的该合约执行逻辑的合约调用时,该用户智能合约可以基于该合约执行逻辑引用的服务接口,进一步发起针对该合约执行逻辑引用的服务接口对应的用户服务的服务调用。
133.其中,由于上述用户服务是以系统智能合约的形式进行了分布式的部署,因此该用户智能合约发起的针对所引用的上述用户服务的服务调用的过程,实际上是该用户智能合约发起的与上述系统智能合约之间的相互调用过程。
134.而智能合约之间的相互调用,通常采用的是消息调用的机制。因此,在实际应用中,上述调用数据具体可以是用户在调用该用户智能合约所包含的引用了上述用户服务的合约执行逻辑时,由该用户智能合约基于智能合约之间的消息调用机制,生成的一个针对上述系统智能合约的调用消息。
135.在这种情况下,当用户在发起针对该用户智能合约包含的该合约执行逻辑的合约调用时,该用户智能合约具体可以基于智能合约之间的消息调用机制,生成一个针对上述系统智能合约的调用消息。
136.然后,再将该调用消息作为针对上述用户服务的调用数据,提交给上述系统智能合约,发起针对上述系统智能合约的合约调用,以触发区块链中的节点设备分布式的执行该系统智能合约中包含的上述使用注册逻辑,来取得上述用户服务的服务调用权限。
137.其中,关于智能合约之间采用消息调用的机制来进行相互调用的过程,在本说明书中不再进行详述,本领域技术人员在将本说明书记载的技术方案付诸实现时,可以参考相关技术中的记载。
138.需要说明的是,上述调用消息,具体可以是适宜在智能合约之间进行传递的任意形式的数据,在本说明书中不进行特别限定。
139.例如,在一个例子中,上述调用消息具体可以是基于智能合约采用的开发语言定义的,适宜在智能合约之间进行传递的可执行指令。比如,以智能合约中的合约代码采用高级开发语言solidity为例,上述调用消息具体可以是一条针对上述系统智能合约的call指令。
140.步骤504:响应于所述使用注册数据,调用所述系统智能合约包含的所述服务注册逻辑,从与所述服务接口绑定的合约执行逻辑中,为所述服务使用方确定目标合约执行逻辑,并将所述目标合约执行逻辑相关的服务调用权限授权给所述服务使用方;
141.在本说明书中,在上述使用注册数据中,具体可以携带上述用户服务对应的服务接口。
142.其中,需要说明的是,如果上述用户服务是由多个合约执行逻辑进行组合后生成的服务,该用户服务可能会包括多个服务接口,每一个服务接口都对应该用户服务中的一种子服务。
143.在这种情况下,服务使用方可以选择对该用户服务中的某一项或者多项子服务进行使用注册。相应的,在上述使用注册数据中,也可以携带服务使用方从该多个服务接口中选择出的需要进行使用注册的某一个或者多个服务接口。
144.上述目标成员区块链中的节点设备在获取到上述服务使用方提交的上述使用注册数据之后,可以响应该使用注册数据,进一步调用上述系统智能合约包含的上述服务注册逻辑,获取上述使用注册数据中携带的服务接口,并从与该服务接口绑定的合约执行逻辑中,为该服务使用方确定目标合约执行逻辑。
145.在示出的一种实施方式中,由于该用户服务可能会包括多个服务接口,并且每一个服务接口还可能会绑定多个合约执行逻辑,因此上述目标成员区块链中的节点设备在调用上述系统智能合约包含的上述使用注册逻辑,获取到上述调用数据中携带的服务接口之后,可以先确定该服务接口是否绑定了多个合约执行逻辑;
146.例如,在一个例子中,服务提供方通过中心化管控平台注册了用户服务之后,中心化管控平台可以将为该用户服务分配的服务接口,与需要进行服务化的合约执行逻辑之间的绑定关系,也维护到上述系统智能合约中,从而上述系统智能合约可以通过查询维护的上述绑定关系,来明确上述使用注册数据中携带的服务接口,是否绑定了多个合约执行逻辑。
147.,如果确定该服务接口绑定了多个合约执行逻辑,此时上述系统智能合约可以基于预设的调度策略,从该服务接口绑定的多个合约执行逻辑中,为上述服务使用方动态分配一个面向该服务使用方提供服务的目标合约执行逻辑。
148.通过这种方式,由于服务使用方在通过调用系统智能合约包含的服务注册逻辑,来请求取得该用户服务的服务调用权限时,最终请求到服务调用权限的合约执行逻辑,是由系统智能合约从与该服务接口绑定的合约执行逻辑中动态确定出的;因此,通过这种方
式,可以提升用户在对上述用户服务进行使用注册时的灵活性。
149.而且,对于服务使用方来说,并不能提前感知到自身请求到服务权限的合约执行逻辑所在的智能合约,以及该智能合约所在的成员区块链;因此,这种服务使用注册的方式,将具有较高的隐私性和安全性。
150.其中,需要说明的是,上述预设的调度策略,具体可以任意形式的用于从该服务接口绑定的多个合约执行逻辑中,为服务使用方动态分配合约执行逻辑的策略,在本说明书中不进行特别限定。在实际应用中,可以基于具体的调度需求,来灵活的设置具体的调度策略。
151.在示出的一种实施方式中,上述调度策略包括以下示出的任一或者多个的组合:
152.调度策略一:
153.从与上述服务接口绑定的多个合约执行逻辑中,为服务使用方随机分配合约执行逻辑的调度策略。
154.基于这种策略,具体可以从与上述服务接口绑定的多个合约执行逻辑中,为服务使用方随机分配合约执行逻辑,来面向该服务使用方提供服务。
155.通过这种方式,使得服务使用方,无法提前感知到为自身提供服务的合约调用逻辑,从而可以最大程度的确保在调用用户服务时的隐私性。
156.调度策略二:
157.将与上述服务接口绑定的多个合约执行逻辑中,预先指定的合约执行逻辑,分配给上述服务使用方的调度策略。
158.基于这种策略,使得服务提供方可以灵活的从与上述服务接口绑定的多个合约执行逻辑中,为服务使用方指定面向该服务使用方提供服务的合约执行逻辑,从而可以提升上述用户服务的服务灵活性。
159.例如,在实际应用中,针对一些具体的服务使用方,可以从上述多个合约执行逻辑中指定一个固定的合约执行逻辑,为该服务使用方提供服务。
160.调度策略三:
161.将与上述服务接口绑定的多个合约执行逻辑中,服务指标符合预设条件的合约执行逻辑,分配给上述服务使用方的调度策略。
162.基于这种策略,上述中心化管控平台可以实时的统计与上述服务接口绑定的各个合约执行逻辑的服务指标,并将该服务指标存储至上述系统智能合约,由上述系统智能合约进行维护,使得上述系统智能合约可以基于维护的该服务指标,来筛选出该服务指标符合预设条件的合约执行逻辑,分配给服务使用方,从而可以实现针对与上述服务接口绑定的各个合约执行逻辑的精细化管理。
163.例如,可以基于与上述服务接口绑定的各个合约执行逻辑的服务指标,为服务使用方筛选出一个最适合该服务使用方的合约执行逻辑,面向该服务使用方提供服务。
164.其中,上述服务指标,具体可以包括能够表征与上述服务接口绑定的合约执行逻辑的使用状况的任意形式的指标,在本说明书中不进行特别限定。相应的,上述预设条件,通常取决于上述服务指标的具体类型,在实际应用中,可以基于具体的服务需求,来灵活的设置。
165.例如,在一个例子中,上述服务指标具体可以包括由上述合约执行逻辑提供服务
的服务使用方的数量。相应的,上述预设条件可以包括与上述服务接口绑定的多个合约执行逻辑中,上述数量最小的合约执行逻辑。
166.在这种情况下,上述系统智能合约在基于以上描述的调度策略三,从上述服务接口绑定的多个合约执行逻辑中,为上述服务使用方动态分配面向该服务使用方提供服务的合约执行逻辑时,具体可以分别统计由上述多个合约执行逻辑提供服务的服务使用方的数量,然后将该数量最小的合约执行逻辑,作为上述目标合约执行逻辑分配给上述服务使用方。
167.由于由各个合约执行逻辑提供服务的服务使用方的数量,通常可以理解为各个合约执行逻辑在面向服务使用方提供服务时的服务负载,因此通过这种方式,可以实现上述多个合约执行逻辑的负载均衡。
168.当然,上述服务指标除了可以包括由上述合约执行逻辑提供服务的服务使用方的数量以外,在实际应用中,还可以包括上述合约执行逻辑面向各个服务提供方提供服务的总时长、提供服务时的调用成功次数、调用成功率、调用失败的次数等服务指标,在本说明书中不再进行一一列举。
169.除此之外,上述预设条件除了可以包括与上述服务接口绑定的多个合约执行逻辑中,上述数量最小的合约执行逻辑这种条件以外,在实际应用中,还可以包括其他形式的条件,在本说明书中也不再进行一一列举;例如,在一个例子中,上述预设条件还可以包括上述数量低于阈值的合约执行逻辑。
170.在示出的一种实施方式中,在为上述服务使用方分配面了向上述服务使用方提供服务的合约执行逻辑之后,还可以生成上述服务使用方针对上述用户服务的服务注册信息,并将所述服务注册信息在该系统智能合约中进行存储,以由该系统智能合约对存储的该服务注册信息进行维护。
171.其中,在上述服务注册信息中,具体可以包括系统智能合约基于上述的调度策略,从与上述服务接口绑定的多个合约执行逻辑中,为服务使用方分配的面向该服务使用方提供服务的目标合约执行逻辑相关的信息;例如,可以是该目标合约执行逻辑对应的标识信息(比如函数名等)。
172.在本说明书中,当调用上述系统智能合约包含的上述服务注册逻辑,从与该服务接口绑定的合约执行逻辑中,为该服务使用方确定出了面向该服务使用方提供服务的目标合约执行逻辑之后,还可以进一步将该目标合约执行逻辑相关的调用权限授权给该服务使用方。
173.在示出的一种实施方式中,具体可以将上述用户服务的调用权限,和与该用户服务的服务接口绑定的合约执行逻辑的调用权限,作为两种独立的权限,分别进行授权。
174.在这种情况下,将该目标合约执行逻辑相关的调用权限授权给该服务使用方时,具体可以先将该用户服务的服务调用权限授权给所述目标用户智能合约;以及,在将上述目标合约执行逻辑的服务调用权限授权给该服务使用方。
175.通过这种方式,可以实现针对上述用户服务的精细化管理。例如,在将上述用户服务的服务调用权限授权给上述服务使用方之后,可以针对从与该用户服务绑定的多个合约执行逻辑中为该服务使用方分配的目标合约执行逻辑,再单独授权一次,从而从根本上避免了上述用户服务的服务调用权限,和与该用户服务绑定的合约执行逻辑的调用权限之间
的相互影响。
176.在示出的一种实施方式中,如果上述服务使用方为上述目标成员区块链上部署的用户智能合约,此时在将上述目标合约执行逻辑的服务调用权限授权给该服务使用方时,具体可以采用双向的权限授权方式,除了可以将该目标合约执行逻辑的服务调用权限授权给该用户智能合约以外,还可以将该用户智能合约的调用权限,也相应的授权给上述目标合约执行逻辑。
177.通过这种方式,一方面,由于该用户智能合约中包含的合约执行逻辑,也可能与另一个用户服务的服务接口绑定;因此,通过采用这种双向的权限授权的方式,可以将该另一个用户服务相关的调用权限,也同步的授权给该目标合约执行逻辑,从而可以避免后续该目标合约执行逻辑具有上述另一个用户服务的调用需求时,再通过以上描述的授权方式,来重复的进行授权。
178.另一方面,由于采用这种双向的权限授权的方式,可以让上述目标合约执行逻辑同步的取得上述该用户智能合约中包含的合约执行逻辑的调用权限;因此,对于该目标合约执行逻辑来说,可以通过回调该作为服务调用方的用户智能合约,及时的将作为服务使用方的该用户智能合约针对上述用户服务的服务调用结果,返回给该作为服务调用方的用户智能合约,而不再需要采用异步返回服务调用结果的方式,从而可以提升针对上述用户服务进行服务调用时的服务调用效率。
179.请参见图6,图6是本说明书根据一示例性实施例示出的一种智能合约的跨链调用方法的流程图,该方法应用于图1所示的任一目标成员区块链中的节点设备;其中,所述区块链网络中的各成员区块链上,分别部署了上述系统智能合约;上述系统智能合约包含与所述用户服务对应的跨链调用逻辑;所述方法包括:
180.步骤602:获取服务使用方针对所述用户服务的调用数据;其中,所述用户服务的服务接口绑定了部署在其它成员区块链上的用户智能合约所包含的合约执行逻辑;
181.当服务提供方在上述中心化管控平台上注册的用户服务,以系统智能合约的形式分布式的部署在上述区块链服务网络中的各成员区块链,并且上述服务使用方完成了针对该用户服务的使用注册之后,该服务使用方可以通过向其接入的目标成员区块链中的节点设备,提交针对该用户服务的调用数据,来发起针对上述系统智能合约的合约调用,以完成该用户服务的服务调用。
182.在示出的一种实施方式中,如果上述服务使用方是一个在该目标成员区块链上注册了用户账户的用户,此时上述调用数据具体可以是该用户通过接入该目标成员区块链的用户客户端打包的一笔针对上述系统智能合约的智能合约调用交易。该用户客户端可以将打包完成的该智能合约调用交易提交给该目标成员区块链中的节点设备,发起针对上述系统智能合约的合约调用,以触发该目标成员区块链中的节点设备分布式的执行该系统智能合约中包含的上述跨链调用逻辑,来完成针对上述用户服务的服务调用。
183.当然,在实际应用中,该用户也可以通过上述用户客户端将针对上述系统智能合约的智能合约的调用数据提交至与上述目标成员区块链对应的baas平台,再由该baas平台将上述调用数据打包成针对上述系统智能合约的合约调用交易,提交给该目标成员区块链中的节点设备。
184.在示出的另一种实施方式中,如果上述服务使用方是该目标成员区块链上部署的
一个用户智能合约,则该用户智能合约可以包含一个引用了上述用户服务的服务接口的合约执行逻辑。当用户在发起针对该用户智能合约包含的该合约执行逻辑的合约调用时,该用户智能合约具体可以基于智能合约之间的消息调用机制,生成一个针对上述系统智能合约的调用消息。然后,再将该调用消息作为针对上述用户服务的调用数据,提交给上述系统智能合约,发起针对上述系统智能合约的合约调用,以触发区块链中的节点设备分布式的执行该系统智能合约中包含的上述跨链调用逻辑,来完成针对上述用户服务的服务调用。
185.例如,在一个例子中,上述调用消息具体可以是基于智能合约采用的开发语言定义的,适宜在智能合约之间进行传递的可执行指令。比如,以智能合约中的合约代码采用高级开发语言solidity为例,上述调用消息具体可以是一条针对上述系统智能合约的call指令。
186.步骤604,响应于所述调用数据,调用所述系统智能合约包含的所述跨链调用逻辑,从与所述服务接口绑定的合约执行逻辑中,为所述服务使用方确定目标合约执行逻辑,并发起针对所述其它成员区块链上部署的包含所述目标合约执行逻辑的用户智能合约的跨链调用。
187.在本说明书中,在上述调用数据中,具体可以携带上述用户服务对应的服务接口。
188.其中,需要说明的是,如果上述用户服务是由多个合约执行逻辑进行组合后生成的服务,该用户服务可能会包括多个服务接口,每一个服务接口都对应该用户服务中的一种子服务。
189.在这种情况下,服务使用方可以选择对该用户服务中的某一项或者多项子服务进行服务调用。相应的,在上述调用数据中,也可以携带服务使用方从该多个服务接口中选择出的需要调用的某一个或者多个服务接口。
190.上述目标成员区块链中的节点设备在获取到上述服务使用方提交的上述调用数据之后,可以响应该调用数据,进一步调用上述系统智能合约包含的上述跨链调用逻辑,获取上述调用数据中携带的服务接口,并从与该服务接口绑定的合约执行逻辑中,为该服务使用方确定目标合约执行逻辑。
191.在示出的一种实施方式中,由于该用户服务可能会包括多个服务接口,并且每一个服务接口还可能会绑定多个合约执行逻辑,因此上述目标成员区块链中的节点设备在调用上述系统智能合约包含的上述跨链调用逻辑,获取到上述调用数据中携带的服务接口之后,可以先确定该服务接口是否绑定了多个合约执行逻辑;
192.例如,在一个例子中,服务提供方通过中心化管控平台注册了用户服务之后,中心化管控平台可以将为该用户服务分配的服务接口,与需要进行服务化的合约执行逻辑之间的绑定关系,也维护到上述系统智能合约中,从而上述系统智能合约可以通过查询维护的上述绑定关系,来明确上述调用数据中携带的服务接口,是否绑定了多个合约执行逻辑。
193.,如果确定该服务接口绑定了多个合约执行逻辑,此时上述系统智能合约可以基于预设的调度策略,从该服务接口绑定的多个合约执行逻辑中,为上述服务使用方动态分配一个面向该服务使用方提供服务的目标合约执行逻辑。
194.通过这种方式,由于服务使用方在通过系统智能合约跨链调用与该用户服务的服务接口绑定的合约执行逻辑时,最终调用的=合约执行逻辑,是由系统智能合约从与该服务接口绑定的合约执行逻辑中动态确定出的;因此,通过这种方式,可以提升上述用户服务
在被调用时的灵活性。
195.而且,对于服务使用方来说,并不能提前感知到被调用的该合约执行逻辑所在的智能合约,以及该智能合约所在的成员区块链;因此,这种跨链调用合约的方式,将具有较高的隐私性和安全性。
196.其中,需要说明的是,上述预设的调度策略,具体可以任意形式的用于从该服务接口绑定的多个合约执行逻辑中,为服务使用方动态分配合约执行逻辑的策略,在本说明书中不进行特别限定。在实际应用中,可以基于具体的调度需求,来灵活的设置具体的调度策略。例如,在本实施例中,上述调度策略,仍然可以包括图5所示的实施例中描述的上述调度策略一、调度策略二、调度策略三中任一或者多个的组合,在本实施例中不再进行赘述。
197.在示出的一种实施方式中,如前所述,由于上述系统智能合约预先可以维护该服务使用方针对上述用户服务的服务注册信息,并且该服务注册信息可以包括系统智能合约在服务使用方对该用户服务进行使用注册的阶段,基于上述预设的调度策略,从与该用户服务对应的服务接口绑定的多个合约执行逻辑中,为该服务使用方分配的面向所述服务使用方提供服务的目标合约执行逻辑相关的信息;因此,在这种情况下,上述系统智能合约在从与上述服务接口绑定的合约执行逻辑中,为该服务使用方确定目标合约执行逻辑时,具体可以不再进行实时分配,而是直接获取上述服务注册信息中包括的目标合约执行逻辑相关的信息,然后直接件该目标合约执行逻辑分配给该服务使用方。
198.通过这种方式,可以在服务使用方调用该用户服务时,优先将该服务使用方在使用注册阶段,为该服务使用方分配的目标合约执行逻辑,分配给该服务使用方,从而可以避免在服务使用方调用该用户服务时重复的为该服务使用方分配合约执行逻辑。
199.在本说明书中,当调用上述系统智能合约包含的上述跨链调用逻辑,从与该服务接口绑定的合约执行逻辑中,为该服务使用方确定出了面向该服务使用方提供服务的目标合约执行逻辑之后,还可以进一步发起针对其它成员区块链上部署的包含该目标合约执行逻辑的用户智能合约的跨链调用。
200.在示出的一种实施方式中,如前所述,由于上述服务使用方在针对上述用户服务进行服务使用注册阶段,上述用户服务的调用权限,和与该用户服务的服务接口绑定的合约执行逻辑的调用权限,可以作为两种独立的权限,分别授权给该服务使用方,因此在这种情况下,在调用该系统智能合约包含的所述跨链调用逻辑,从与该服务接口绑定的合约执行逻辑中,为该服务使用方确定目标合约执行逻辑之前,还可以先调用该系统智能合约包含的权限验证逻辑,验证该服务使用方是否具有该用户服务的调用权限;如果是,可以进一步调用该系统智能合约包含的上述跨链调用逻辑,从与该服务接口绑定的合约执行逻辑中,为该服务使用方确定目标合约执行逻辑。
201.在示出的另一种实施方式中,基于相似的理由,在从与该服务接口绑定的合约执行逻辑中,为该服务使用方确定目标合约执行逻辑之后,在发起针对其它成员区块链上部署的包含所述合约执行逻辑的用户智能合约的跨链调用之后,具体也可以先调用该系统智能合约包含的权限验证逻辑,验证该服务使用方是否具有该目标合约执行逻辑的调用权限;如果是,再发起针对该其它成员区块链上部署的包含该目标合约执行逻辑的用户智能合约的跨链调用。
202.其中,该系统智能合约发起针对该其它成员区块链上部署的包含该目标合约执行
逻辑的用户智能合约的跨链调用的具体方式,仍然可以采用智能合约之间的消息调用机制来完成,在本说明书不再详述。
203.与前述方法的实施例相对应,本说明书还提供了装置、电子设备以及存储介质的实施例。
204.图7是一示例性实施例提供的一种电子设备的示意结构图。请参考图7,在硬件层面,该设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器810,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
205.如图8所示,图8是本说明书根据一示例性实施例示出的一种智能合约的跨链调用装置的框图,该装置可以应用于如图7所示的电子设备中,以实现本说明书的技术方案。该装置可以应用于由若干成员区块链构成的区块链服务网络中的任一目标成员区块链中的节点设备;其中,所述区块链服务网络中的至少部分成员区块链上部署的用户智能合约所包含的合约执行逻辑,以用户服务的形式开放调用;所述区块链网络中的各成员区块链上,分别部署了系统智能合约;所述系统智能合约包含与所述用户服务对应的跨链调用逻辑;所述装置80包括:
206.获取模块801,获取服务使用方发起的针对所述用户服务的调用数据;其中,所述用户服务的服务接口绑定了部署在其它成员区块链上的用户智能合约所包含的合约执行逻辑;
207.调用模块802,响应于所述调用数据,调用所述系统智能合约包含的所述跨链调用逻辑,从与所述服务接口绑定的合约执行逻辑中,为所述服务使用方确定目标合约执行逻辑,并发起针对所述其它成员区块链上部署的包含所述目标合约执行逻辑的用户智能合约的跨链调用。
208.上述装置80的各个模块的具体细节已经在之前描述的方法流程中进行了详细的描述,因此此处不再赘述。
209.相应的,本说明书还提供一种电子设备,所述电子设备包括有处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现之前描述的全部的方法流程中的步骤。
210.相应的,本说明书还提供一种计算机可读存储介质,其上存储有可执行的指令;其中,该指令被处理器执行时,实现之前描述的全部的方法流程中的步骤。
211.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
212.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,
或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
213.在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
214.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
215.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
216.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
217.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
218.在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
219.应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
220.以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说
明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献