面向存证场景的区块链前置服务实现系统和方法技术方案

技术编号:37130002 阅读:23 留言:0更新日期:2023-04-06 21:28
本发明专利技术提供了一种面向存证场景的区块链前置服务实现系统和方法,包括:合约调用模块:提供合约调用功能用于交易;交易查询模块:从交易队列中获取交易哈希,通过交易哈希查询交易结果;交易推送模块:将推送队列中交易哈希的对应交易结果,回调给发起交易的微服务。本发明专利技术可以自动查询交易回执,并推送交易结果,可有效的解决传统的存证系统在开发周期、可靠性上的不足,有效地提升企业的开发效率,并且使开发的应用代码可复用。使开发的应用代码可复用。使开发的应用代码可复用。

【技术实现步骤摘要】
面向存证场景的区块链前置服务实现系统和方法


[0001]本专利技术涉及区块链
,具体地,涉及一种面向存证场景的区块链前置服务实现系统和方法。

技术介绍

[0002]目前越来越多的实体经济垂直领域呈现出“区块链+”的发展格局和“脱虚向实”的良好势头。随着区块链应用落地加快推进,“区块链+”业务已经成为互联网骨干企业进军区块链行业的发展重点。
[0003]但是,区块链不同于传统数据库,使用区块链开发应用系统与传统系统会有较多差异,其中最重要的一点是智能合约的执行和其结果的获取。由于区块链上需要经过多方共识后才能确定一笔交易,企业开发应用时不能立刻获取智能合约执行结果,这极大的减慢了开发速度。因此,本专利技术提出了一种自动查询区块链交易回执和推送结果的区块链前置服务。
[0004]专利文献CN112118221A(申请号:CN202010789050.8)公开了基于区块链的面向隐私数据共享的权能访问控制方法,在搭建的联盟链中,企业B创建一个联盟,针对不同请求数据的企业创建不同的业务通道,这里当企业A请求数据时,企业A和企业B共同加入到同一个数据业务通道内。在VMware虚拟机中搭建服务器,并在服务器上配置CA,搭建CA服务供本专利技术使用。企业A和企业B通过搭建的CA服务申请自己的数字身份证书,方便后续的安全操作。然而该专利无法及时反馈访问控制结果,开发速度慢,不利于企业的及时性应用开发。

技术实现思路

