基于链码的消息路由方法、装置及系统制造方法及图纸

技术编号:37395237 阅读:15 留言:0更新日期:2023-04-27 07:32
本说明书一个或多个实施例公开了一种基于链码的消息路由方法、装置及系统。所述方法包括:获取来自区块链网络中的第一背书节点的第一节点消息,所述第一节点消息包括所述第一背书节点对应的第一节点标识信息和第一链码请求消息,所述区块链网络中包括多个背书节点。生成所述第一链码请求消息对应的第一链码标识信息。根据所述第一链码标识信息和所述第一节点消息,更新所述第一链码请求消息对应的第一消息路由记录,所述第一消息路由记录包括所述第一链码标识信息和所述第一节点标识信息之间的对应关系。根据所述第一消息路由记录,确定是否将所述第一链码请求消息发送至链码节点,所述链码节点用于生成所述第一链码请求消息对应的第一链码响应消息。求消息对应的第一链码响应消息。求消息对应的第一链码响应消息。

【技术实现步骤摘要】
基于链码的消息路由方法、装置及系统


[0001]本说明书涉及区块链
,尤其涉及一种基于链码的消息路由方法、装置及系统。

技术介绍

[0002]Kubernetes简称K8s,是一种开源的、用于管理云平台中多个主机上的容器化的应用,其为应用提供了在K8s集群中多个主机上的部署、高可用、扩缩容等基础能力。Hyperledger Fabric作为开源中比较热门的一种区块链技术,其区块链网络主要由背书节点(即Peer节点,或者简称为Peer)组成。Peer节点是区块链网络的基本元素,用于存储账单和智能合约。Peer节点暴露一系列的API(Application Programming Interface,应用程序接口),使管理者和应用程序同这些API提供的服务互动,当Peer节点的链码调用及访问相关API被调用时,Peer节点会访问对应的链码容器以调用对应的方法。链码用于管理智能合约的打包及部署,同一个链码中可以定义一个或多个智能合约。当一个链码部署完毕,该链码中的所有智能合约都可以供应用程序使用。
[0003]相关技术中,为解决以外部链码方式安装链码和创建传统链码容器导致的交互冲突问题,提出在Peer容器和传统链码容器间建立代理容器的机制。但是,这种代理是一对一的,即,代理容器仅能为传统链码容器代理一个Peer容器。然而,当链码作为一种服务时,往往会出现多个Peer容器访问同一个代理容器的情况。因此,如何使代理容器应对多Peer容器并发访问的场景,成为相关技术中亟待解决的问题之一。

