本技术涉及区块链,尤其涉及一种基于区块链的服务调用方法、一种基于区块链的服务调用装置、一种计算机设备、一种计算机可读存储介质以及一种计算机程序产品。
背景技术:
1、在区块链中,涉及资产交易、游戏交易、数据查询等诸多事务需在区块链上执行。在区块链上执行这些事务之前,往往需采用事务密钥数据(例如私钥)对事务请求进行签名后,方可上链执行相关事务,在获取事务密钥数据的过程中往往涉及多个服务之间的调用。目前,通常直接调用相关服务来获取所需的事务密钥数据,这样会导致事务密钥数据存在被盗用或窃取的风险,存在极大的数据安全性。
技术实现思路
1、本技术实施例提出了一种基于区块链的服务调用方法、装置、设备、介质及产品,能够在获取事务密钥数据的过程中,对服务之间的相互调用进行授权处理,可提高事务密钥数据的安全性。
2、一方面,本技术实施例提供了一种基于区块链的服务调用方法,该方法包括:
3、响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据;事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;
4、基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;
5、生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;
6、将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;
7、调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
8、一方面,本技术实施例提供了一种基于区块链的服务调用方法,该方法包括:
9、接收第一服务发送的签名调用请求,签名调用请求是第一服务采用私钥对调用请求进行签名处理后得到的,调用请求是第一服务在响应于事务请求并确定事务请求所需的事务密钥数据后生成的;
10、基于签名调用请求,对第一服务进行验签处理;
11、若确定对第一服务的验签通过,则对第一服务进行接口授权处理;其中,接口授权处理用于触发第一服务调用第二服务中的密钥数据,以使第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
12、一方面,本技术实施例提供了一种基于区块链的服务调用装置,该装置包括:
13、确定单元,用于响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据;事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;
14、确定单元,还用于基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;
15、处理单元,用于生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;
16、发送单元,用于将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;
17、处理单元,还用于调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
18、在一种可能的实现方式中,第一服务设置于区块链服务系统中,区块链服务系统中部署有多个服务,区块链服务系统中的各个服务用于处理区块链相关事务;第一服务是区块链服务系统中的任一个服务;
19、第二服务设置于密钥数据管理系统中,密钥数据管理系统中存储有处理区块链相关事务签名所需的事务密钥数据;密钥数据管理系统中部署有多个服务,第二服务是密钥数据管理系统中的任一个服务。
20、在一种可能的实现方式中,确定单元调用第一服务确定事务请求所需的事务密钥数据,用于执行以下操作:
21、解析事务请求,获取事务请求需执行的事务的事务类型;
22、按照事务类型,从区块链服务系统中确定出需调用的第一服务;
23、调用区块链服务系统中的所述第一服务,确定事务请求所需的事务密钥数据。
24、在一种可能的实现方式中,处理单元在验签通过后调用第二服务中的事务密钥数据,用于执行以下操作:
25、若接收第二服务返回的接口授权消息,则确定第二服务对第一服务的验签通过,并调用第二服务的服务接口获取密钥数据管理系统中的事务密钥数据;或者,
26、接收第二服务返回的反馈数据,并解析反馈数据得到事务密钥数据,反馈数据是第二服务在对第一服务验签通过后发送的。
27、在一种可能的实现方式中,事务请求为针对区块链的资产交易请求,所述资产交易请求所需的事务密钥数据为:需处理的数字资产所属的目标对象的私钥;第一服务为区块链服务系统中的交易服务,第二服务为密钥管理系统中的密钥管理服务;处理单元还用于执行以下操作:
28、调用交易服务,采用目标对象的私钥对资产交易请求进行签名处理,得到签名后的资产交易请求;
29、将签名后的资产交易请求发送至区块链中的目标区块链节点,触发由目标区块链节点执行资产交易;
30、其中,目标区块链节点为:区块链中的任一个区块链节点、或区块链中指定类型的区块链节点。
31、在一种可能的实现方式中,处理单元还用于执行以下操作:
32、获取资产交易请求需处理的数字资产的资产类型;
33、若数字资产的资产类型为预设资产类型,则对签名后的资产交易请求进行加密处理,得到加密资产交易请求;
34、调用交易服务,将加密资产交易请求发送至区块链进行上链处理。
35、一方面,本技术实施例提供了一种基于区块链的服务调用装置,该装置包括:
36、接收单元,用于接收第一服务发送的签名调用请求,签名调用请求是第一服务采用私钥对调用请求进行签名处理后得到的,调用请求是第一服务在响应于事务请求并确定事务请求所需的事务密钥数据后生成的;
37、处理单元,用于基于签名调用请求,对第一服务进行验签处理;
38、处理单元,还用于若确定对第一服务的验签通过,则对第一服务进行接口授权处理;其中,接口授权处理用于触发第一服务调用第二服务中的密钥数据,以使第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
39、在一种可能的实现方式中,处理单元基于签名调用请求,对第一服务进行验签处理,用于执行以下操作:
40、解析签名调用请求,得到第一服务的授权签名数据;
41、从区块链中获取第一服务的公钥,并按照第一服务的公钥,对第一服务的授权签名数据进行验签处理;
42、若验签通过,则确定对第一服务的验签通过。
43、在一种可能的实现方式中,处理单元基于签名调用请求,对第一服务进行验签处理,还用于执行以下操作:
44、获取第二服务对应的白名单列表,白名单列表中记录有允许调用第二服务的至少一个服务的服务标识,服务标识包括:服务名称、公钥中的任一种或多种;
45、若白名单列表中记录有第一服务的服务标识,则确定对第一服务的验签通过。
46、在一种可能的实现方式中,第二服务为密钥数据管理系统中的密钥管理服务,密钥数据管理系统中还部署有密钥计算服务;处理单元还用于执行以下操作:
47、响应于服务密钥请求,服务密钥请求用于请求为目标服务生成服务密钥,服务密钥包括目标服务的公钥和私钥;
48、调用密钥管理服务将服务密钥请求发送至密钥计算服务,以使密钥计算服务为目标服务生成服务密钥;
49、接收密钥计算服务返回的目标服务的公钥,并将目标服务的公钥发送至区块链进行上链处理。
50、在一种可能的实现方式中,处理单元还用于执行以下操作:
51、调用密钥管理服务获取目标服务的服务类型;
52、若目标服务的服务类型为预设服务类型,则触发执行将目标服务的服务公钥发送至区块链进行上链处理;
53、若目标服务的服务类型不为预设服务类型,则将目标服务的公钥存储在密钥数据管理系统中。
54、一方面,本技术实施例提供一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述的基于区块链的服务调用方法。
55、一方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的基于区块链的服务调用方法。
56、一方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的基于区块链的服务调用方法。
57、本技术实施例中,响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据,该事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。由此可见,本技术能够在区块链上请求执行事务之前,需调用第一服务获取第二服务中的事务密钥数据,第一服务调用第二服务时需使用第一服务的私钥进行授权签名,进而第二服务会对第一服务进行验签,当第二服务对第一服务验签通过后,方可允许第一服务调用第二服务中进而获取事务密钥数据,由于服务之间的相互调用需进行验证,因此可以提高事务密钥数据的安全性。