本申请一个或多个实施例涉及区块链,尤其涉及一种基于通信网络的跨链计算方法、装置和系统。
背景技术:
1、区块链(blockchain)是分布式数据存储、点对点传输、共识算法、加密算法等计算机技术的新型应用模式。区块链系统是指基于区块链技术构建的分布式账本系统。在区块链系统中,按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,通过共识算法来确保参与搭建区块链系统的所有节点的数据一致,并采用加密算法来保证数据的安全和隐私。由于区块链系统具有去中心化、信息不可篡改、自治性等特性,使得区块链系统的应用越来越广泛。
2、分布式应用程序(distributed application,简称dapp)是指在分布式计算环境下运行的应用程序。分布式应用程序通过多个节点联合工作来实现功能,这些节点之间相互通信和协作。分布式应用程序通常基于区块链技术构建,也即,可以分布式应用程序部署在区块链系统中,利用区块链系统来实现去中心化的应用逻辑。区块链系统的特性使得分布式应用程序具有去中心化、防篡改和高可用性的优势。
3、在实际应用中,部署在不同的区块链系统中的分布式应用程序之间可能需要进一步的相互通信和协作,而这就需要在不同的区块链系统中进行跨链计算。相应地,如何实现这种跨链计算,也就成为了亟待解决的问题。
技术实现思路
1、本申请一个或多个实施例提供技术方案如下:
2、本申请提供一种基于通信网络的跨链计算方法,所述通信网络包括多个区块链系统对应的多个计算节点;所述区块链系统中部署了分布式服务;所述计算节点用于为其对应的区块链系统中部署的分布式服务提供跨链计算服务;所述计算节点维护了其对应的区块链系统中部署的分布式服务的服务标识和为其他分布式服务提供跨链计算服务的其他计算节点的通信信息之间的第一关联关系,所述其他分布式服务为与该分布式服务具有跨链调用关系的分布式服务;
3、所述方法应用于所述通信网络中的第一计算节点,包括:
4、接收第一分布式服务发送的针对第二分布式服务的跨链调用请求;其中,所述第一分布式服务为所述第一计算节点对应的区块链系统中部署的分布式服务;所述第二分布式服务为所述通信网络中的第二计算节点对应的区块链系统中部署的分布式服务;所述跨链应用调用请求包含所述第一分布式服务的服务标识;
5、响应于所述跨链应用调用请求,根据维护的所述第一关联关系确定与所述第一分布式服务的服务标识关联的所述第二计算节点的通信信息,并基于所述第二计算节点的通信信息通过所述通信网络将所述跨链应用调用请求发送给所述第二计算节点,以使所述第二计算节点将所述跨链应用调用请求发送给所述第二分布式服务,并接收所述第二分布式服务返回的与所述跨链应用调用请求对应的跨链应用调用响应;
6、接收所述第二计算节点返回的所述跨链应用调用响应,并将所述跨链应用调用响应返回给所述第一分布式服务。
7、本申请还提供一种基于通信网络的跨链计算系统,所述通信网络包括多个区块链系统对应的多个计算节点;所述区块链系统中部署了分布式服务;所述计算节点用于为其对应的区块链系统中部署的分布式服务提供跨链计算服务;所述计算节点维护了其对应的区块链系统中部署的分布式服务的服务标识和为其他分布式服务提供跨链计算服务的其他计算节点的通信信息之间的第一关联关系,所述其他分布式服务为与该分布式服务具有跨链调用关系的分布式服务;
8、所述系统包括:所述通信网络中的第一计算节点;所述第一计算节点对应的区块链系统中部署的第一分布式服务;所述通信网络中的第二计算节点;所述第二计算节点对应的区块链系统中部署的第二分布式服务;
9、其中:
10、所述第一计算节点接收所述第一分布式服务发送的针对所述第二分布式服务的跨链调用请求;其中,所述跨链应用调用请求包含所述第一分布式服务的服务标识;
11、所述第一计算节点响应于所述跨链应用调用请求,根据维护的所述第一关联关系确定与所述第一分布式服务的服务标识关联的所述第二计算节点的通信信息,并基于所述第二计算节点的通信信息通过所述通信网络将所述跨链应用调用请求发送给所述第二计算节点;
12、所述第二计算节点将所述跨链应用调用请求发送给所述第二分布式服务,并接收所述第二分布式服务返回的与所述跨链应用调用请求对应的跨链应用调用响应;
13、所述第一计算节点接收所述第二计算节点返回的所述跨链应用调用响应,并将所述跨链应用调用响应返回给所述第一分布式服务。
14、本申请还提供一种基于通信网络的跨链计算装置,所述通信网络包括多个区块链系统对应的多个计算节点;所述区块链系统中部署了分布式服务;所述计算节点用于为其对应的区块链系统中部署的分布式服务提供跨链计算服务;所述计算节点维护了其对应的区块链系统中部署的分布式服务的服务标识和为其他分布式服务提供跨链计算服务的其他计算节点的通信信息之间的第一关联关系,所述其他分布式服务为与该分布式服务具有跨链调用关系的分布式服务;
15、所述装置应用于所述通信网络中的第一计算节点,包括:
16、第一接收模块,接收第一分布式服务发送的针对第二分布式服务的跨链调用请求;其中,所述第一分布式服务为所述第一计算节点对应的区块链系统中部署的分布式服务;所述第二分布式服务为所述通信网络中的第二计算节点对应的区块链系统中部署的分布式服务;所述跨链应用调用请求包含所述第一分布式服务的服务标识;
17、跨链调用模块,响应于所述跨链应用调用请求,根据维护的所述第一关联关系确定与所述第一分布式服务的服务标识关联的所述第二计算节点的通信信息,并基于所述第二计算节点的通信信息通过所述通信网络将所述跨链应用调用请求发送给所述第二计算节点,以使所述第二计算节点将所述跨链应用调用请求发送给所述第二分布式服务,并接收所述第二分布式服务返回的与所述跨链应用调用请求对应的跨链应用调用响应;
18、第二接收模块,接收所述第二计算节点返回的所述跨链应用调用响应,并将所述跨链应用调用响应返回给所述第一分布式服务。
19、本申请还提供一种电子设备,包括:
20、处理器;
21、用于存储处理器可执行指令的存储器;
22、其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述方法的步骤。
23、本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。
24、在上述技术方案中,由于可以基于由与区块链系统对应的计算节点构成的通信网络,实现部署在不同的区块链系统中的分布式服务之间的相互通信和协作,而不再需要在不同的区块链系统中进行跨链计算,就可以避免在不同的区块链系统之间进行跨链适配,并且可以降低部署在不同的区块链系统中的分布式服务之间的相互通信和协作的实现难度;此外,还可以减轻区块链系统的数据存储压力。
1.一种基于通信网络的跨链计算方法,所述通信网络包括多个区块链系统对应的多个计算节点;所述区块链系统中部署了分布式服务;所述计算节点用于为其对应的区块链系统中部署的分布式服务提供跨链计算服务;所述计算节点维护了其对应的区块链系统中部署的分布式服务的服务标识和为其他分布式服务提供跨链计算服务的其他计算节点的通信信息之间的第一关联关系,所述其他分布式服务为与该分布式服务具有跨链调用关系的分布式服务;
2.根据权利要求1所述的方法,所述计算节点还维护了其对应的区块链系统中部署的分布式服务的服务标识和与该分布式服务具有访问关系的区块链系统的访问信息的第二关联关系;
3.根据权利要求2所述的方法,所述方法还包括:
4.根据权利要求3所述的方法,所述方法还包括:
5.根据权利要求4所述的方法,所述建立所述第一分布式服务的服务标识和所述第二计算节点的通信信息之间的所述第一关联关系,并存储所述第一关联关系,包括:
6.根据权利要求1所述的方法,所述多个区块链系统中的至少部分区块链系统为异构的区块链系统。
7.根据权利要求1所述的方法,所述通信网络为p2p对等网络。
8.根据权利要求1所述的方法,所述分布式服务为分布式应用程序;或者,所述分布式服务为分布式应用程序中提供的服务。
9.根据权利要求1所述的方法,所述多个区块链系统对应于同一行业中的不同区域;所述第一分布式服务和所述第二分布式服务为同一行业中不同区域的分布式服务;
10.一种基于通信网络的跨链计算系统,所述通信网络包括多个区块链系统对应的多个计算节点;所述区块链系统中部署了分布式服务;所述计算节点用于为其对应的区块链系统中部署的分布式服务提供跨链计算服务;所述计算节点维护了其对应的区块链系统中部署的分布式服务的服务标识和为其他分布式服务提供跨链计算服务的其他计算节点的通信信息之间的第一关联关系,所述其他分布式服务为与该分布式服务具有跨链调用关系的分布式服务;
11.一种基于通信网络的跨链计算装置,所述通信网络包括多个区块链系统对应的多个计算节点;所述区块链系统中部署了分布式服务;所述计算节点用于为其对应的区块链系统中部署的分布式服务提供跨链计算服务;所述计算节点维护了其对应的区块链系统中部署的分布式服务的服务标识和为其他分布式服务提供跨链计算服务的其他计算节点的通信信息之间的第一关联关系,所述其他分布式服务为与该分布式服务具有跨链调用关系的分布式服务;
12.一种电子设备,包括:
13.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1至9中任一项所述的方法。