G06Q30/04 G06Q20/38 G06Q40/04
1.一种智能合约生成区块链电子发票代码号码的方法,其特征在于,所述方法包括:
根据预设规则,获取税局分配的发票代码以及发票号码号段;
建立开票申请交易;所述建立开票申请交易包括,调用智能合约开票申请接口,对所述开票申请交易进行开票规则验证通过后,生成电子发票提交网络共识;达成网络共识后,将所述开票申请交易写入区块链账本;所述开票申请交易在所述区块链账本上有连续唯一的顺序。
建立开票提交交易;所述建立开票提交交易包括,调用智能合约开票提交接口,获取区块链账本上所述开票申请交易的有序的连续唯一的顺序号;将所述顺序号与所述发票代码以及发票号码号段进行一对一映射,生成唯一的发票代码,以及相同发票代码下的连续唯一的发票号码并进行网络共识验证。
2.根据权利要求1所述的方法,其特征在于,所述根据预设规则,获取税局分配的发票代码以及发票号码的号段包括:
调用智能合约号源分配接口把税局分配的发票代码以及发票号码的号段写入区块链。
3.根据权利要求1所述的方法,其特征在于,所述顺序号通过所述智能合约开票提交接口遍历检索所述区块链账本上所有的开票申请交易后计算获得。
4.根据权利要求1所述的方法,其特征在于:所述建立开票申请交易以及所述建立开票提交交易可以并发进行。
5.根据权利要求1所述的方法,其特征在于:可以向区块链中的任意节点请求所述建立开票申请交易以及所述建立开票提交交易。
6.一种智能合约生成区块链电子发票代码号码的系统,其特征在于,所述系统包括:
获取预设参数单元,所述获取预设参数单元一端与开票提交交易单元相连接;所述获取预设参数单元用于根据预设规则,获取税局分配的发票代码以及发票号码号段,并将所述发票代码以及发票号码号段发送至所述开票提交交易单元;
开票申请交易单元,所述开票申请交易单元用于调用智能合约开票申请接口,对所述开票申请交易进行开票规则验证通过后,生成电子发票提交网络共识;达成网络共识后,将所述开票申请交易写入区块链账本;所述开票申请交易在所述区块链账本上有连续唯一的顺序;
开票提交交易单元,所述开票申请交易单元用于调用智能合约开票提交接口,获取区块链账本上所述开票申请交易的有序的连续唯一的顺序号;将所述顺序号与所述发票代码以及发票号码号段进行一对一映射,生成唯一的发票代码,以及相同发票代码下的连续唯一的发票号码。
7.根据权利要求6所述的系统,其特征在于,所述开票申请交易单元包括:
开票规则验证模块,所述开票规则验证模块一端与网络共识模块相连接;所述开票规则验证模块用于调用智能合约开票申请接口,对所述开票申请交易进行开票规则验证,验证通过后生成电子发票提交至所述网络共识模块;
网络共识模块,所述网络共识模块一端与所述区块链账本相连接;所述网络共识模块用于对所述所述开票申请的电子发票进行网络共识验证,达成网络共识后,将所述开票申请交易写入区块链账本;所述开票申请交易在所述区块链账本上有连续唯一的顺序。
8.根据权利要求6所述的系统,其特征在于,所述顺序号通过所述智能合约开票提交接口遍历检索所述区块链账本上所有的开票申请交易后计算获得。
9.根据权利要求6所述的系统,其特征在于,所述开票申请交易单元以及所述开票提交交易单元可以并发运行。
本发明涉及电子发票生成领域,更具体地,涉及一种智能合约生成区块链电子发票代码号码的方法及系统。
基于区块链技术的电子发票应用,可以实现电子发票流转过程中的数据共享,解决电子发票重复报销入账的问题。基于区块链的电子发票应用有两种,一种是区块链外生成电子发票,调用区块链智能合约的数据写入接口把电子发票写入区块链;另外一种是由区块链的智能合约生成电子发票,直接写入区块链。
链外生成的电子发票,通常是税控设备生成,由税控设备保证发票的不可伪造;区块链智能合约生成的电子发票,经过全网共识后,写入区块链,区块链的共识机制和密码技术保证发票的不可伪造,不可篡改;智能合约生成电子发票,全程数字化,无需硬件设备,节约了硬件设备成本,更适合于小微企业。
基于区块链的电子发票应用都是基于区块链联盟链技术。目前应用最广泛的区块链联盟链架构是开源的Hyperledger Fabric架构。Fabric的交易流程如下:
1、用户向背书节点发送交易提案;
2、背书节点执行智能合约,仿真交易,输出包含读写集的仿真结果;
3、背书节点对仿真结果进行背书签名,并返回给用户;
4、用户收到背书签名后,验证签名的正确性,然后向排序节点发送交易请求;
5、排序节点对交易排序后,打包交易产生区块;
6、排序节点向全网广播区块;
7、网络中的节点收到区块后,验证背书签名是否正确,是否满足背书策略,验证读集里的kv值是否和当前世界状态里的kv值一致,如果一致,就把交易标志为有效,用写集里的kv值更新世界状态里的kv值,并把区块写入账本。如果上述验证不通过,则把交易标志为无效交易,不更新世界状态,区块写入账本。
在上述流程中,如果用户并发地发送交易提案,去更新世界状态的相同的key的值,由于交易仿真时的读记录集和交易入账时的读记录集不一致,会导致所有并发更新相同key的交易中,只有第一个写入账本的交易可以成功,其余交易都会失败。
当我们使用fabric的世界状态的一个key来记录当前的发票号码时,用户调用智能合约进行开票时,读取key的当前值作为发票号码,并把当前值加一,生成下一个发票号码,更新key值。如果用户并发调用智能合约进行开票,就存在上述所说的交易失败问题。
为了解决背景技术存在的现有技术不能并发地生成连续唯一的发票号码的问题,本发明提供了一种智能合约生成区块链电子发票代码号码的方法,所述方法包括:
根据预设规则,获取税局分配的发票代码以及发票号码号段;
建立开票申请交易;所述建立开票申请交易包括,调用智能合约开票申请接口,对所述开票申请交易进行开票规则验证通过后,生成电子发票提交网络共识;达成网络共识后,将所述开票申请交易写入区块链账本;所述开票申请交易在所述区块链账本上有连续唯一的顺序;
建立开票提交交易;所述建立开票提交交易包括,调用智能合约开票提交接口,获取区块链账本上所述开票申请交易的有序的连续唯一的顺序号;将所述顺序号与所述发票代码以及发票号码号段进行一对一映射,生成唯一的发票代码,以及相同发票代码下的连续唯一的发票号码并进行网络共识验证。
进一步的,所述根据预设规则,获取税局分配的发票代码以及发票号码的号段包括:
调用智能合约号源分配接口把税局分配的发票代码以及发票号码的号段写入区块链。
进一步的,所述顺序号通过所述智能合约开票提交接口遍历检索所述区块链账本上所有的开票申请交易后计算获得。
进一步的,所述建立开票申请交易以及所述建立开票提交交易可以并发进行。
进一步的,可以向区块链中的任意节点请求所述建立开票申请交易以及所述建立开票提交交易。
所述一种智能合约生成区块链电子发票代码号码的系统包括:
获取预设参数单元,所述获取预设参数单元一端与开票提交交易单元相连接;所述获取预设参数单元用于根据预设规则,获取税局分配的发票代码以及发票号码号段,并将所述发票代码以及发票号码号段发送至所述开票提交交易单元;
开票申请交易单元,所述开票申请交易单元用于调用智能合约开票申请接口,对所述开票申请交易进行开票规则验证通过后,生成电子发票提交网络共识;达成网络共识后,将所述开票申请交易写入区块链账本;所述开票申请交易在所述区块链账本上有连续唯一的顺序;
开票提交交易单元,所述开票申请交易单元用于调用智能合约开票提交接口,获取区块链账本上所述开票申请交易的有序的连续唯一的顺序号;将所述顺序号与所述发票代码以及发票号码号段进行一对一映射,生成唯一的发票代码,以及相同发票代码下的连续唯一的发票号码。
进一步的,所述开票申请交易单元包括:
开票规则验证模块,所述开票规则验证模块一端与网络共识模块相连接;所述开票规则验证模块用于调用智能合约开票申请接口,对所述开票申请交易进行开票规则验证,验证通过后生成电子发票提交至所述网络共识模块;
网络共识模块,所述网络共识模块一端与所述区块链账本相连接;所述网络共识模块用于对所述所述开票申请的电子发票进行网络共识验证,达成网络共识后,将所述开票申请交易写入区块链账本;所述开票申请交易在所述区块链账本上有连续唯一的顺序。
进一步的,所述顺序号通过所述智能合约开票提交接口遍历检索所述区块链账本上所有的开票申请交易后计算获得。
进一步的,所述开票申请交易单元以及所述开票提交交易单元可以并发运行。
本发明的有益效果为:本发明的技术方案,给出了一种智能合约生成区块链电子发票代码号码的方法及系统,所述方法包括:获取税局分配的发票代码以及发票号码号段;建立开票申请交易,调用智能合约开票申请接口进行开票规则验证通过后,生成电子发票提交网络共识;达成网络共识后,将所述开票申请交易写入区块链账本;建立开票提交交易,调用智能合约开票提交接口,获取区块链账本上所述开票申请交易的连续唯一顺序号;将所述顺序号与所述发票代码以及发票号码号段进行一对一映射,生成唯一的发票代码,以及相同发票代码下的连续唯一的发票号码;本发明解决了智能合约并发地产生连续唯一的发票号码的技术难点,使得智能合约可以链上生成电子发票,完成区块链电子发票的链上开票、冲红、作废、报销、归集、归档、查询的全生命周期管理;本发明可以向区块链中的任意节点请求开票申请交易和开票提交交易,实现去中心化开票,有助于节约企业的税控设备硬件成本,减轻企业负担,有助于税局对电子发票全生命周期的监管。
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为本发明具体实施方式的一种智能合约生成区块链电子发票代码号码的方法的流程图;
图2为本发明具体实施方式的一种智能合约生成区块链电子发票代码号码的系统的结构图。
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为本发明具体实施方式的一种智能合约生成区块链电子发票代码号码的方法的流程图。如图1所示,所述方法包括:
步骤110,根据预设规则,获取税局分配的发票代码以及发票号码号段;具体的,本实例中,所述根据预设规则,获取税局分配的发票代码以及发票号码的号段包括:调用智能合约号源分配接口把税局分配的发票代码以及发票号码的号段写入区块链,所述开票申请交易在区块链账本上有连续唯一的顺序。
步骤120,建立开票申请交易;调用智能合约开票申请接口,对所述开票申请交易进行开票规则进行验证,验证通过后,生成电子发票提交网络共识;
步骤130,网络共识验证并写入区块链账本;具体的,所述区块链的网络共识机制和密码技术保证发票的不可伪造、不可篡改,对所述开票申请交易达成网络共识后,将所述开票申请交易写入区块链账本。
步骤140,建立开票提交交易;调用智能合约开票提交接口,获取区块链账本上所述开票申请交易的有序的连续唯一的顺序号。
步骤150,生成发票代码以及发票号码;将所述顺序号与所述发票代码以及发票号码号段进行一对一映射,生成唯一的发票代码,以及相同发票代码下的连续唯一的发票号码并进行网络共识验证。
具体的,本实例中,开票申请顺序号是通过智能合约开票提交接口遍历账本计算获得的,任意节点计算得到的开票申请顺序号都是连续唯一的、一致的,因此由开票申请顺序号一对一映射得到的发票代码号码也是唯一的、一致的、去中心化的。
进一步的,由上述方法生成的发票代码号码,在用户可以并发地进行开票申请和开票提交;同时,在并发地进行开票申请和开票提交时,其在整个区块链上也是唯一的,完全去中心化的。
具体的,本实例中采用的区块链联盟链架构是开源的Hyperledger Fabric架构,所述Hyperledger Fabric架构具体交易流程在背景说明中已经详述。
图2为本发明具体实施方式的一种智能合约生成区块链电子发票代码号码的系统的结构图。如图2所示,所述系统包括:
获取预设参数单元1,所述获取预设参数单元1一端与开票提交交易单元3相连接;所述获取预设参数单元1用于根据预设规则,获取税局分配的发票代码以及发票号码号段,并将所述发票代码以及发票号码号段发送至所述开票提交交易单元3;
开票申请交易单元2,所述开票申请交易单元2用于调用智能合约开票申请接口,对所述开票申请交易进行开票规则验证通过后,生成电子发票提交网络共识;达成网络共识后,将所述开票申请交易写入区块链账本;所述开票申请交易在所述区块链账本上有连续唯一的顺序;
开票提交交易单元3,所述开票申请交易单元3用于调用智能合约开票提交接口,获取区块链账本上所述开票申请交易的有序的连续唯一的顺序号;将所述顺序号与所述发票代码以及发票号码号段进行一对一映射,生成唯一的发票代码,以及相同发票代码下的连续唯一的发票号码。
进一步的,所述开票申请交易单元2包括:
开票规则验证模块21,所述开票规则验证模块21一端与网络共识模块22相连接;所述开票规则验证模21块用于调用智能合约开票申请接口,对所述开票申请交易进行开票规则验证,验证通过后生成电子发票提交至所述网络共识模块22;
网络共识模块22,所述网络共识模块22一端与所述区块链账本相连接;所述网络共识模块22用于对所述所述开票申请的电子发票进行网络共识验证,达成网络共识后,将所述开票申请交易写入区块链账本;所述开票申请交易在所述区块链账本上有连续唯一的顺序。
进一步的,所述顺序号通过所述智能合约开票提交接口遍历检索所述区块链账本上所有的开票申请交易后计算获得。
进一步的,所述开票申请交易单元2以及所述开票提交交易单元3可以并发运行。
具体的,用户可以向区块链中的任意节点请求开票申请交易和开票提交交易,实现去中心化开票。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。本说明书中涉及到的步骤编号仅用于区别各步骤,而并不用于限制各步骤之间的时间或逻辑的关系,除非文中有明确的限定,否则各个步骤之间的关系包括各种可能的情况。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,在权利要求书中所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。
以上所述仅是本公开的具体实施方式,应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开精神的前提下,可以作出若干改进、修改、和变形,这些改进、修改、和变形都应视为落在本申请的保护范围内。
本文发布于:2023-04-13 11:32:55,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/86467.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |