技术领域
[0001] 本
申请涉及
区块链技术领域,具体涉及一种交易分类方法、设备和存储介质。
背景技术
[0002] 区块链是一种去中心化的、不可篡改的、
分布式账本。全网中各个
节点保存数据的副本,并且通过共识机制来保证各节点数据的一致性。而在一些场景下,部分节点并不关注全部业务数据,对这些数据的处理成为了冗余工作。
[0003] 现有的公有链区块链项目,不能方便地在底层技术环节支持业务分离,而联盟链项目的代表Fabric,虽然设计了channel用于业务分离,但是配置过程复杂,既要处理channel的创建过程,也要处理每次新节点加入的过程,另外,channel与其自身系统特点强相关,也不便于扩展到其他区块链项目中使用。
发明内容
[0004] 鉴于
现有技术中的上述
缺陷或不足,期望提供一种实现业务隔离,减少节点对冗余数据的处理,保证区块链数据的完整性,同时易于理解、使用及扩展的交易分类方法、设备和存储介质。
[0005] 第一方面,本发明提供一种交易分类方法,第一区块链网络的各节点分别配置有对应的若干业务类型,第一区块链网络中的交易的交易哈希与业务类型相对应,方法包括:
[0006] 根据第一交易的交易哈希判断第一交易是否与本节点预配置的业务类型相匹配:是,则将第一交易打包至第一区块中;
[0007] 其中,第一区块的区块高度与业务类型相对应。
[0008] 第二方面,本发明还提供一种设备,包括一个或多个处理器和
存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各
实施例提供的交易分类方法。
[0009] 第三方面,本发明还提供一种存储有
计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的交易分类方法。
[0010] 本发明诸多实施例提供的交易分类方法、设备和存储介质通过根据第一交易的交易哈希判断第一交易是否与本节点预配置的业务类型相匹配:是,则将第一交易打包至第一区块中;其中,第一区块的区块高度与业务类型相对应的方法,实现业务隔离,减少节点对冗余数据的处理,保证区块链数据的完整性,同时易于理解、使用及扩展,为用户提供良好的用户体验。
[0011] 本发明一些实施例提供的交易分类方法、设备和存储介质进一步通过生成第一区块时,将上一个所打包交易的业务类型相同的区块的区块哈希写入当前区块的
区块头中的方法,优化了不同业务类型的区块数据的查询及处理,进一步优化了用户体验。
附图说明
[0012] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0013] 图1为本发明一实施例中交易分类场景的示意图。
[0014] 图2为本发明一实施例提供的一种交易分类方法的
流程图。
[0015] 图3为图2所示方法的一种优选实施方式中步骤S12的流程图。
[0016] 图4为图3所示方法的一种优选实施方式中步骤S122的流程图。
[0017] 图5为本发明一实施例提供的一种设备的结构示意图。
具体实施方式
[0018] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
[0019] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0020] 图1为本发明一实施例中交易分类场景的示意图。如图1所示,在本实施例中,第一区块链网络有四个节点,节点A、节点B、节点C及节点D,业务类型有3类,分别为1类业务、2类业务及3类业务;节点A配置了1类业务,节点B配置了2类业务,节点C配置了2类业务及3类业务,节点D配置了3类业务;第一区块链网络中接收到交易O,交易P,交易Q,其中,交易P及交易Q的交易哈希与1类业务的业务类型相对应,交易O的交易哈希与2类业务的业务类型相对应;区块的区块高度与业务类型相对应,创始区块为1类业务对应的区块,当前生成的区块Z为创始区块,节点A为区块Z的记账节点。以下结合图2对本发明提供的交易分类方法进行具体说明。
[0021] 图2为本发明一实施例提供的一种交易分类方法的流程图。如图2所示,在本实施例中,本发明提供一种交易分类方法,包括:
[0022] S12:根据第一交易的交易哈希判断第一交易是否与本节点预配置的业务类型相匹配:是,则将第一交易打包至第一区块中;
[0023] 其中,第一区块的区块高度与业务类型相对应。
[0024] 具体地,以图1所示应用场景为例,第一区块链网络中第一区块生成的规则为:重复“1类业务对应的区块—2类业务对应的区块—3类业务对应的区块”;节点打包交易的策略配置为:节点仅打包已配置的业务类型对应的交易哈希的交易;
[0025] 在步骤S12中,节点A根据交易O的交易哈希判断与本节点预配置的业务类型相匹配:否,则不将交易O打包至区块Z中;
[0026] 节点A根据交易P的交易哈希判断与本节点预配置的业务类型相匹配:是,则将交易P打包至区块Z中;
[0027] 节点A根据交易Q的交易哈希判断与本节点预配置的业务类型相匹配:是,则将交易Q打包至区块Z中;
[0028] 此时,由于节点仅打包已配置的业务类型对应的交易哈希的交易,此时节点B、节点C及节点D不参与交易的打包及区块的生成操作;节点A将交易P及交易Q打包至区块Z后,将区块Z向第一区块链网络的已配置1类业务的节点广播区块Z;区块Z经过共识后,向第一区块链网络的所有节点广播;节点B、节点C、节点D接收到区块Z后,将区块Z记录到链中。
[0029] 若生成某类业务对应的区块时,区块链网络中并没有收到与该类业务对应的交易哈希的交易,则生成空块。
[0030] 上述实施例对本发明提供的交易分类方法进行了详细的阐述,在更多实施例中,本发明提供的交易分类方法不以上述举例为限,还可以根据实际需求将业务类型的数量配置为任意正整数,节点配置的业务类型可以是1种,也可以是多种,第一区块生成的规则也可以根据实际需求配置,如交易中有众多都是1类业务的,可以将第一区块生成的规则配置为重复“1类业务对应的区块—1类业务对应的区块—1类业务对应的区块—2类业务对应的区块—3类业务对应的区块”,以及,将节点打包交易的策略配置为:节点仅打包已配置的业务类型及若干种业务类型对应的交易哈希的交易,均可实现相同的技术效果。
[0031] 上述实施例实现业务隔离,减少节点对冗余数据的处理,保证区块链数据的完整性,同时易于理解、使用及扩展,为用户提供良好的用户体验。
[0032] 图3为图2所示方法的一种优选实施方式中步骤S12的流程图。如图3所示,在一优选实施例中,步骤S12包括:
[0033] S122:将交易哈希与业务类型的总量取余得到第一数值;
[0034] S124:根据第一数值判断第一交易是否为本节点预配置的业务类型相匹配:是,则打包各第一交易并生成第一区块。
[0035] 具体地,以图1所示应用场景为例,交易O的交易哈希为……4321,交易P的交易哈希为……4320,交易Q的交易哈希为……4323,“……”的数字均为0;1类业务的业务类型为0,2类业务的业务类型为1,3类业务的业务类型为2;
[0036] 节点A在接收到交易O时:
[0037] 在步骤S122中,节点A将交易O的交易哈希与业务类型的总量取余得到第一数值,第一数值为1;
[0038] 在步骤S124中,节点A根据第一数值判断与本节点预配置的业务类型相匹配,由于交易O计算得到的第一数值为1,本节点预配置的业务类型为0,因此判断结果为否,则不将交易O打包至区块Z中;
[0039] 节点A在接收到交易P时:
[0040] 在步骤S122中,节点A将交易P的交易哈希与业务类型的总量取余得到第一数值,第一数值为0;
[0041] 在步骤S124中,节点A根据第一数值判断与本节点预配置的业务类型相匹配,由于交易P计算得到的第一数值为0,本节点预配置的业务类型为0,因此判断结果为是,则将交易P打包至区块Z中;
[0042] 节点A在接收到交易Q时:
[0043] 在步骤S122中,节点A将交易Q的交易哈希与业务类型的总量取余得到第一数值,第一数值为0;
[0044] 在步骤S124中,节点A根据第一数值判断与本节点预配置的业务类型相匹配,由于交易Q计算得到的第一数值为0,本节点预配置的业务类型为0,因此判断结果为是,则将交易Q打包至区块Z中。
[0045] 图4为图3所示方法的一种优选实施方式中步骤S122的流程图。如图4所示,在一优选实施例中,步骤S122包括:
[0046] S1222:将交易哈希的若干位与业务类型的总量取余得到第一数值。
[0047] 具体地,以图1所示应用场景为例,交易O的交易哈希为……4321,交易P的交易哈希为……4320,交易Q的交易哈希为……4323,“……”的数字均为0;交易哈希的若干位为交易哈希的后四位;
[0048] 节点A在接收到交易O时:
[0049] 在步骤S1222中,节点A将交易O的交易哈希的后四位与业务类型的总量取余得到第一数值,第一数值为1;
[0050] 节点A在接收到交易P时:
[0051] 在步骤S1222中,节点A将交易P的交易哈希的后四位与业务类型的总量取余得到第一数值,第一数值为0;
[0052] 节点A在接收到交易Q时:
[0053] 在步骤S1222中,节点A将交易Q的交易哈希的后四位与业务类型的总量取余得到第一数值,第一数值为0。
[0054] 在更多实施例中,还可以根据实际需求取交易哈希的若干数值的位(如,取交易哈希的后5位),也可以取交易哈希的若干不连续的位(如,取交易哈希的倒数第1、3、5、7位),可实现相同的技术效果。
[0055] 在一优选实施例中,生成第一区块时,将上一个所打包交易的业务类型相同的区块的区块哈希写入当前区块的区块头中。具体地,以图1所示应用场景为例,第一区块链网络中第一区块生成的规则为:重复“1类业务对应的区块—2类业务对应的区块—3类业务对应的区块”,节点打包交易的策略配置为:节点仅打包已配置的业务类型对应的交易哈希的交易,当前生成的区块Y为区块高度为3的区块,节点A为区块Y的记账节点。
[0056] 创始区块的区块高度为0,节点A生成创始区块后闲置,仅接收经共识的区块高度为1的区块及区块高度为2的区块;在区块高度为3时,再次打包接收到的1类业务的交易,并生成区块高度为3的区块,在区块高度为3的区块的区块头中,不仅写入区块区块高度为2的区块的区块哈希,还写入区块高度为0的区块的区块哈希(即,将上一个所打包交易的业务类型相同的区块的区块哈希写入当前区块的区块头中)。
[0057] 上述实施例优化了不同业务类型的区块数据的查询及处理,进一步优化了用户体验。
[0058] 在一优选实施例中,通过预配置的分布式应用构建交易哈希对应于业务类型的交易,并广播所构建的交易。
[0059] 具体地,以图1所示应用场景为例,将第一交易的交易哈希判断第一交易是否与本节点预配置的业务类型相匹配的判定方法配置为:将交易哈希的若干位与业务类型的总量取余得到第一数值,根据第一数值判断第一交易是否为本节点预配置的业务类型相匹配:是,则打包各第一交易并生成第一区块;DAPP1构建的交易哈希与1类业务相匹配。
[0060] 通过预配置的分布式应用(DAPP)构建交易哈希,DAPP在构建交易时,对交易的交易哈希进行限定;DAPP1在生成交易P及交易Q时,在将交易P及交易Q发送到区块链节点之前,需要保证交易P及交易Q计算得到的第一数值为0,与1类业务的业务类型相匹配。
[0061] 在一优选实施例中,通过共识配置对应于业务类型的分布式应用。DAPP1构建的交易哈希与1类业务相匹配,要将DAPP1配置到区块链网络中的所有节点或若干节点时,需要通过区块链网络的节点共识。
[0062] 图5为本发明一实施例提供的一种设备的结构示意图。
[0063] 如图5所示,作为另一方面,本申请还提供了一种设备500,包括一个或多个中央处理单元(CPU)501,其可以根据存储在
只读存储器(ROM)502中的程序或者从存储部分508加载到随机
访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有设备500操作所需的各种程序和数据。CPU501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)
接口505也连接至总线504。
[0064] 以下部件连接至I/O接口505:包括
键盘、
鼠标等的输入部分506;包括诸如
阴极射线管(CRT)、
液晶显示器(LCD)等以及扬声器等的输出部分507;包括
硬盘等的存储部分508;以及包括诸如LAN卡、
调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。
驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、
半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
[0065] 特别地,根据本公开的实施例,上述任一实施例描述的交易分类方法可以被实现为计算机
软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行交易分类方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
[0066] 作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的交易分类方法。
[0067] 附图中的流程图和
框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于
硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
[0068] 描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
[0069] 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。