区块链网关的实现方法技术

技术编号:35266156 阅读:15 留言:0更新日期:2022-10-19 10:28
本发明专利技术公开了一种区块链网关的实现方法,智能合约部署人员根据实际需要对智能合约进行管理操作,各项管理操作事件在区块链上共识存储,区块链节点设置智能合约管理模块,用于管理智能合约的操作事件,同时智能合约管理模块对外提供事件订阅服务,区块链网关向区块链中各个区块链节点的智能合约管理模块进行事件订阅,根据智能合约的事件信息完成相应操作,进行网关服务的动态调整。本发明专利技术的区块链网关支持智能合约发现并动态维护服务状态,方便区块链系统与外部业务系统的对接。便区块链系统与外部业务系统的对接。便区块链系统与外部业务系统的对接。

【技术实现步骤摘要】
区块链网关的实现方法


[0001]本专利技术属于区块链
,更为具体地讲,涉及一种区块链网关的实现方法。

技术介绍

[0002]随着区块链系统在实际场景中的不断应用,区块链系统通常需要通过区块链网关与外部系统进行对接。由于智能合约中承载了相应的业务逻辑,因此外部系统与区块链对接的接口本质是智能合约的方法。图1是区块链网关的场景示意图。如图1所示,业务系统为不同场景下的上层系统,其可能是包含前端和后台的完整系统,其对接区块链节点以实现数据的去中心化存储和防篡改需求,并向最终用户提供交互能力。业务系统与区块链节点之间通过区块链网关完成对接,区块链网关对外提供例如HTTP的服务接口接收业务请求,并根据收到的业务请求向区块链发送一笔区块链交易请求。区块链网关可以连接多个节点,发往区块链网络的交易请求可以随机分发至不同的节点上。智能合约是区块链系统中自定义数据处理逻辑的载体,每个节点都维护了本地的智能合约。区块链节点接收的大部分交易请求都会指定需要调用的智能合约方法,经历共识等流程最终将交易请求和执行结果存储至账本中,此时整个区块链网络的账本状态是一致的或大部分一致的。
[0003]实际场景中,由于业务的复杂性,一个业务系统可能需要多个智能合约来进行链上交互,或者一个区块链系统上可能直接承载了多个业务系统关联的合约。由于业务系统实际需求的差异,以及各合约方法和参数定义存在区别,每次新的业务接入都将涉及到网关的服务升级和接口更新,工作重复、繁琐且容易出错。另外,当链上智能合约状态发生变化时,网关无法及时做出调整。现有的区块链网关作为外部业务系统与区块链的调用桥梁,将外部请求解析成内部合约调用,将合约响应转换为外部响应,一定程度上屏蔽了智能合约调用的复杂度,但是缺乏与区块链的交互流程,缺乏灵活性,存在如下三个问题:
[0004]1.每个合约的部署都需要在网关添加相关的配置信息,增加了业务对接的工作量。
[0005]2.任意合约的更新都可能需要重新修改网关的服务接口结构,不具备灵活性。
[0006]3.作为一种中间件,网关服务状态未与合约状态紧密关联,无法向业务系统反应真实的区块链服务状态。

技术实现思路