[0005]针对现有技术中的缺陷,本专利技术的目的是提供一种面向存证场景的区块链前置服务实现系统和方法。
[0006]根据本专利技术提供的面向存证场景的区块链前置服务实现系统,包括:
[0007]合约调用模块:提供合约调用功能用于交易;
[0008]交易查询模块:从交易队列中获取交易哈希,通过交易哈希查询交易结果;
[0009]交易推送模块:将推送队列中交易哈希的对应交易结果,回调给发起交易的微服务。
[0010]优选的,在区块链上需要调用合约的交易包括:改变变量状态的send型交易和查看变量状态的call型交易;
[0011]在发送send型交易后,通过区块链返回交易哈希,并将返回的交易哈希记录在数据库和交易队列中,用以查询和推送此次调用合约的结果。
[0012]优选的,在交易查询时,若交易查询失败,则重复进行交易查询动作,若重复查询该交易5次后仍查询失败,则进行报错处理;
[0013]若交易查询成功,则更新该交易的交易哈希对应的数据库记录,然后将该交易的交易哈希放入推送队列。
[0014]优选的,在交易哈希被放入推送队列后,按顺序逐条取出交易哈希,查询数据库中对应的记录,将对应结果进行推送。
[0015]优选的,在推送过程中,若因网络延迟或者回调微服务故障造成推送失败时,则进行延迟处理,然后将交易哈希重新放入推送队列进行推送;
[0016]若连续推送3次后仍推送失败,则进行报错处理;
[0017]若推送成功,则更新交易推送状态。
[0018]根据本专利技术提供的面向存证场景的区块链前置服务实现方法,包括:
[0019]合约调用步骤:提供合约调用功能用于交易;
[0020]交易查询步骤:从交易队列中获取交易哈希,通过交易哈希查询交易结果;
[0021]交易推送步骤:将推送队列中交易哈希的对应交易结果,回调给发起交易的微服务。
[0022]优选的,在区块链上需要调用合约的交易包括:改变变量状态的send型交易和查看变量状态的call型交易;
[0023]在发送send型交易后,通过区块链返回交易哈希,并将返回的交易哈希记录在数据库和交易队列中,用以查询和推送此次调用合约的结果。
[0024]优选的,在交易查询时,若交易查询失败,则重复进行交易查询动作,若重复查询该交易5次后仍查询失败,则进行报错处理;
[0025]若交易查询成功,则更新该交易的交易哈希对应的数据库记录,然后将该交易的交易哈希放入推送队列。
[0026]优选的,在交易哈希被放入推送队列后,按顺序逐条取出交易哈希,查询数据库中对应的记录,将对应结果进行推送。
[0027]优选的,在推送过程中,若因网络延迟或者回调微服务故障造成推送失败时,则进行延迟处理,然后将交易哈希重新放入推送队列进行推送;
[0028]若连续推送3次后仍推送失败,则进行报错处理;
[0029]若推送成功,则更新交易推送状态。
[0030]与现有技术相比,本专利技术具有如下的有益效果:
[0031](1)本专利技术简化区块链开发流程,提供对智能合约信息、区块链信息、区块链账户信息的维护,同时提供了调用合约方法、查询交易回执、推送交易结果的完整流程服务,方便了应用程序与区块链的交互,应用方可根据需要自行封装调用合约接口,开发回调微服务;
[0032](2)本专利技术可自动查询交易回执并推送交易结果,可有效的解决传统的存证系统在开发周期、可靠性上的不足,有效地提升企业的开发效率,并且使开发的应用代码可复用。
附图说明
[0033]通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:
[0034]图1为本专利技术系统流程图。
具体实施方式
[0035]下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。
[0036]实施例:
[0037]本专利技术提出了一种面向存证场景的区块链前置服务实现系统,该系统总共包含3个模块,分别为调用智能合约模块,查询交易结果模块和推送交易结果模块。
[0038]如图1,为系统的完整流程图,整个系统基于上海宝信软件股份有限公司的iPlat4j框架,每个模块都注册为一个微服务。
[0039]调用合约模块提供了的合约调用功能。区块链上的合约调用分为两种,一种是可以改变变量状态的send型交易,另外一种是查看变量状态的call型交易。发送send型交易后,区块链将会返回交易哈希,该模块将返回的交易哈希记录在数据库和交易队列中,用以查询和推送此次调用合约的结果。
[0040]查询模块的功能是从交易队列中取出交易哈希,通过该交易哈希查询交易回执。查询时可能因为网络延迟导致查询失败,如果查询失败,该查询动作最多重复5次。如果查询成功,查询微服务将更新该条交易哈希对应的数据库记录,然后将该交易哈希放入推送队列。
[0041]推送模块负责将推送队列中交易哈希所对应的结果回调给发送交易时传入的微服务ID。交易哈希被放入推送队列后,推送微服务将按顺序逐条取出交易哈希,查询数据库中对应的记录,将结果进行推送,如遇到网络问题或者回调微服务不可用时,将延迟一段时间,将交易哈希重新放入推送队列。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向存证场景的区块链前置服务实现系统,其特征在于,包括:合约调用模块:提供合约调用功能用于交易;交易查询模块:从交易队列中获取交易哈希,通过交易哈希查询交易结果;交易推送模块:将推送队列中交易哈希的对应交易结果,回调给发起交易的微服务。2.根据权利要求1所述的面向存证场景的区块链前置服务实现系统,其特征在于,在区块链上需要调用合约的交易包括:改变变量状态的send型交易和查看变量状态的call型交易;在发送send型交易后,通过区块链返回交易哈希,并将返回的交易哈希记录在数据库和交易队列中,用以查询和推送此次调用合约的结果。3.根据权利要求1所述的面向存证场景的区块链前置服务实现系统,其特征在于,在交易查询时,若交易查询失败,则重复进行交易查询动作,若重复查询该交易5次后仍查询失败,则进行报错处理;若交易查询成功,则更新该交易的交易哈希对应的数据库记录,然后将该交易的交易哈希放入推送队列。4.根据权利要求1所述的面向存证场景的区块链前置服务实现系统,其特征在于,在交易哈希被放入推送队列后,按顺序逐条取出交易哈希,查询数据库中对应的记录,将对应结果进行推送。5.根据权利要求4所述的面向存证场景的区块链前置服务实现系统,其特征在于,在推送过程中,若因网络延迟或者回调微服务故障造成推送失败时,则进行延迟处理,然后将交易哈希重新放入推送队列进行推送;若连续推送3次后仍推送失败,则进行报错处理;若推送成功,则更新交易推送状态。6.一种面向存...

【专利技术属性】
技术研发人员:黄劼王盛义盛卓星吴创黄可刘远博
申请(专利权)人:上海宝信软件股份有限公司
类型:发明
国别省市:

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

1