System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及区块链,尤其涉及一种分布式区块链智能网关系统及应用请求处理方法。
技术介绍
1、区块链是一种块链式存储、不可篡改、安全可信的去中心化分布式账本,它结合了分布式存储、点对点传输、共识机制、密码学等技术,通过不断增长的数据块链(blocks)记录交易和信息,确保数据的安全和透明性。区块链在溯源,存证等方面有很大的应用价值。通过区块链提供的接口,应用程序可以将数据上链保存,在链上保存数据的好处是数据可信,不容易被篡改。上链操作通常是调用区块链的智能合约完成。每次调用可以认为是一次交易。
2、应用程序调用智能合约通常通过sdk(software developmentkit,软件开发工具包)完成,也可以通过调用上链的接口完成。区块链有很多种,如以太坊、eos、fabric、长安链、蚂蚁链等。如果需要应用程序支持多种区块链,需要在调用接口中支持多种接口,这些接口可以是cpp、java等。并且不同的接口需要配置的信息不同,这会导致开发比较复杂。
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、所述消息队列用于将所述消息处理队列同步至所述消息数据库。
25、第二方面,本申请提供一种应用请求处理方法,应用于山能述的分布式区块链智能网关系统,所述方法包括:
26、s1、响应于接收应用调用区块链的处理请求,将处理请求发送至消息队列,以使得所述消息队列对处理请求进行排序以得到消息处理队列;
27、s2、从所述消息队列的消息处理队列中获取调用区块链的处理请求,执行区块链智能合约功能,得到对应的处理结果;
28、s3、将所述处理结果发送至应用。
29、在一些实施例中,响应于接收应用调用区块链的处理请求,将处理请求发送至所述消息队列,包括:
30、响应于接收应用调用区块链的处理请求,根据所述处理请求校验所述应用的账户配置信息是否具备区块链调用权限,若具备,则将处理请求发送至所述消息队列。
31、在一些实施例中,还包括:
32、在所述处理结果为区块链调用失败时,对所述处理请求进行重处理。
33、本申请提供的分布式区块链智能网关系统及应用请求处理方法,所述系统包括:分布式网关组件以及消息队列,所述分布式网关组件包括分布式布置的多个网关节点;其中,所述网关节点包括:消息接收模块,用于接收应用调用区块链的处理请求,并将处理请求发送至所述消息队列,以使得所述消息队列对处理请求进行排序以得到消息处理队列;消息处理模块,用于从所述消息队列的消息处理队列中获取调用区块链的处理请求,执行区块链智能合约功能,得到对应的处理结果;回调模块,用于将所述处理结果发送至应用。本申请提供一种分布式区块链智能网关系统,通过设计分布式网关服务的结构,采用消息队列(例如kafka集群)对多个应用节点的调用智能网关的请求进行了排序,使整个系统中调用智能合约的请求顺序一致。在系统崩溃时,可以用于恢复区块链系统,避免用应用节点数据恢复带来的顺序不一致问题。本申请使数据上链、数据查询、合约执行等操作的稳定性得到提升,可以很大程度避免因网关节点宕机导致的区块链交易失败,有助于提高了网关服务的稳定性,避免网关故障导致系统崩溃。
本文档来自技高网...【技术保护点】
1.一种分布式区块链智能网关系统,其特征在于,所述系统包括:分布式网关组件以及消息队列,所述分布式网关组件包括分布式布置的多个网关节点;
2.根据权利要求1所述的分布式区块链智能网关系统,其特征在于,所述消息接收模块具体用于:
3.根据权利要求1所述的分布式区块链智能网关系统,其特征在于,所述消息处理模块具体用于:
4.根据权利要求3所述的分布式区块链智能网关系统,其特征在于,所述消息处理模块具体还用于:
5.根据权利要求1所述的分布式区块链智能网关系统,其特征在于,所述网关节点还包括:
6.根据权利要求5所述的分布式区块链智能网关系统,其特征在于,重处理模块具体用于:
7.根据权利要求1所述的分布式区块链智能网关系统,其特征在于,所述系统还包括:消息数据库;
8.一种应用请求处理方法,应用于如权利要求1-7任一项所述的分布式区块链智能网关系统,其特征在于,所述方法包括:
9.根据权利要求8所述的应用请求处理方法,其特征在于,响应于接收应用调用区块链的处理请求,将处理请求发送至所述消息
10.根据权利要求8所述的应用请求处理方法,其特征在于,还包括:
...【技术特征摘要】
1.一种分布式区块链智能网关系统,其特征在于,所述系统包括:分布式网关组件以及消息队列,所述分布式网关组件包括分布式布置的多个网关节点;
2.根据权利要求1所述的分布式区块链智能网关系统,其特征在于,所述消息接收模块具体用于:
3.根据权利要求1所述的分布式区块链智能网关系统,其特征在于,所述消息处理模块具体用于:
4.根据权利要求3所述的分布式区块链智能网关系统,其特征在于,所述消息处理模块具体还用于:
5.根据权利要求1所述的分布式区块链智能网关系统,其特征在于,所述网关节点还包括:<...
【专利技术属性】
技术研发人员:饶小毛,施志雄,李勇路,黄文波,林锦升,廖汉伟,雷贵鹏,陈文君,吴晗,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。