CN112434114B - 电子票据处理方法、装置、介质及电子设备 - Google Patents
电子票据处理方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN112434114B CN112434114B CN202110104836.6A CN202110104836A CN112434114B CN 112434114 B CN112434114 B CN 112434114B CN 202110104836 A CN202110104836 A CN 202110104836A CN 112434114 B CN112434114 B CN 112434114B
- Authority
- CN
- China
- Prior art keywords
- block chain
- node
- request
- bill
- billing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/04—Billing or invoicing
Abstract
本申请属于区块链技术领域,具体涉及一种电子票据处理方法、电子票据处理装置、计算机可读介质以及电子设备。该方法包括:响应于开具电子票据的第一开票请求,从区块链网络维护的多条票据区块链中选取目标区块链,并获取所述目标区块链的区块链标识;将携带所述第一开票请求和所述区块链标识的第二开票请求发送至所述区块链网络中的共识节点,以使所述共识节点对所述第二开票请求进行共识认证;当所述共识认证的认证结果为认证通过时,对所述电子票据进行上链处理,以将所述电子票据保存至所述目标区块链上。该方法可以提高电子票据的处理效率,而且可以提高电子票据的数据安全性和数据处理的可靠性。
Description
技术领域
本申请属于区块链技术领域,具体涉及一种电子票据处理方法、电子票据处理装置、计算机可读介质以及电子设备。
背景技术
电子票据是基于电子化处理手段形成的票据,例如可以包括电子化形式的发票、支票、汇票、存单、债券、股票、国库券等等。电子票据可以与传统的实体化票据一样可以进行票据开具和票据流转等行为。相比于传统的实体化票据,电子票据具有内容修改便利、节省资源的优点。然而,随着电子票据的数据量不断增大以及业务内容不断丰富,处理电子票据的业务系统仍然存在处理效率低、可靠性差等问题。
发明内容
本申请的目的在于提供一种电子票据处理方法、电子票据处理装置、计算机可读介质以及电子设备,至少在一定程度上克服相关技术中存在的电子票据的处理效率低、可靠性差等技术问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种电子票据处理方法,该方法包括:响应于开具电子票据的第一开票请求,从区块链网络维护的多条票据区块链中选取目标区块链,并获取所述目标区块链的区块链标识;将携带所述第一开票请求和所述区块链标识的第二开票请求发送至所述区块链网络中的共识节点,以使所述共识节点对所述第二开票请求进行共识认证;当所述共识认证的认证结果为认证通过时,对所述电子票据进行上链处理,以将所述电子票据保存至所述目标区块链上。
根据本申请实施例的一个方面,提供一种电子票据处理装置,该装置包括:选取模块,被配置为响应于开具电子票据的第一开票请求,从区块链网络维护的多条票据区块链中选取目标区块链,并获取所述目标区块链的区块链标识;认证模块,被配置为将携带所述第一开票请求和所述区块链标识的第二开票请求发送至所述区块链网络中的共识节点,以使所述共识节点对所述第二开票请求进行共识认证;上链模块,被配置为当所述共识认证的认证结果为认证通过时,对所述电子票据进行上链处理,以将所述电子票据保存至所述目标区块链上。
在本申请的一些实施例中,基于以上技术方案,所述选取模块包括:节点选取单元,被配置为在所述区块链网络中选取用于处理所述第一开票请求的票据开具节点;集合获取单元,被配置为获取所述票据开具节点上存储的区块链集合,所述区块链集合包括所述区块链网络维护的多条票据区块链中的部分区块链或者全部区块链;区块链选取单元,被配置为从所述区块链集合中选取一条区块链作为目标区块链。
在本申请的一些实施例中,基于以上技术方案,所述节点选取单元包括:账户获取子单元,被配置为获取所述第一开票请求中携带的在所述开票客户端上登录的开票账户;集群查询子单元,被配置为根据所述开票账户查询与所述开票客户端通信连接的包括一个或者多个区块链节点的节点集群;均衡调度子单元,被配置为对所述节点集群进行负载均衡调度以从所述节点集群中选取用于处理所述第一开票请求的票据开具节点。
在本申请的一些实施例中,基于以上技术方案,所述均衡调度子单元包括:关键字获取子单元,被配置为获取与所述第一开票请求相对应的请求关键字,所述请求关键字为针对所述第一开票请求生成的随机数、发起所述第一开票请求的时间戳或者所述开票客户端的网络地址;哈希处理子单元,被配置为对所述请求关键字进行哈希处理,得到与所述第一开票请求相对应的请求哈希值;节点选取子单元,被配置为根据所述请求哈希值在所述节点集群中选取用于处理所述第一开票请求的票据开具节点。
在本申请的一些实施例中,基于以上技术方案,所述关键字获取子单元包括:候选关键字获取子单元,被配置为获取与所述第一开票请求相对应的多个候选关键字,所述候选关键字包括针对所述第一开票请求生成的一个或者多个随机数、发起所述第一开票请求的时间戳以及所述开票客户端的网络地址;关键字随机选取子单元,被配置为从所述多个候选关键字中随机选取一个关键字作为与所述第一开票请求相对应的请求关键字。
在本申请的一些实施例中,基于以上技术方案,所述节点选取子单元包括:节点编号获取子单元,被配置为获取所述节点集群中的各个区块链节点的节点编号;取模运算子单元,被配置为将所述请求哈希值对所述节点集群中的区块链节点的节点数量进行取模运算,得到数值小于所述节点数量的请求编号;编号匹配子单元,被配置为在所述节点集群中选取节点编号与所述请求编号相匹配的区块链节点作为用于处理所述第一开票请求的票据开具节点。
在本申请的一些实施例中,基于以上技术方案,所述节点选取子单元包括:网络地址获取子单元,被配置为获取所述节点集群中的各个区块链节点的网络地址,并对所述网络地址进行哈希处理得到所述区块链节点的节点哈希值;数值匹配子单元,被配置为根据所述请求哈希值与所述节点哈希值的数值关系在所述节点集群中选取用于处理所述第一开票请求的票据开具节点。
在本申请的一些实施例中,基于以上技术方案,所述装置还包括:请求解析模块,被配置为对所述第一开票请求进行解析处理以得到所述第一开票请求中携带的开票数据,所述开票数据包括开票账户、接收账户以及所述电子票据的票据内容;信息查询模块,被配置为根据所述区块链标识查询所述共识节点上保存的所述目标区块链的账户注册信息;账户检测模块,被配置为根据所述账户注册信息检测所述开票账户和所述接收账户是否为所述目标区块链的注册账户;账户处理模块,被配置为若所述开票账户和所述接收账户中的任意一个账户不是所述目标区块链的注册账户,则在所述目标区块链上为所述开票账户和/或所述接收账户注册账户,或者创建同时注册所述开票账户和所述接收账户的新增区块链并将所述新增区块链确定为目标区块链。
在本申请的一些实施例中,基于以上技术方案,所述上链模块包括:第一请求解析单元,被配置为对所述第一开票请求进行解析处理以得到所述第一开票请求中携带的开票数据,所述开票数据包括开票账户、接收账户以及所述电子票据的票据内容;数据关联单元,被配置为将开票数据与所述区块链标识进行关联后保存至所述共识节点的区块缓存区域中;数据上链单元,被配置为当满足预设的区块上链条件时,将所述区块缓存区域中保存的与所述区块链标识相关联的数据打包为新生成区块,并将所述新生成区块链接至所述目标区块链上。
在本申请的一些实施例中,基于以上技术方案,所述装置还包括:票据流转模块,被配置为响应于针对所述电子票据的票据流转请求,根据所述区块链标识对所述电子票据的票据流转数据进行上链处理,以将所述票据流转数据保存至所述目标区块链上。
在本申请的一些实施例中,基于以上技术方案,所述票据流转模块包括:第二请求解析单元,被配置为对所述票据流转请求进行解析处理以得到所述票据流转请求中携带的票据流转数据,所述票据流转数据包括转出账户、转入账户、所述电子票据的票据内容、所述目标区块链的区块链标识以及所述电子票据在所述目标区块链上的区块高度;合法性验证单元,被配置为根据所述区块链标识,在所述目标区块链上对所述电子票据的票据流转数据进行合法性验证;流转数据上链单元,被配置为当所述合法性验证的验证结果为验证通过时,对所述电子票据的票据流转数据进行上链处理,以将所述票据流转数据保存至所述目标区块链上。
在本申请的一些实施例中,基于以上技术方案,所述装置还包括:区块头广播模块,被配置为将所述电子票据所在的新生成区块的区块头广播至所述区块链网络,以将所述新生成区块的区块头保存至所述区块链网络中的各个区块链节点上;区块检测模块,被配置为响应于所述区块链节点中的目标节点向所述共识节点发送的针对所述新生成区块的区块检测请求,在所述共识节点上检测与所述新生成区块相关的关联账户是否为所述目标节点的授权账户;区块体发送模块,被配置为当检测到所述关联账户是所述目标节点的授权账户时,将所述新生成区块的区块体发送至所述目标节点,以通过所述目标节点将所述新生成区块中保存的电子票据发送至登录所述授权账户的目标客户端。
根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的电子票据处理方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的电子票据处理方法。
根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的电子票据处理方法。
在本申请实施例提供的技术方案中,通过同时配置多条票据区块链,可以将电子票据的流转业务数据分散在多条票据区块链上进行存储,并且通过将电子票据与票据区块链的区块链标识进行关联可以维持一个电子票据始终在一条票据区块链上进行流转,而无需在多条票据区块链之间进行数据互通,避免了跨链通信的问题,因此不仅可以提高电子票据的处理效率,而且可以提高电子票据的数据安全性和数据处理的可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了应用本申请技术方案的区块链系统架构框图。
图2示意性地示出了本申请实施例中的区块链的组成结构。
图3示出了本申请实施例在一应用场景中的电子票据流转过程示意图。
图4示出了本申请一个实施例中的电子票据处理方法的步骤流程图。
图5示出了本申请一个实施例中选取目标区块链的步骤流程图。
图6示出了本申请一个实施例中选取票据开具节点的步骤流程图。
图7示出了本申请一个实施例中对节点集群进行负载均衡调度的步骤流程图。
图8示出了本申请实施例在一应用场景中的区块链网络的网络结构示意图。
图9示出了本申请实施例在一应用场景中进行票据流转的流程图。
图10示出了本申请实施例在另一应用场景中进行票据流转的流程图。
图11示意性地示出了本申请实施例提供的电子票据处理装置的结构框图。
图12示意性示出了适于用来实现本申请实施例的电子设备的计算机系统结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示意性地示出了应用本申请技术方案的区块链系统架构框图。
如图1所示,区块链系统100可以包括至少一个客户端110和区块链网络120,区块链网络120包括至少一个节点设备121。客户端110可以是智能手机、平板电脑、笔记本电脑、台式电脑等各种电子设备。节点设备121可以是终端设备或者服务器等任意形式的电子设备,例如节点设备121可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群,还可以是提供云计算服务的云服务器。
在区块链网络120中,每个节点设备121在进行正常工作时可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据。为了保证信息互通,各个节点设备121之间可以存在信息连接,各个节点设备121相互可以通过信息连接进行信息传输。例如,当区块链网络120中的任意节点设备121接收到输入信息,并将输入信息在区块链网络120中进行广播时,区块链网络120中的其他节点设备可以根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储。
区块链网络120中的各个节点设备121上可以存储一条相同的区块链(BlockChain)。区块链是一种按照时间顺序将数据区块以顺序相连的方式组合而成的链式数据结构,也是以密码学方式保证数据不可篡改和不可伪造的分布式数据库。图2示意性地示出了本申请实施例中的区块链的组成结构。如图2所示,区块链由多个顺次连接的区块组成,每当有新的数据需要写入区块链时,这些数据会汇总到一个新生成的区块中,新生成的区块将被链接至区块链的末端,通过共识算法可以保证每个节点设备121上新增的区块是完全相同的。在每个区块的区块体中记录了当前区块的数据,同时在其区块头中保存与之相连的前一区块的哈希值(Hash),若前一区块中的交易数据发生变化,那么当前区块的哈希值也将随之改变。因此,上传至区块链网络中的数据难以被篡改,可以提高共享数据的可靠性。
以电子发票的流转场景为例,发票流转过程中主要会涉及提供服务或者商品的商家、消费者个人、消费者供职的企业以及企业所在地区的税务部门等业务主体,这些业务主体可以在区块链网络上注册成为区块链节点或者通过登录客户端与对应的区块链节点进行数据通信。
图3示出了本申请实施例在一应用场景中的电子票据流转过程示意图。如图3所示,在电子票据流转的业务场景中,商家301可以向消费者302开具对应业务内容的电子发票。消费者302在取得电子发票后,可以将该电子发票转移至企业303以对相应的业务费用进行报销。企业303可以继续将电子发票转移给所在区域的税务部门304,以便对相应税务进行申报或者抵扣。在这一电子发票的流转过程中,各个业务主体在进行电子发票的处理过程中,均可以将相应的处理结果以交易的形式上传至区块链,从而在区块链上完成电子发票的流转。
由于一条区块链的性能有限,如果将所有的电子发票处理过程都在一条区块链上进行处理,将会影响票据流转业务的处理效率,对于区块链节点的存储性能也有较高的要求。如果将一条区块链拆分成多条区块链,虽然可以在一定程度上缓解各个区块链节点的数据存储压力、提高数据处理效率,但这又会导致不同区块链之间消息无法互通的问题。在一些相关技术中,为了实现业务数据的互通,可以在每条区块链上都设置具有权威性的公共账户,以公共账户作为媒介对电子发票的诞生、报销、抵扣等一系列操作在不同的区块链上流转。然而,引入公共账户的处理方式存在信任危机的问题,相当于公共账户可以随意开票,和区块链的去中心化属性相矛盾,影响了电子票据业务处理的安全性和可靠性。
针对相关技术中存在的问题,本申请实施例在区块链网络中同时维护多条区块链,并且为每条区块链分配一个区块链标识,每个区块链节点上可以维护部分或者全部的区块链。当一张电子发票在进行上链存储时,可以将该电子发票与存储该电子发票的区块链的区块链标识进行关联处理,后续针对该电子发票的所有发票处理过程都将携带其所在区块链的区块链标识,从而将该电子发票的完整处理信息均在同一条区块链上进行保存,既可以通过多条区块链对业务进行分流,同时又避免了多条区块链进行跨链通信的数据安全问题。
需要说明的是,本申请的各个实施例中主要以电子发票作为电子票据的示例对应用场景做出说明,但本申请实施例可以应用于其他任意的电子票据流转场景中,本申请实施例对此不作特殊限定。
下面结合具体实施方式对本申请实施例中的电子票据的处理方法、电子票据的处理装置、计算机可读介质以及电子设备等技术方案做出详细说明。
图4示出了本申请一个实施例中的电子票据处理方法的步骤流程图,该电子票据处理方法可以由图1所示的客户端110执行,或者可以由图1所示的区块链网络中节点设备121执行,也可以由包括客户端110和节点设备121的区块链系统执行。如图4所示,该电子票据处理方法主要可以包括如下的步骤S410至步骤S430。
步骤S410:响应于开具电子票据的第一开票请求,从区块链网络维护的多条票据区块链中选取目标区块链,并获取目标区块链的区块链标识。
在用于处理电子票据的区块链网络上可以同时维护多条票据区块链,同时可以为每条票据区块链分配具有唯一性的区块链标识(ID)。区块链网络是由电子票据业务处理中涉及的各个业务主体对应的节点设备组成的节点网络,每个节点设备上可以存储部分或者全部的票据区块链。其中,有些节点设备上存储票据区块链的完整数据,包括票据区块链上的每个区块的区块头和区块体;另一些节点设备上可以存储票据区块链的简要数据,例如仅存储票据区块链上的每个区块的区块头。以电子发票流转的应用场景为例,对应于税务部门的节点设备需要存储票据区块链的完整数据,以便对电子发票进行准确核验;除了税务部门以外的其他业务主体,如商家、消费者或者企业,可以在对应的节点设备上存储票据区块链的简要数据,在不影响电子发票正常流转的情况下,降低节点设备的数据存储量。
步骤S420:将携带第一开票请求和区块链标识的第二开票请求发送至区块链网络中的共识节点,以使共识节点对第二开票请求进行共识认证。
共识节点上保存有部分票据区块链或者全部票据区块链的完整数据,本申请实施例可以将区块链网络中的所有区块链节点作为共识节点,也可以选取其中一部分区块链节点作为共识节点。实现共识认证的机制例如可以包括工作量证明(Proof of Work,PoW)、权益证明(Proof of Stake,PoS)、股份授权证明(Delegated Proof of Stake,DPoS)、消逝时间量证明(Proof of Elapsed Time,PoET)等等。
在本申请的一个实施例中,共识节点可以是在区块链网络中指定或者选取的若干数量的区块链节点,例如在电子发票的流转场景中,区块链网络的共识节点可以是各个不同区域和不同等级的税务部门对应的节点设备。本申请一个实施例中可以使用基于一致性算法(如Raft)和拜占庭容错算法(如Bft)的共识认证算法进行共识认证,该共识认证算法包括了请求(Requst)、添加实体(Append Entity)、追加响应(Append Response)、确认(Commit)和反馈(Reply)共五个认证阶段。
在请求阶段,发起第一开票请求的客户端(Client)或者与该客户端进行数据通信的区块链节点可以将携带第一开票请求和区块链标识的第二开票请求发送至区块链网络上处于领导地位的主节点A。处于领导地位的主节点A可以是从多个预先设定的多个共识节点中指定或者选举产生的一个共识节点。在添加实体阶段,主节点A可以将第二开票请求对应的共识内容或者对第二开票请求进行数据处理后生成的中间数据广播至其他的未处于领导地位的共识节点,如跟从节点B、跟从节点C、跟从节点D等等。在本申请实施例中,共识节点的数量为(3f+1)个,其中包括一个主节点和3f个跟从节点。在追加响应阶段,各个跟从节点可以将接收到的共识内容广播至区块链网络中的其他共识节点,当一个跟从节点接收到至少2f个其他共识节点所广播的共识内容,并且这至少(2f+1)个共识节点的共识内容一致时,该跟从节点可以进入到确认阶段,并可以在确认阶段将确认结果发送至主节点A。在反馈阶段,当有(2f+1)个共识节点向主节点A发送确认结果后,可以判定确认通过,主节点A可以向客户端发送代表认证通过的反馈信息。
步骤S430:当共识认证的认证结果为认证通过时,对电子票据进行上链处理,以将电子票据保存至目标区块链上。
共识节点上可以存储部分或者全部票据区块链的完整数据,当电子票据通过共识认证后,共识节点可以根据区块链标识将包含该电子票据的区块链接至目标区块链上,实现对电子票据的上链存储。
在本申请的一个实施例中,共识节点可以维护一个区块缓存区域,当一个电子票据通过共识认证后,可以将该电子票据与区块链标识进行关联处理后保存在区块缓存区域中。在满足预设的区块上链条件时,可以将区块缓存区域中保存的数据按照区块链标识进行上链处理,从而将对应于不同区块链标识的电子票据打包为新生成区块,并进一步将新生成区块链接至目标区块链。
在申请的一个实施例中,共识节点可以维护按照区块链标识划分的多个区块缓存区域。针对每一个票据区块链,共识节点都将为其维护一个区块缓存区域,用于保存待上链的数据。举例而言,区块链网络上包括N条票据区块链,那么共识节点上将会根据N条票据区块链的区块链标识配置与之对应的N个区块缓存区域。
在本申请的一个实施例中,对电子票据进行上链处理的方法可以包括:对第一开票请求进行解析处理以得到第一开票请求中携带的开票数据,开票数据包括开票账户、接收账户以及电子票据的票据内容;将开票数据与区块链标识进行关联后保存至共识节点的区块缓存区域中;当满足预设的区块上链条件时,将区块缓存区域中与所述区块链标识相关联的数据打包为新生成区块,并将新生成区块链接至目标区块链上。
区块生成条件例如可以包括时间条件和数据量条件中的一个或者多个。举例而言,本申请实施例可以预先设置区块生成周期,以固定的时间间隔产生新的区块并将其上链;或者可以预先设置数据量阈值,当区块缓存区域中的业务数据的数据量达到该数据量阈值时,便可以产生新的区块并将其上链。
在本申请实施例提供的电子票据的处理方法中,通过同时配置多条票据区块链,可以将电子票据的流转业务数据分散在多条票据区块链上进行存储,并且通过将电子票据与票据区块链的区块链标识进行关联可以维持一个电子票据始终在一条票据区块链上进行流转,而无需在多条票据区块链之间进行数据互通,避免了跨链通信的问题,因此不仅可以提高电子票据的处理效率,而且可以提高电子票据的数据安全性和数据处理的可靠性。
另外,本申请实施例可以将多条票据区块链分别布局在不同的区块链节点上,即区块链网络中的一些区块链节点可以维护区块链网络的一部分票据区块链,另一些区块链节点则维护另一部分票据区块链,从而可以提高电子票据数据上链的并行度。在进行电子票据处理时,也可以基于负载均衡的原则选择合适的区块链节点,使得多条票据区块链的性能尽可能接近。
由于区块链网络中维护由多条票据区块链,并且各条票据区块链可能由不同的区块链节点进行存储和维护处理,当用户通过业务客户端发起开具电子票据的业务请求时,可以在多个区块链节点中选择一个节点进行业务处理,然后可以具体从多条票据区块链中选择一条区块链作为目标区块链进行电子票据的数据上链处理。
图5示出了本申请一个实施例中选取目标区块链的步骤流程图。如图5所示,在以上实施例的基础上,步骤S410中的从区块链网络维护的多条票据区块链中选取目标区块链,可以包括如下的步骤S510至步骤S530。
步骤S510:在区块链网络中选取用于处理第一开票请求的票据开具节点。
用户可以通过终端设备上安装的业务客户端向一个或者多个区块链节点进行账户绑定并进行授权,当用户在业务客户端发起开具电子票据的第一开票请求时,可以预先从账户绑定并授权的区块链节点中选取一个节点作为票据开具节点。在一些可选的实施方式中,用户可以直接指定票据开具节点,也可以采用随机选取的方式确定票据开具节点,或者也可以根据各个区块链节点的活跃状态,通过负载均衡的方式向用户推荐票据开具节点。
步骤S520:获取票据开具节点上存储的区块链集合,区块链集合包括区块链网络维护的多条票据区块链中的部分区块链或者全部区块链。
在区块链网络的每个区块链节点上均可以存储并维护一个区块链集合,在选定票据开具节点后,本步骤可以获取该票据开具节点上存储的区块链集合,该区块链集合表示当前的票据开具节点可以进行数据维护的票据区块链。在本申请实施例中,区块链网络中的区块链节点按照区块链的完整程度可以分为两种类型,一种类型的区块链节点上存储包括有全部票据区块链的区块链集合,而另一种类型的区块链节点上存储仅包括部分票据区块链的区块链集合。通过配置两种不同类型的区块链节点,既可以保证数据存储的完整性,又可以避免数据的过度冗余,降低部分区块链节点的数据存储负担,提高数据处理效率。
步骤S530:从区块链集合中选取一条区块链作为目标区块链。
在票据开具节点上,可以实时监测并更新区块链集合中每条票据区块链的最新数据存储状态,例如可以监测每条票据区块链的区块链长度以及每条票据区块链上最新区块的上链时间。在此基础上,本申请实施例可以根据预设的选取规则结合监测数据从区块链集合中选取一条区块链作为目标区块链。例如,本申请实施例可以选取区块链长度最短的一条票据区块链作为目标区块链,以便保持各条票据区块链的数据存储的均衡性;本申请实施例也可以选取最新区块上链时间距离当前时刻时间最长的一条票据区块链作为目标区块链,在各条票据区块链的区块产生时间基本一致的情况下,可以保证第一开票请求对应的电子票据可以尽早地完成数据打包和区块上链。又例如,本申请实施例可以为区块链长度和最新区块的上链时间分配不同的数据权重,基于数据权重计算各条票据区块链的选取分数,进一步根据选取分数确定目标区块链,从而可以选取区块链长度和上链时间都适宜的票据区块链作为目标区块链。另外,在一些应用场景下,也可以采用随机选取票据区块链的方式确定目标区块链,本申请实施例对此不作特殊限定。
图6示出了本申请一个实施例中选取票据开具节点的步骤流程图。如图6所示,在以上实施例的基础上,步骤S510中的在区块链网络中选取用于处理第一开票请求的票据开具节点可以包括如下的步骤S610至步骤S630。
步骤S610:获取第一开票请求中携带的在开票客户端上登录的开票账户。
用户在开票客户端上发起开具发票的业务请求时,会根据自身的开票账户生成第一开票请求。例如,消费者在酒店或者其他消费场所进行消费后,可以要求商家为相应的商品或者服务开具电子发票,此时商家可以在开票客户端上登录开票账户,并根据消费者提供的开票信息填写对应的接收账户以及发票内容,从而生成第一开票请求。
步骤S620:根据开票账户查询与开票客户端通信连接的包括一个或者多个区块链节点的节点集群。
本申请实施例可以为开票账户分配区块链节点以形成与开票客户端通信连接的包括若干数量区块链节点的节点集群。在一个可选的实施方式中,可以根据开票账户的账户类型分配不同类型和不同数量的区块链节点,例如可以将开票账户分类为普通账户和特殊账户,其中普通账户可以分配一定数量的区块链节点,而特殊账户可以分配相对更多的区块链节点。
步骤S630:对节点集群进行负载均衡调度以从节点集群中选取用于处理第一开票请求的票据开具节点。
负载均衡(Load balancing)是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。负载均衡算法可以分为两类:静态负载均衡算法和动态负载均衡算法。静态负载均衡算法包括:轮询(Round Robin),比率(Ratio),优先权(Priority)。动态负载均衡算法包括:最少连接数(Least Connection),最快响应速度(Fastest),观察方法(Observed),预测法(Predictive),动态性能分配(Dynamic Ratio-APM),动态服务器补充(Dynamic Server Act.),服务质量(QoS),服务类型(ToS),规则模式。
在一个可选的实施方式中,本申请实施例可以采用一致性哈希算法对节点集群进行负载均衡调度。图7示出了本申请一个实施例中对节点集群进行负载均衡调度的步骤流程图。如图7所示,在以上实施例的基础上,步骤S630中的对节点集群进行负载均衡调度以从节点集群中选取用于处理第一开票请求的票据开具节点,可以包括如下的步骤S710至步骤S730。
步骤S710:获取与第一开票请求相对应的请求关键字,请求关键字为针对第一开票请求生成的随机数、发起第一开票请求的时间戳或者开票客户端的网络地址。
在一个可选的实施方式中,本申请实施例可以获取与第一开票请求相对应的多个候选关键字,候选关键字包括针对第一开票请求生成的一个或者多个随机数、发起第一开票请求的时间戳以及开票客户端的网络地址。然后从多个候选关键字中随机选取一个关键字作为与第一开票请求相对应的请求关键字。基于随机选取的方式可以为同一个开票账户的开票请求提供不同的节点选取方案,增加选取方式的鲁棒性。
步骤S720:对请求关键字进行哈希处理,得到与第一开票请求相对应的请求哈希值。
哈希算法是把任意长度的输入通过散列算法变换成固定长度的散列值输出的转换方法,常用的哈希算法例如可以包括MD5和SHA256。
步骤S730:根据请求哈希值在节点集群中选取用于处理第一开票请求的票据开具节点。
在一个可选的实施方式中,本申请实施例可以先获取节点集群中的各个区块链节点的节点编号;再将请求哈希值对节点集群中的区块链节点的节点数量进行取模运算,得到数值小于节点数量的请求编号;然后在节点集群中选取节点编号与请求编号相匹配的区块链节点作为用于处理第一开票请求的票据开具节点。举例而言,节点集群中包括(N+1)个区块链节点,各个区块链节点的节点编号依次为0~N,本申请实施例可以将请求哈希值对(N+1)进行取模运算,可以得到数值范围为0~N的请求编号,从而基于请求编号确定对应节点编号的区块链节点为处理第一开票请求的票据开具节点。
在一个可选的实施方式中,本申请实施例可以获取节点集群中的各个区块链节点的网络地址,并对网络地址进行哈希处理得到区块链节点的节点哈希值;然后根据请求哈希值与节点哈希值的数值关系在节点集群中选取用于处理第一开票请求的票据开具节点。举例而言,本申请实施例可以比较请求哈希值与各个节点哈希值的数值差,将与请求哈希值数值差最小的节点哈希值确定为目标哈希值,并将目标哈希值对应的区块链节点确定为处理第一开票请求的票据开具节点。
在本申请的一个实施例中,每个票据区块链上均可以对全部的业务账户进行注册,以便相关用户可以在各个不同的票据区块链上进行业务数据的上链处理。在其他一些可选的实施方式中,各个票据区块链上也可以注册不同的业务账户,并根据需要对不同的业务账户与已有的票据区块链进行匹配或者根据业务账户创建新的票据区块链。
在本申请的一个实施例中,共识节点在对第二开票请求进行共识认证之前,可以对目标区块链上是否进行账户注册进行检测,具体可以包括:对第一开票请求进行解析处理以得到第一开票请求中携带的开票数据,开票数据包括开票账户、接收账户以及电子票据的票据内容;根据区块链标识查询共识节点上保存的目标区块链的账户注册信息;根据账户注册信息检测开票账户和接收账户是否为目标区块链的注册账户;若开票账户和接收账户中的任意一个账户不是目标区块链的注册账户,则在目标区块链上为开票账户和/或接收账户注册账户,或者创建同时注册开票账户和接收账户的新增区块链并将新增区块链确定为目标区块链。
在本申请的一个实施例中,在将电子票据保存至目标区块链上之后,还可以根据用户请求进行票据流转处理,具体可以包括:响应于针对电子票据的票据流转请求,根据区块链标识对电子票据的票据流转数据进行上链处理,以将票据流转数据保存至目标区块链上。
在本申请的一个实施例中,根据区块链标识对电子票据的票据流转数据进行上链处理的方法可以包括:对票据流转请求进行解析处理以得到票据流转请求中携带的票据流转数据,票据流转数据包括转出账户、转入账户、电子票据的票据内容、目标区块链的区块链标识以及电子票据在目标区块链上的区块高度;根据区块链标识,在目标区块链上对电子票据的票据流转数据进行合法性验证;当合法性验证的验证结果为验证通过时,对电子票据的票据流转数据进行上链处理,以将票据流转数据保存至目标区块链上。
举例而言,当消费者接收到经过上链存储的电子发票后,可以向消费者供职的企业发起报销程序,此时消费者登录账户作为转出账户,而企业所在账户为转入账户,该电子发票将由消费者的个人账户流转至企业账户,从而由企业对电子发票对应的消费金额进行报销。又例如,企业在向税务部门进行报税或者发起税费抵扣时,企业所在账户为转出账户,而税务部门所在账户为转入账户,电子发票将由企业账户流转至税务部门账户,从而由税务部门进行报税处理或者进行税费抵扣。以上电子票据的流转过程均在同一个票据区块链上进行数据存储,针对该电子票据的所有流转程序也都需要携带该票据区块链的区块链标识。
在本申请的一个实施例中,在将电子票据保存至目标区块链上之后,可以将上链结果广播至区块链网络以使区块链网络中的各个区块链节点对相关上链结果进行同步共享。具体地,本申请实施例可以将电子票据所在的新生成区块的区块头广播至区块链网络,以将新生成区块的区块头保存至区块链网络中的各个区块链节点上;响应于区块链节点中的目标节点向共识节点发送的针对新生成区块的区块检测请求,在共识节点上检测与新生成区块相关的关联账户是否为目标节点的授权账户;当检测到关联账户是目标节点的授权账户时,将新生成区块的区块体发送至目标节点,以通过目标节点将新生成区块中保存的电子票据发送至登录授权账户的目标客户端。
在本申请实施例中,在完成电子票据的上链存储后,可以仅将新生成区块的区块头在区块链网络中进行广播,以保持各个区块链节点上存储票据区块链的一致性。只有当某一个区块链节点,即目标节点,得到关联账户的授权时,才可以将新生成区块的区块体向其进行发送共享。其中,关联账户可以是该电子票据的开票账户、接收账户以及票据流转中涉及的转出账户和转入账户。
图8示出了本申请实施例在一应用场景中的区块链网络的网络结构示意图。如图8所示,在该应用场景中,提供商品或者消费服务的商家可以通过开票客户端与商家spv节点相连,消费者个人可以通过平台客户端与平台spv节点相连,该平台客户端和平台spv节点对应的业务平台例如可以是基于社交应用程序或者支付应用程序搭建的票据业务平台,消费者供职的企业可以与企业spv节点绑定,共识节点例如可以是税务部门的服务器。spv节点上仅存储票据区块链的区块头,而共识节点上存储有包括区块头和区块体在内的完整的票据区块链。路由单元可以布局在企业侧,或者可以布局在税务部门侧,用于针对相关票据流转请求在企业侧和税务部门侧之间进行转发、限流和安全控制。
图9示出了本申请实施例在一应用场景中进行票据流转的流程图。在该应用场景中,区块链网络中维护由多条票据区块链,商家账户、消费者个人账户以及企业账户在每条票据区块链上均进行了注册,消费者个人通过平台客户端向平台spv节点进行业务授权。
如图9所示,该应用场景涉及商家向消费者个人上链开票,消费者个人可以将电子发票转移给企业进行报销。如图9所示,该电子票据的流转过程包括如下步骤。
步骤S901:商家通过开票客户端向商家spv节点发送第一开票请求,第一开票请求包括开票账户(即商家账户,如酒店/餐馆的注册账户),接收账户(即个人账户),发票内容。
步骤S902:由于每条链上都有所有的账户,商家spv节点从当前所有区块链中随机(或者基于负载均衡原则)选择一条区块链,商家spv节点生成第二开票请求,第二开票请求包括选择的区块链的区块链id+第一开票请求。
步骤S903:商家spv节点将第二开票请求发送至共识节点。
步骤S904:共识节点进行共识,若合法则生成发票交易并上链至区块链id对应的区块链,此时发票交易包括选择的区块链的区块链id,开票账户(即商家账户),接收账户(即个人账户),发票内容。即完成了商家账户向个人账户上链开票。
步骤S905:平台spv节点接收到新生成区块的通知,平台spv节点向共识节点提交检测申请,共识节点检测当前生成的区块是否与平台spv节点授权的个人账户有关,若有关,将新生成区块发送给平台spv节点,平台spv节点将新区块的区块内容发送至平台客户端。
步骤S906:在平台客户端上对发票进行图形化展示。
步骤S907:个人通过平台客户端向平台spv节点发送发票转移请求,转移请求包括转移账户(即个人账户),接收账户(即企业账户),发票在区块链上的哪一个区块,发票内容,区块链id。平台spv节点将转移请求发送至共识节点。
步骤S908:共识节点可以通过区块链id在对应的区块链上验证发票的合法性。若合法,生成发票交易并上链至区块链id对应的区块链,即发票转移成功。
图10示出了本申请实施例在另一应用场景中进行票据流转的流程图。在该应用场景中,区块链网络中维护由多条票据区块链,消费者个人通过平台客户端向平台spv节点进行业务授权。通过路由单元来确定当前开票的区块链,不需要所有的关联账户在每条区块链上都进行注册。
如图10所示,该应用场景涉及商家向消费者个人上链开票,消费者个人可以将电子发票转移给企业进行报销。如图10所示,该电子票据的流转过程包括如下步骤。
步骤S1001:商家通过开票客户端向商家spv节点发送第一开票请求,第一开票请求包括开票账户(即商家账户,如酒店/餐馆的注册账户),接收账户(即个人账户),发票内容。
步骤S1002:商家spv节点直接将第一开票请求转发给路由单元。
步骤S1003:路由单元从当前所有区块链中随机(或者基于负载均衡原则)选择一条区块链,记录下所选择的区块链的区块链id。然后路由单元将第二开票请求发送至共识节点,第二开票请求包括选择的区块链的区块链id+第一开票请求。共识节点检测开票账户(即商家账户)以及接收账户(即个人账户)是否在选择的区块链上注册了;如果没有注册,则实时地进行账户注册;或者共识节点重新创建一条新的区块链,在新创建的区块链上注册商家账户以及个人账户,记录下选择的区块链的区块链id。
步骤S1004:共识节点进行共识,若合法则生成发票交易并上链至区块链id对应的区块链,此时发票交易包括选择的区块链的区块链id,开票账户(即商家账户),接收账户(即个人账户),发票内容。即完成了商家账户向个人账户上链开票。
步骤S1005:平台spv节点接收到新生成区块的通知,平台spv节点向共识节点提交检测申请,共识节点检测当前生成的区块是否与平台spv节点授权的个人账户有关,若有关,将新生成区块发送给平台spv节点,平台spv节点将新区块的区块内容发送至平台客户端。
步骤S1006:在平台客户端上对发票进行图形化展示。
步骤S1007:个人通过平台客户端向平台spv节点发送发票转移请求,转移请求包括转移账户(即个人账户),接收账户(即企业账户),发票在区块链上的哪一个区块,发票内容,区块链id。平台spv节点将转移请求发送至共识节点。
步骤S1008:共识节点可以通过区块链id在对应的区块链上验证发票的合法性。若合法,生成发票交易并上链至区块链id对应的区块链,即发票转移成功。
利用本申请实施例提供的技术方案,开票方可以基于负载均衡的原则选择当前开票的区块链节点,使得多条区块链的性能尽可能的接近;后续对发票进行报销、抵扣等发票流转时,都是在开票的那一条区块链上,这样共识节点可以在开票的那一条区块链上进行发票验证,从而不需要跨链,也不需要引入第三方(例如,公共账户等)。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的电子票据处理方法。图11示意性地示出了本申请实施例提供的电子票据处理装置的结构框图。如图11所示,电子票据处理装置1100主要可以包括:选取模块1110,被配置为响应于开具电子票据的第一开票请求,从区块链网络维护的多条票据区块链中选取目标区块链,并获取所述目标区块链的区块链标识;认证模块1120,被配置为将携带所述第一开票请求和所述区块链标识的第二开票请求发送至所述区块链网络中的共识节点,以使所述共识节点对所述第二开票请求进行共识认证;上链模块1130,被配置为当所述共识认证的认证结果为认证通过时,对所述电子票据进行上链处理,以将所述电子票据保存至所述目标区块链上。
在本申请的一些实施例中,基于以上各实施例,所述选取模块1110包括:节点选取单元,被配置为在所述区块链网络中选取用于处理所述第一开票请求的票据开具节点;集合获取单元,被配置为获取所述票据开具节点上存储的区块链集合,所述区块链集合包括所述区块链网络维护的多条票据区块链中的部分区块链或者全部区块链;区块链选取单元,被配置为从所述区块链集合中选取一条区块链作为目标区块链。
在本申请的一些实施例中,基于以上各实施例,所述节点选取单元包括:账户获取子单元,被配置为获取所述第一开票请求中携带的在所述开票客户端上登录的开票账户;集群查询子单元,被配置为根据所述开票账户查询与所述开票客户端通信连接的包括一个或者多个区块链节点的节点集群;均衡调度子单元,被配置为对所述节点集群进行负载均衡调度以从所述节点集群中选取用于处理所述第一开票请求的票据开具节点。
在本申请的一些实施例中,基于以上各实施例,所述均衡调度子单元包括:关键字获取子单元,被配置为获取与所述第一开票请求相对应的请求关键字,所述请求关键字为针对所述第一开票请求生成的随机数、发起所述第一开票请求的时间戳或者所述开票客户端的网络地址;哈希处理子单元,被配置为对所述请求关键字进行哈希处理,得到与所述第一开票请求相对应的请求哈希值;节点选取子单元,被配置为根据所述请求哈希值在所述节点集群中选取用于处理所述第一开票请求的票据开具节点。
在本申请的一些实施例中,基于以上各实施例,所述关键字获取子单元包括:候选关键字获取子单元,被配置为获取与所述第一开票请求相对应的多个候选关键字,所述候选关键字包括针对所述第一开票请求生成的一个或者多个随机数、发起所述第一开票请求的时间戳以及所述开票客户端的网络地址;关键字随机选取子单元,被配置为从所述多个候选关键字中随机选取一个关键字作为与所述第一开票请求相对应的请求关键字。
在本申请的一些实施例中,基于以上各实施例,所述节点选取子单元包括:节点编号获取子单元,被配置为获取所述节点集群中的各个区块链节点的节点编号;取模运算子单元,被配置为将所述请求哈希值对所述节点集群中的区块链节点的节点数量进行取模运算,得到数值小于所述节点数量的请求编号;编号匹配子单元,被配置为在所述节点集群中选取节点编号与所述请求编号相匹配的区块链节点作为用于处理所述第一开票请求的票据开具节点。
在本申请的一些实施例中,基于以上各实施例,所述节点选取子单元包括:网络地址获取子单元,被配置为获取所述节点集群中的各个区块链节点的网络地址,并对所述网络地址进行哈希处理得到所述区块链节点的节点哈希值;数值匹配子单元,被配置为根据所述请求哈希值与所述节点哈希值的数值关系在所述节点集群中选取用于处理所述第一开票请求的票据开具节点。
在本申请的一些实施例中,基于以上各实施例,所述装置还包括:请求解析模块,被配置为对所述第一开票请求进行解析处理以得到所述第一开票请求中携带的开票数据,所述开票数据包括开票账户、接收账户以及所述电子票据的票据内容;信息查询模块,被配置为根据所述区块链标识查询所述共识节点上保存的所述目标区块链的账户注册信息;账户检测模块,被配置为根据所述账户注册信息检测所述开票账户和所述接收账户是否为所述目标区块链的注册账户;账户处理模块,被配置为若所述开票账户和所述接收账户中的任意一个账户不是所述目标区块链的注册账户,则在所述目标区块链上为所述开票账户和/或所述接收账户注册账户,或者创建同时注册所述开票账户和所述接收账户的新增区块链并将所述新增区块链确定为目标区块链。
在本申请的一些实施例中,基于以上各实施例,所述上链模块包括:第一请求解析单元,被配置为对所述第一开票请求进行解析处理以得到所述第一开票请求中携带的开票数据,所述开票数据包括开票账户、接收账户以及所述电子票据的票据内容;数据关联单元,被配置为将开票数据与所述区块链标识进行关联后保存至所述共识节点的区块缓存区域中;数据上链单元,被配置为当满足预设的区块上链条件时,将所述区块缓存区域中保存的与所述区块链标识相关联的数据打包为新生成区块,并将所述新生成区块链接至所述目标区块链上。
在本申请的一些实施例中,基于以上各实施例,所述装置还包括:票据流转模块,被配置为响应于针对所述电子票据的票据流转请求,根据所述区块链标识对所述电子票据的票据流转数据进行上链处理,以将所述票据流转数据保存至所述目标区块链上。
在本申请的一些实施例中,基于以上各实施例,所述票据流转模块包括:第二请求解析单元,被配置为对所述票据流转请求进行解析处理以得到所述票据流转请求中携带的票据流转数据,所述票据流转数据包括转出账户、转入账户、所述电子票据的票据内容、所述目标区块链的区块链标识以及所述电子票据在所述目标区块链上的区块高度;合法性验证单元,被配置为根据所述区块链标识,在所述目标区块链上对所述电子票据的票据流转数据进行合法性验证;流转数据上链单元,被配置为当所述合法性验证的验证结果为验证通过时,对所述电子票据的票据流转数据进行上链处理,以将所述票据流转数据保存至所述目标区块链上。
在本申请的一些实施例中,基于以上各实施例,所述装置还包括:区块头广播模块,被配置为将所述电子票据所在的新生成区块的区块头广播至所述区块链网络,以将所述新生成区块的区块头保存至所述区块链网络中的各个区块链节点上;区块检测模块,被配置为响应于所述区块链节点中的目标节点向所述共识节点发送的针对所述新生成区块的区块检测请求,在所述共识节点上检测与所述新生成区块相关的关联账户是否为所述目标节点的授权账户;区块体发送模块,被配置为当检测到所述关联账户是所述目标节点的授权账户时,将所述新生成区块的区块体发送至所述目标节点,以通过所述目标节点将所述新生成区块中保存的电子票据发送至登录所述授权账户的目标客户端。
本申请各实施例中提供的电子票据处理装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。
图12示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
需要说明的是,图12示出的电子设备的计算机系统1200仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图12所示,计算机系统1200包括中央处理器1201(Central Processing Unit,CPU),其可以根据存储在只读存储器1202(Read-Only Memory,ROM)中的程序或者从存储部分1208加载到随机访问存储器1203(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器1203中,还存储有系统操作所需的各种程序和数据。中央处理器1201、在只读存储器1202以及随机访问存储器1203通过总线1204彼此相连。输入/输出接口1205(Input /Output接口,即I/O接口)也连接至总线1204。
以下部件连接至输入/输出接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至输入/输出接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理器1201执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (15)
1.一种电子票据处理方法,其特征在于,所述方法包括:
响应于开具电子票据的第一开票请求,根据预设的选取规则结合监测数据,从区块链网络维护的多条票据区块链中选取目标区块链,并获取所述目标区块链的区块链标识,所述监测数据包括所述票据区块链的最新数据存储状态;
将携带所述第一开票请求和所述区块链标识的第二开票请求发送至所述区块链网络中的共识节点,以使所述共识节点对所述第二开票请求进行共识认证;
当所述共识认证的认证结果为认证通过时,所述共识节点根据所述区块链标识将包含所述电子票据的区块链接至目标区块链上。
2.根据权利要求1所述的电子票据处理方法,其特征在于,所述从区块链网络维护的多条票据区块链中选取目标区块链,包括:
在所述区块链网络中选取用于处理所述第一开票请求的票据开具节点;
获取所述票据开具节点上存储的区块链集合,所述区块链集合包括所述区块链网络维护的多条票据区块链中的部分区块链或者全部区块链;
从所述区块链集合中选取一条区块链作为目标区块链。
3.根据权利要求2所述的电子票据处理方法,其特征在于,所述在所述区块链网络中选取用于处理所述第一开票请求的票据开具节点,包括:
获取所述第一开票请求中携带的在所述开票客户端上登录的开票账户;
根据所述开票账户查询与所述开票客户端通信连接的包括一个或者多个区块链节点的节点集群;
对所述节点集群进行负载均衡调度以从所述节点集群中选取用于处理所述第一开票请求的票据开具节点。
4.根据权利要求3所述的电子票据处理方法,其特征在于,所述对所述节点集群进行负载均衡调度以从所述节点集群中选取用于处理所述第一开票请求的票据开具节点,包括:
获取与所述第一开票请求相对应的请求关键字,所述请求关键字为针对所述第一开票请求生成的随机数、发起所述第一开票请求的时间戳或者所述开票客户端的网络地址;
对所述请求关键字进行哈希处理,得到与所述第一开票请求相对应的请求哈希值;
根据所述请求哈希值在所述节点集群中选取用于处理所述第一开票请求的票据开具节点。
5.根据权利要求4所述的电子票据处理方法,其特征在于,所述获取与所述第一开票请求相对应的请求关键字,包括:
获取与所述第一开票请求相对应的多个候选关键字,所述候选关键字包括针对所述第一开票请求生成的一个或者多个随机数、发起所述第一开票请求的时间戳以及所述开票客户端的网络地址;
从所述多个候选关键字中随机选取一个关键字作为与所述第一开票请求相对应的请求关键字。
6.根据权利要求4所述的电子票据处理方法,其特征在于,所述根据所述请求哈希值在所述节点集群中选取用于处理所述第一开票请求的票据开具节点,包括:
获取所述节点集群中的各个区块链节点的节点编号;
将所述请求哈希值对所述节点集群中的区块链节点的节点数量进行取模运算,得到数值小于所述节点数量的请求编号;
在所述节点集群中选取节点编号与所述请求编号相匹配的区块链节点作为用于处理所述第一开票请求的票据开具节点。
7.根据权利要求4所述的电子票据处理方法,其特征在于,所述根据所述请求哈希值在所述节点集群中选取用于处理所述第一开票请求的票据开具节点,包括:
获取所述节点集群中的各个区块链节点的网络地址,并对所述网络地址进行哈希处理得到所述区块链节点的节点哈希值;
根据所述请求哈希值与所述节点哈希值的数值关系在所述节点集群中选取用于处理所述第一开票请求的票据开具节点。
8.根据权利要求1所述的电子票据处理方法,其特征在于,所述共识节点在对所述第二开票请求进行共识认证之前,所述方法还包括:
对所述第一开票请求进行解析处理以得到所述第一开票请求中携带的开票数据,所述开票数据包括开票账户、接收账户以及所述电子票据的票据内容;
根据所述区块链标识查询所述共识节点上保存的所述目标区块链的账户注册信息;
根据所述账户注册信息检测所述开票账户和所述接收账户是否为所述目标区块链的注册账户;
若所述开票账户和所述接收账户中的任意一个账户不是所述目标区块链的注册账户,则在所述目标区块链上为所述开票账户和/或所述接收账户注册账户,或者创建同时注册所述开票账户和所述接收账户的新增区块链并将所述新增区块链确定为目标区块链。
9.根据权利要求1所述的电子票据处理方法,其特征在于,所述共识节点根据所述区块链标识将包含所述电子票据的区块链接至目标区块链上,包括:
对所述第一开票请求进行解析处理以得到所述第一开票请求中携带的开票数据,所述开票数据包括开票账户、接收账户以及所述电子票据的票据内容;
将开票数据与所述区块链标识进行关联后保存至所述共识节点的区块缓存区域中;
当满足预设的区块上链条件时,将所述区块缓存区域中保存的与所述区块链标识相关联的数据打包为新生成区块,并将所述新生成区块链接至所述目标区块链上。
10.根据权利要求1至9中任意一项所述的电子票据处理方法,其特征在于,在将所述电子票据保存至所述目标区块链上之后,所述方法还包括:
响应于针对所述电子票据的票据流转请求,根据所述区块链标识对所述电子票据的票据流转数据进行上链处理,以将所述票据流转数据保存至所述目标区块链上。
11.根据权利要求10所述的电子票据处理方法,其特征在于,所述根据所述区块链标识对所述电子票据的票据流转数据进行上链处理,以将所述票据流转数据保存至所述目标区块链上,包括:
对所述票据流转请求进行解析处理以得到所述票据流转请求中携带的票据流转数据,所述票据流转数据包括转出账户、转入账户、所述电子票据的票据内容、所述目标区块链的区块链标识以及所述电子票据在所述目标区块链上的区块高度;
根据所述区块链标识,在所述目标区块链上对所述电子票据的票据流转数据进行合法性验证;
当所述合法性验证的验证结果为验证通过时,对所述电子票据的票据流转数据进行上链处理,以将所述票据流转数据保存至所述目标区块链上。
12.根据权利要求1至9中任意一项所述的电子票据处理方法,其特征在于,在将所述电子票据保存至所述目标区块链上之后,所述方法还包括:
将所述电子票据所在的新生成区块的区块头广播至所述区块链网络,以将所述新生成区块的区块头保存至所述区块链网络中的各个区块链节点上;
响应于所述区块链节点中的目标节点向所述共识节点发送的针对所述新生成区块的区块检测请求,在所述共识节点上检测与所述新生成区块相关的关联账户是否为所述目标节点的授权账户;
当检测到所述关联账户是所述目标节点的授权账户时,将所述新生成区块的区块体发送至所述目标节点,以通过所述目标节点将所述新生成区块中保存的电子票据发送至登录所述授权账户的目标客户端。
13.一种电子票据处理装置,其特征在于,包括:
选取模块,被配置为响应于开具电子票据的第一开票请求,根据预设的选取规则结合监测数据,从区块链网络维护的多条票据区块链中选取目标区块链,并获取所述目标区块链的区块链标识,所述监测数据包括所述票据区块链的最新数据存储状态;
认证模块,被配置为将携带所述第一开票请求和所述区块链标识的第二开票请求发送至所述区块链网络中的共识节点,以使所述共识节点对所述第二开票请求进行共识认证;
上链模块,被配置为当所述共识认证的认证结果为认证通过时,所述共识节点根据所述区块链标识将包含所述电子票据的区块链接至目标区块链上。
14.一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至12中任意一项所述的电子票据处理方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12中任意一项所述的电子票据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110104836.6A CN112434114B (zh) | 2021-01-26 | 2021-01-26 | 电子票据处理方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110104836.6A CN112434114B (zh) | 2021-01-26 | 2021-01-26 | 电子票据处理方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112434114A CN112434114A (zh) | 2021-03-02 |
CN112434114B true CN112434114B (zh) | 2021-07-02 |
Family
ID=74697228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110104836.6A Active CN112434114B (zh) | 2021-01-26 | 2021-01-26 | 电子票据处理方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112434114B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222724B (zh) * | 2021-05-25 | 2022-06-21 | 支付宝(杭州)信息技术有限公司 | 票据处理方法及装置 |
CN113610586B (zh) * | 2021-08-18 | 2024-01-23 | 国网数字科技控股有限公司 | 发票申请数据补偿方法及装置 |
CN114884962B (zh) * | 2022-04-29 | 2024-03-26 | 蚂蚁区块链科技(上海)有限公司 | 负载均衡方法及装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109345194A (zh) * | 2018-09-12 | 2019-02-15 | 北京东港瑞宏科技有限公司 | 一种电子票据流转系统 |
CN110599266A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 电子票据数据处理方法、装置、计算机设备和存储介质 |
CN110633323A (zh) * | 2019-09-16 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 业务数据存储方法、装置、存储介质和计算机设备 |
CN110738502A (zh) * | 2019-10-10 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 一种票据处理方法、装置及存储介质装置 |
CN111476617A (zh) * | 2020-04-03 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11049115B2 (en) * | 2019-07-31 | 2021-06-29 | Advanced New Technologies Co., Ltd. | Blockchain-based bill write-off method, apparatus, electronic device, and storage medium |
-
2021
- 2021-01-26 CN CN202110104836.6A patent/CN112434114B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109345194A (zh) * | 2018-09-12 | 2019-02-15 | 北京东港瑞宏科技有限公司 | 一种电子票据流转系统 |
CN110599266A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 电子票据数据处理方法、装置、计算机设备和存储介质 |
CN110633323A (zh) * | 2019-09-16 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 业务数据存储方法、装置、存储介质和计算机设备 |
CN110738502A (zh) * | 2019-10-10 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 一种票据处理方法、装置及存储介质装置 |
CN111476617A (zh) * | 2020-04-03 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112434114A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112434114B (zh) | 电子票据处理方法、装置、介质及电子设备 | |
US11150271B2 (en) | Method or system for management of a device for energy consumption by applying blockchain protocol | |
US10567156B2 (en) | Blockchain-based unexpected data detection | |
CN112100460B (zh) | 基于区块链的网络页面存证方法、装置、介质及电子设备 | |
CN107767267B (zh) | 一种虚拟资源的转移方法和装置 | |
CN110930149A (zh) | 在区块链网络中确定记账节点的方法、代理节点和介质 | |
CN110458562B (zh) | 票据报销方法、装置和设备及计算机存储介质 | |
KR102254809B1 (ko) | 블록체인에 기반한, 자원 공유에 따른 보상 제공하는 분산형 컴퓨팅 자원 공유 시스템 및 컴퓨팅 장치 | |
US11295402B2 (en) | Blockchain-based property repair | |
US10693646B2 (en) | Event execution using a blockchain approach | |
US20190354968A1 (en) | Utilization Management Method, Utilization Management System, and Node | |
US20200167770A1 (en) | Blockchain implementation across multiple organizations | |
CN112085504B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN112488777B (zh) | 一种票据处理的方法及相关装置 | |
CN112883116A (zh) | 基于区块链的供应链金融AI DaaS算法仓库平台 | |
Sawa | Blockchain technology outline and its application to field of power and energy system | |
US20190303882A1 (en) | Blockchain-based property utilization | |
CN111931220B (zh) | 区块链网络的共识处理方法、装置、介质及电子设备 | |
CN110704531A (zh) | 基于区块链的用电客户信用管理方法及系统 | |
CN112632629A (zh) | 基于区块链的投票管理方法、装置、介质及电子设备 | |
US20210110384A1 (en) | Ad Hoc Neural Network for Proof of Wallet | |
Król et al. | Shard scheduler: object placement and migration in sharded account-based blockchains | |
CN110955724A (zh) | 基于区块链的数据处理方法、装置、节点设备及存储介质 | |
CN112487491A (zh) | 一种区块链系统的控制方法及相关装置 | |
Tkachuk et al. | Towards efficient privacy and trust in decentralized blockchain-based peer-to-peer renewable energy marketplace |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40041006 Country of ref document: HK |