面向存证场景的区块链前置服务系统与方法、终端、介质与流程

文档序号:32945200发布日期:2023-01-14 10:31阅读:42来源:国知局
面向存证场景的区块链前置服务系统与方法、终端、介质与流程

1.本发明涉及区块链技术领域,具体地,涉及一种面向存证场景的区块链前置服务系统与方法、终端、介质。


背景技术:

2.根据2020年中国信息通信研究院的报告,越来越多的实体经济垂直领域呈现出“区块链+”的发展格局和“脱虚向实”的良好势头。随着区块链应用落地加快推进,“区块链+”业务已经成为互联网骨干企业进军区块链行业的发展重点,在金融业务之外,积极部署互联网,朔源、供应链物流、数字资产、政务及公共服务,知识产权、法律、医疗等多领域的应用。
3.但是,区块链不同于传统数据库,使用区块链开发应用系统与传统系统会有较多差异,其中最重要的一点是智能合约的执行和其结果的获取。由于区块链上需要经过多方共识后才能确定一笔交易,企业开发应用时不能立刻获取智能合约执行结果,这极大的减慢了开发速度。
4.经过检索,专利文献cn107193672a公开了一种跨区块异步调用合约系统,该系统包括:分布式系统验证单元:包括一个或多个服务节点以及若干个验证节点,验证节点用于验证共识过的{tx};{tx}包括合约调用请求tx和支付请求tx;分布式合约执行单元:位于本地或验证单元远端,与验证单元之间通过预定义协议进行通讯,用以获取合约执行所需信息,并在合约执行完毕后,将结果返回至验证节点;合约执行缓存单元:包括用于接收来自验证节点的合约调用请求,发送请求至合约执行单元,接收合约执行结果,返回当前合约执行状态至验证节点,以实现合约的异步调用。该现有技术虽然能提高合约执行的并发量,但是不足之处在于并不能有效解决传统的存证系统在开发周期和可靠性上的不足。
5.因此,亟需研发设计一种能面向存证场景的区块链前置服务的方法与系统。


技术实现要素:

6.针对现有技术中的缺陷,本发明的目的是提供一种面向存证场景的区块链前置服务系统与方法、终端、介质,解决了传统的存证系统在开发周期、可靠性上的不足,有效地提升企业的开发效率,并且使开发的应用代码可复用。
7.根据本发明提供的一种面向存证场景的区块链前置服务系统,通过提供对智能合约信息、区块链信息和区块链账户信息的维护,并进行查询交易回执和推送交易结果。
8.优选地,包括:
9.调用智能合约模块:发送智能合约交易后,区块链返回交易哈希,返回的交易哈希记录在数据库和交易队列;
10.查询交易结果模块:从交易队列中取出交易哈希,通过交易哈希查询交易回执,查询成功后将交易哈希放入推送队列;
11.推送交易结果模块:将推送队列中交易哈希所对应的结果回调给发送交易时传入
的微服务地址。
12.优选地,查询交易结果模块如果通过交易哈希查询交易回执查询失败,则查询动作重复不超过预设限定次数。
13.优选地,推送交易模块将交易哈希被放入推送队列后,推送微服务将按顺序逐条取出交易哈希,查询数据库中对应的记录并将结果进行推送。
14.根据本发明提供的一种面向存证场景的区块链前置服务方法,包括如下步骤:
15.步骤s1:发送智能合约交易后,区块链返回交易哈希,返回的交易哈希记录在数据库和交易队列;
16.步骤s2:从交易队列中取出交易哈希,通过交易哈希查询交易回执,查询成功后将交易哈希放入推送队列;
17.步骤s3:将推送队列中交易哈希所对应的结果回调给发送交易时传入的微服务地址。
18.优选地,步骤s1包括如下步骤:
19.步骤s1.1:准备用以存证的数据,调用智能合约,返回代表存证数据的交易哈希,交易哈希是一种固定长度字符,是由哈希算法生成的随机数;
20.步骤s1.2:将返回的交易哈希记录在数据库中,新增交易记录;
21.步骤s1.3:将新增的交易记录放入交易队列中,用以查询和推送此次调用合约的结果。
22.优选地,步骤s2包括如下步骤:
23.步骤s2.1:从交易队列中取出交易哈希,通过交易哈希查询交易回执,判断是否查询成功,查询成功之后判断是否推送成功;
24.步骤s2.2:如果查询成功则更新交易查询状态,如果查询不成功则更新交易查询次数并放入交易队列,如果查询次数不超过预设限定次数即得到查询结果则进入更新交易查询状态,如果查询次数大于预设限定次数则查询失败;预设限定次数默认是5次。
25.步骤s2.3:查询成功之后进行推送,如果推送成功之后则更新交易推送状态,如果推送不成功则更新交易推送次数并放入推送队列。
26.优选地,步骤s3包括如下步骤:
27.步骤s3.1:如果推送不成功则更新交易推送次数并放入推送队列,如果放入推送队列后推送成功则更新交易推送状态;如果放入推送队列后推送不成功则继续推送;
28.步骤s3.2:如果放入推送队列后推送不成功,先更新交易推送次数继续放入推送队列;
29.步骤s3.3:如果交易推送次数不超过预设限定次数就推送成功则更新交易推送状态,如果交易推送次数大于预设限定次数则推送失败。预设限定次数默认是3次。
30.根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述的方法的步骤。
31.根据本发明提供的一种面向存证场景的区块链前置服务终端,包括上述的面向存证场景的区块链前置服务系统或者上述的存储有计算机程序的计算机可读存储介质。
32.与现有技术相比,本发明具有如下的有益效果:
33.1、本发明通过调用智能合约模块,查询交易结果模块和推送交易结果模块能够实
现自动查询区块链交易回执和推送结果的区块链前置服务。
34.2、本发明通过简化区块链开发流程,提供对智能合约信息,区块链信息,区块链账户信息的维护,同时提供了调用合约方法,查询交易回执,推送交易结果的完整流程服务,方便了应用程序与区块链的交互。
35.3、本发明通过自动查询交易回执,推送交易结果的完整流程的服务,可有效的解决传统的存证系统在开发周期、可靠性上的不足,有效地提升企业的开发效率,并且使开发的应用代码可复用。
36.4、本发明隔离了开发区块链应用技术与区块链本身的技术栈,可以通过任何支持微服务调用的软件技术实现微服务应用程序的开发。
37.5、本发明能够根据需要自行封装调用合约接口,开发回调微服务。
附图说明
38.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
39.图1为本发明中面向存证场景的区块链前置服务系统与方法的框架流程示意图。
具体实施方式
40.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
41.如图1所示,本发明提供了一种面向存证场景的区块链前置服务系统,包括:
42.调用智能合约模块:发送智能合约交易后,区块链返回交易哈希,返回的交易哈希记录在数据库和交易队列;区块链上的合约调用分为两种,一种是可以改变变量状态的send型交易,另外一种是查看变量状态的call型交易。发送send型交易后,区块链将会返回交易哈希,该模块将返回的交易哈希记录在数据库和交易队列中,用以查询和推送此次调用合约的结果。
43.查询交易结果模块:从交易队列中取出交易哈希,通过交易哈希查询交易回执,查询成功后将交易哈希放入推送队列;查询交易结果模块如果通过交易哈希查询交易回执查询失败,则查询动作重复不超过5次。如果查询成功,查询微服务将更新该条交易哈希对应的数据库记录,然后将该交易哈希放入推送队列。
44.推送交易结果模块:将推送队列中交易哈希所对应的结果回调给发送交易时传入的微服务id。推送交易模块将交易哈希被放入推送队列后,推送微服务将按顺序逐条取出交易哈希,查询数据库中对应的记录并将结果进行推送。如遇到网络问题或者回调微服务不可用时,将延迟一段时间,将交易哈希重新放入推送队列。
45.根据本发明提供的一种面向存证场景的区块链前置服务方法,包括如下步骤:
46.步骤s1:发送智能合约交易后,区块链返回交易哈希,返回的交易哈希记录在数据库和交易队列。
47.步骤s1.1:准备用以存证的数据,调用智能合约,返回代表存证数据的交易哈希,
交易哈希是一种固定长度字符,是由哈希算法生成的随机数;
48.步骤s1.2:将返回的交易哈希记录在数据库中,新增交易记录;
49.步骤s1.3:将新增的交易记录放入交易队列中,用以查询和推送此次调用合约的结果。步骤s2:从交易队列中取出交易哈希,通过交易哈希查询交易回执,查询成功后将交易哈希放入推送队列。
50.步骤s2.1:从交易队列中取出交易哈希,通过交易哈希查询交易回执,判断是否查询成功,查询成功之后判断是否推送成功;
51.步骤s2.2:如果查询成功则更新交易查询状态,如果查询不成功则更新交易查询次数并放入交易队列,如果查询次数不超过预设限定次数即得到查询结果则进入更新交易查询状态,如果查询次数大于预设限定次数则查询失败;预设限定次数默认是5次。
52.步骤s2.3:查询成功之后进行推送,如果推送成功之后则更新交易推送状态,如果推送不成功则更新交易推送次数并放入推送队列。
53.步骤s3:将推送队列中交易哈希所对应的结果回调给发送交易时传入的微服务接口。
54.步骤s3.1:如果推送不成功则更新交易推送次数并放入推送队列,如果放入推送队列后推送成功则更新交易推送状态;如果放入推送队列后推送不成功则继续推送;
55.步骤s3.2:如果放入推送队列后推送不成功,先更新交易推送次数继续放入推送队列;
56.步骤s3.3:如果交易推送次数不超过预设限定次数就推送成功则更新交易推送状态,如果交易推送次数大于预设限定次数则推送失败。预设限定次数默认是3次。
57.根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述的方法的步骤。
58.根据本发明提供的一种面向存证场景的区块链前置服务终端,包括上述的面向存证场景的区块链前置服务系统或者上述的存储有计算机程序的计算机可读存储介质。
59.本发明中基于区块链前置服务提供的功能,开发人员只需关注业务流程,极大的提升了开发效率。并且统一的合约、交易维护降低了开发过程中出现bug的频率。
60.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
61.在本技术的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。
62.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影
响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1