技术实现思路
/>[0004]一方面,本说明书一个或多个实施例提供一种基于链码的消息路由方法,包括:获取来自区块链网络中的第一背书节点的第一节点消息,所述第一节点消息包括所述第一背书节点对应的第一节点标识信息和第一链码请求消息,所述区块链网络中包括多个背书节点。生成所述第一链码请求消息对应的第一链码标识信息。根据所述第一链码标识信息和所述第一节点消息,更新所述第一链码请求消息对应的第一消息路由记录,所述第一消息路由记录包括所述第一链码标识信息和所述第一节点标识信息之间的对应关系。根据所述第一消息路由记录,确定是否将所述第一链码请求消息发送至链码节点,所述链码节点用于生成所述第一链码请求消息对应的第一链码响应消息。
[0005]另一方面,本说明书一个或多个实施例提供一种基于链码的消息路由方法,包括:获取来自链码节点的第一链码响应消息,所述链码节点接入区块链网络,所述区块链网络中包括多个背书节点,所述第一链码响应消息是由所述链码节点基于第一链码请求消息生成的。生成所述第一链码响应消息对应的第一链码标识信息。获取所述第一链码标识信息对应的第一消息路由记录,所述第一消息路由记录包括所述第一链码标识信息和第一节点标识信息之间的对应关系。根据所述第一消息路由记录,将所述第一链码响应消息发送至所述第一节点标识信息对应的第一背书节点。
[0006]再一方面,本说明书一个或多个实施例提供一种基于链码的消息路由装置,包括:第一获取模块,获取来自区块链网络中的第一背书节点的第一节点消息,所述第一节点消息包括所述第一背书节点对应的第一节点标识信息和第一链码请求消息,所述区块链网络中包括多个背书节点。第一生成模块,生成所述第一链码请求消息对应的第一链码标识信息。第一更新模块,根据所述第一链码标识信息和所述第一节点消息,更新所述第一链码请求消息对应的第一消息路由记录,所述第一消息路由记录包括所述第一链码标识信息和所述第一节点标识信息之间的对应关系。第一确定模块,根据所述第一消息路由记录,确定是否将所述第一链码请求消息发送至链码节点;所述链码节点用于生成所述第一链码请求消息对应的第一链码响应消息。
[0007]再一方面,本说明书一个或多个实施例提供一种基于链码的消息路由装置,包括:第二获取模块,获取来自链码节点的第一链码响应消息,所述链码节点接入区块链网络,所述区块链网络中包括多个背书节点,所述第一链码响应消息是由所述链码节点基于第一链码请求消息生成的。第二生成模块,生成所述第一链码响应消息对应的第一链码标识信息。第三获取模块,获取所述第一链码标识信息对应的第一消息路由记录,所述第一消息路由记录包括所述第一链码标识信息和第一节点标识信息之间的对应关系。发送模块,根据所述第一消息路由记录,将所述第一链码响应消息发送至所述第一节点标识信息对应的第一背书节点。
[0008]再一方面,本说明书一个或多个实施例提供一种基于链码的消息路由系统,包括多个背书节点、代理服务端和链码节点,所述代理服务端连接于所述多个背书节点和所述链码节点之间。所述背书节点中的第一背书节点,将第一节点消息发送至所述代理服务端,所述第一节点消息包括所述第一背书节点对应的第一节点标识信息和第一链码请求消息。所述代理服务端,获取来自所述第一背书节点的所述第一节点消息,生成所述第一链码请求消息对应的第一链码标识信息。根据所述第一链码标识信息和所述第一节点消息,更新所述第一链码请求消息对应的第一消息路由记录,所述第一消息路由记录包括所述第一链码标识信息和所述第一节点标识信息之间的对应关系,根据所述第一消息路由记录,确定是否将所述第一链码请求消息发送至所述链码节点。所述链码节点,生成所述第一链码请求消息对应的第一链码响应消息,将所述第一链码响应消息发送至所述代理服务端。所述代理服务端,获取来自所述链码节点的所述第一链码响应消息,生成所述第一链码响应消息对应的所述第一链码标识信息,获取所述第一消息路由记录,根据所述第一消息路由记录,将所述第一链码响应消息发送至所述第一节点标识信息对应的所述第一背书节点。
[0009]再一方面,本说明书一个或多个实施例提供一种电子设备,包括处理器和与所述处理器电连接的存储器,所述存储器存储有计算机程序,所述处理器用于从所述存储器调用并执行所述计算机程序以实现上述任一方面所述的基于链码的消息路由方法。
[0010]再一方面,本说明书实施例提供一种存储介质,用于存储计算机程序,所述计算机程序能够被处理器执行以实现上述任一方面所述的基于链码的消息路由方法。
附图说明
[0011]为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的
附图仅仅是本说明书一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0012]图1是根据本说明书一实施例的一种基于链码的消息路由系统的示意性架构图;
[0013]图2是根据本说明书一实施例的一种基于链码的消息路由方法的示意性流程图;
[0014]图3是根据本说明书另一实施例的一种基于链码的消息路由方法的示意性流程图;
[0015]图4是根据本说明书一实施例的一种基于链码的消息路由方法的示意性原理图;
[0016]图5是根据本说明书一实施例的一种基于链码的消息路由方法的示意性泳道图;
[本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于链码的消息路由方法,包括:获取来自区块链网络中的第一背书节点的第一节点消息;所述第一节点消息包括所述第一背书节点对应的第一节点标识信息和第一链码请求消息;所述区块链网络中包括多个背书节点;生成所述第一链码请求消息对应的第一链码标识信息;根据所述第一链码标识信息和所述第一节点消息,更新所述第一链码请求消息对应的第一消息路由记录;所述第一消息路由记录包括所述第一链码标识信息和所述第一节点标识信息之间的对应关系;根据所述第一消息路由记录,确定是否将所述第一链码请求消息发送至链码节点;所述链码节点用于生成所述第一链码请求消息对应的第一链码响应消息。2.根据权利要求1所述的方法,所述第一消息路由记录包括所述第一链码标识信息、所述第一节点标识信息和第一链码消息队列之间的对应关系;所述第一链码消息队列用于存储所述第一链码标识信息对应的未处理的链码请求消息。3.根据权利要求2所述的方法,所述根据所述第一链码标识信息和所述第一节点消息,更新所述第一链码请求消息对应的第一消息路由记录,包括:获取所述区块链网络对应的消息路由记录集;所述消息路由记录集用于存储至少一个链码标识信息对应的消息路由记录;各所述消息路由记录分别包括链码标识信息、节点标识信息和链码消息队列之间的对应关系;所述链码消息队列用于存储同一链码标识信息对应的未处理的链码请求消息;根据所述第一链码标识信息和所述第一节点消息,在所述消息路由记录集中更新所述第一链码请求消息对应的所述第一消息路由记录。4.根据权利要求3所述的方法,所述根据所述第一链码标识信息和所述第一节点消息,在所述消息路由记录集中更新所述第一链码请求消息对应的所述第一消息路由记录,包括:判断所述消息路由记录集中是否包括所述第一链码标识信息对应的第二消息路由记录;所述第二消息路由记录包括所述第一链码标识信息、以及与所述第一链码标识信息对应的第二链码消息队列;所述第二链码消息队列用于存储所述第一链码标识信息对应的未处理的链码请求消息;若是,则将所述第一节点消息添加至所述第二链码消息队列中,得到所述第一消息路由记录;其中,所述第一链码消息队列包括至少一个所述未处理的链码请求消息;若否,则生成所述第一链码标识信息对应的所述第一消息路由记录,并将所述第一消息路由记录写入所述消息路由集。5.根据权利要求4所述的方法,所述根据所述第一消息路由记录,确定是否将所述第一链码请求消息发送至链码节点,包括:若所述第一链码消息队列包括至少一个所述未处理的链码请求消息,则根据各所述未处理的链码请求消息对应的消息处理优先级,判断所述第一链码请求消息对应的消息处理优先级是否为最高;若是,则将所述第一链码请求消息发送至链码节点。6.根据权利要求4所述的方法,所述根据所述第一消息路由记录,确定是否将所述第一
链码请求消息发送至链码节点,包括:在生成所述第一链码标识信息对应的所述第一消息路由记录之后,将所述第一链码请求消息发送至所述链码节点。7.根据权利要求1所述的方法,所述第一链码请求消息包括:所述第一链码请求消息对应的区块链通道的通道标识信息,和/或,所述第一链码请求消息对应的交易事件的交易标识信息;生成所述第一链码请求消息对应的第一链码标识信息,包括:根据所述通道标识信息和/或所述交易标识信息,生成所述第一链码请求消息对应的所述第一链码标识信息。8.根据权利要求1所述的方法,所述获取来自区块链网络中的第一背书节点的第一节点消息之前,还包括:生成各所述背书节点分别对应的节点标识信息。9.一种基于链码的消息路由方法,包括:获取来自链码节点的第一链码响应消息;所述链码节点接入区块链网络,所述区块链网络中包括多个背书节点;所述第一链码响应消息是由所述链码节点基于第一链码请求消息生成的;生成所述第一链码响应消息对应的第一链码标识信息;获取所述第一链码标识信息对应的第一消息路由记录;所述第一消息路由记录包括所述第一链码标识信息和第一节点标识信息之间的对应关系;根据所述第一消息路由记录,将所述第一链码响应消息发送至所述第一节点标识信息对应的第一背书节点。10.根据权利要求9所述的方法,所述第一消息路由记录包括所述第一链码标识信息、所述第一节点标识信息和第一链码消息队列之间的对应关系;所述第一链码消息队列用于存储所述第一链码标识信息对应的未处理的链码请求消息。11.根据权利要求10所述...

【专利技术属性】
技术研发人员:安子贤印明亮
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1