[0007]本专利技术的目的在于克服现有技术的不足,提供一种区块链网关的实现方法,支持智能合约发现并动态维护服务状态,方便区块链系统与外部业务系统的对接。
[0008]为了实现上述专利技术目的,本专利技术区块链网关的实现方法包括以下步骤:
[0009]S1:智能合约部署人员根据实际需要对智能合约进行管理操作,各项管理操作事件在区块链上共识存储,智能合约的管理操作包括智能合约部署、启动、停用、复用、更新,其中在智能合约部署过程中,解析出智能合约中包含的所有方法信息,包括方法名称、方法返回值、方法参数名称和类型,将上述方法信息构成智能合约描述信息并整合成指定格式
后在区块链上共识存储;
[0010]S2:在区块链节点中设置智能合约管理模块,用于管理智能合约的操作事件,同时智能合约管理模块对外提供事件订阅服务,用于向订阅者在智能合约发生操作事件后向外部推送相应通知信息;区块链网关向区块链中各个区块链节点的智能合约管理模块进行事件订阅,当区块链节点推送的通知信息中包含某个智能合约的事件信息,则统计发送该事件信息的区块链节点数量,如果超过预设阈值则状态变动有效,进入步骤S3,否则不作任何操作;
[0011]S3:区块链网关根据智能合约的事件信息完成相应操作,进行动态调整,包括以下情况:
[0012]1)区块链网关在接收到智能合约部署事件信息后,根据智能合约描述信息自动构建网关服务接口,具体方法如下:
[0013]对于智能合约中包含的各个方法,根据方法名称确定调用此方法对应的网关服务接口名称,根据方法参数名称和类型,自动生成匹配此方法交易请求参数的服务接口实例,自动将调用此方法的交易请求参数解析成调用此智能合约的链上交易请求;
[0014]2)区块链网关在接收到智能合约启动或复用事件信息时,启用为该智能合约对应的服务接口;
[0015]3)区块链网关在接收到智能合约停用事件后,将正在提供此智能合约调用服务的接口状态改为不可用,即关闭智能合约的调用服务,并将相关服务的请求路径重定向至合约停用专用路径,向外部提示智能合约当前状态;
[0016]4)区块链网关在接收到智能合约更新事件后,获取更新后的智能合约信息,则根据更新后的智能合约信息判断此智能合约的服务接口是否需要更新,如果不需要则不作任何操作,如果需要则自动重新生成智能合约调用服务相关接口,完成服务接口更新。
[0017]本专利技术区块链网关的实现方法,智能合约部署人员根据实际需要对智能合约进行管理操作,各项管理操作事件在区块链上共识存储,区块链节点设置智能合约管理模块,用于管理智能合约的操作事件,同时智能合约管理模块对外提供事件订阅服务,区块链网关向区块链中各个区块链节点的智能合约管理模块进行事件订阅,根据智能合约的事件信息完成相应操作,进行网关服务的动态调整。
[0018]本专利技术具有以下有益效果:
[0019]1)本专利技术通过解析智能合约信息自动提供可调用的服务接口,将业务系统对接的网关接口和区块链智能合约开发的方法接口两个过程进行有机统一,提供自动化的网关服务构建能力,从而简化系统对接流程,使得外部系统能够直接按照传统接口,完全与区块链系统的对接,屏蔽内部智能合约的额外调用要求。
[0020]2)本专利技术通过区块链节点的事件订阅服务,监控节点上的智能合约,动态更新服务状态和调整对应操作,自动适应实际应用场景的需要。
附图说明
[0021]图1是区块链网关的场景示意图;
[0022]图2是本专利技术区块链网关的实现方法的具体实施方式流程图;
[0023]图3是本专利技术中合约事件订阅的流程示意图;
[0024]图4是本实施例中构建网关服务接口的示例图。
具体实施方式
[0025]下面结合附图对本专利技术的具体实施方式进行描述,以便本领域的技术人员更好地理解本专利技术。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本专利技术的主要内容时,这些描述在这里将被忽略。
[0026]实施例
[0027]图2是本专利技术区块链网关的实现方法的具体实施方式流程图。如图1所示,本专利技术区块链网关的实现方法的具体步骤包括:
[0028]S201:智能合约操作:
[0029]智能合约部署人员根据实际需要对智能合约进行管理操作,各项管理操作事件在区块链上共识存储,智能合约的管理操作包括智能合约部署、启动、停用、复用、更新,其中在智能合约部署过程中,解析出智能合约中包含的所有方法信息,包括方法名称、方法返回值、方法参数名称和类型,将上述方法信息构成智能合约描述信息并整合成指定格式(例如JSON)后在区块链上共识存储。通常智能合约解析是采用SDK(Software Development Kit,软件开发工具包)或节点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链网关的实现方法,其特征在于,包括以下步骤:S1:智能合约部署人员根据实际需要对智能合约进行管理操作,各项管理操作事件在区块链上共识存储,智能合约的管理操作包括智能合约部署、启动、停用、复用、更新,其中在智能合约部署过程中,解析出智能合约中包含的所有方法信息,包括方法名称、方法返回值、方法参数名称和类型,将上述方法信息构成智能合约描述信息并整合成指定格式后在区块链上共识存储;S2:在区块链节点中设置智能合约管理模块,用于管理智能合约的操作事件,同时智能合约管理模块对外提供事件订阅服务,用于向订阅者在智能合约发生操作事件后向外部推送相应通知信息;区块链网关向区块链中各个区块链节点的智能合约管理模块进行事件订阅,当区块链节点推送的通知信息中包含某个智能合约的事件信息,则统计发送该事件信息的区块链节点数量,如果超过预设阈值则状态变动有效,进入步骤S3,否则不作任何操作;S3:区块链网关根据智能合约的事件信息完成相应操作,进行动态调整,包括以下情况:1)区块链网关在接收到智能合约部署事件信息后,根据智能合约描述信息自动构建网关服务接口,具体方法如下:对于智能合约中包含的各个方法,根据方法名称确定调用此方法对应的网关服务接口名称,根据方法参数名称和类型,自动生成匹配此方法交...

【专利技术属性】
技术研发人员:丘志杰蔡湘伟陈虹王行行徐竟浩
申请(专利权)人:北京链道科技有限公司
类型:发明
国别省市:

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

1