CN110555079B - 数据处理方法、装置、设备以及存储介质 - Google Patents
数据处理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN110555079B CN110555079B CN201910834150.5A CN201910834150A CN110555079B CN 110555079 B CN110555079 B CN 110555079B CN 201910834150 A CN201910834150 A CN 201910834150A CN 110555079 B CN110555079 B CN 110555079B
- Authority
- CN
- China
- Prior art keywords
- service data
- service
- data
- data set
- consensus
- 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
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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据处理方法、装置、设备以及存储介质,该方法包括:获取待共识业务数据集合中各个业务数据的至少一个附加属性;基于至少一个附加属性对待共识业务数据集合中各个业务数据进行排序,基于排序结果从待共识业务数据集合中选取至少一个业务数据添加至业务数据集合;基于业务数据集合生成新区块并将新区块发送至区块链网络的共识节点,以使共识节点对新区块进行验证并在验证通过后生成签名确认消息;接收签名确认消息并当签名确认消息满足预设共识策略时,将新区块加入区块链网络。采用本发明实施例,可增加业务数据的选取方式,提升业务数据的处理方式的多样性,适用性高。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备以及存储介质。
背景技术
区块链是一种新的分布式技术,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。一个区块链网络由很多节点构成,对于一个业务数据,当其被广播到区块链网络中各个节点时,各个节点会先将业务数据做一些简单的验证,验证成功后就会把业务数据加入到本地的业务数据存储池当中。
每个节点在打包业务数据到区块时,往往会根据业务数据存储池中的业务数据队列来将业务数据打包至区块,可操作性差,不够灵活。
发明内容
本发明实施例提供一种数据处理方法、装置、设备以及存储介质,可增加业务数据的选取方式,提升业务数据的处理方式多样性,适用性高。
第一方面,本发明实施例提供一种数据处理方法,该方法包括:
获取待共识业务数据集合中各个业务数据的至少一个附加属性;
基于上述至少一个附加属性对上述待共识业务数据集合中各个业务数据进行排序,基于排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至业务数据集合;
判断上述业务数据集合中所有业务数据的数据总量大小,当上述业务数据集合中所有业务数据的数据总量不小于第一预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
基于上述业务数据集合生成新区块并将上述新区块发送至区块链网络的共识节点,以使上述共识节点对上述新区块进行验证并在验证通过后生成签名确认消息;
接收上述签名确认消息并当上述签名确认消息满足预设共识策略时,将上述新区块加入上述区块链网络。
结合第一方面,在一种可能的实施方式中,上述方法还包括:
判断上述业务数据集合中业务数据的个数,当上述业务数据集合中业务数据的个数不小于第一预设个数时停止从上述待共识业务数据集合中选取业务数据。
结合第一方面,在一种可能的实施方式中,上述至少一个附加属性包括至少一个第一附加属性和至少一个第二附加属性;上述基于上述至少一个附加属性对上述待共识业务数据集合中各个业务数据进行排序,基于排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至业务数据集合包括:
基于上述至少一个第一附加属性对上述待共识业务数据集合中各个业务数据进行排序得到第一排序结果,基于上述第一排序结果从上述待共识业务数据集合中选取至少一个业务数添加至第一业务数据集合;
判断上述第一业务数据集合中所有业务数据的数据总量大小,当上述第一业务数据集合中所有业务数据的数据总量不小于第二预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
基于上述至少一个第二附加属性对上述待共识业务数据集合中各个业务数据进行排序得到第二排序结果,基于上述第二排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至第二业务数据集合;
判断上述第二业务数据集合中所有业务数据的数据总量大小,当上述第二业务数据集合中所有业务数据的数据总量不小于第三预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
其中,上述第二预设数据总量与上述第三预设数据总量之和不大于上述第一预设数据总量。
结合第一方面,在一种可能的实施方式中,上述至少一个第一附加属性包括上述业务数据的附加转移数据量,上述附加转移数据量为在将包含上述业务数据的区块加入上述区块链网络之后,由上述业务数据的业务提交方的账户发送至上述业务执行方的账户的转移数据量。
结合第一方面,在一种可能的实施方式中,上述第二附加属性包括上述业务数据的业务优先级;上述基于上述至少一个第二附加属性对上述待共识业务数据集合中各个业务数据进行排序得到第二排序结果,基于上述第二排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至第二业务数据集合包括:
基于业务优先级由高到低的顺序对上述待共识业务数据集合中的各个业务数据进行排序得到第二排序结果;
基于上述第二排序结果从上述待共识业务数据集合中依次选取至少一个业务数据添加至上述第二业务数据集合。
结合第一方面,在一种可能的实施方式中,上述获取待共识业务数据集合中各个业务数据的至少一个附加属性之前,上述方法还包括:
确定待处理业务数据集合中各个业务数据对应的业务提交方,并确定每一业务提交方的历史业务数据的个数和上述历史业务数据中无效业务数据的个数;
基于上述历史业务数据的个数和上述无效业务数据的个数确定出上述每一业务提交方的无效业务数据占比,并基于上述无效业务数据占比确定上述每一业务提交方的置信度,上述无效业务数据占比越低,上述每一业务提交方的置信度越高;
从上述待处理业务数据集合中获取置信度高于预设阈值的业务提交方的业务数据以得到待共识业务数据集合。
结合第一方面,在一种可能的实施方式中,上述至少一个附加属性包括附加转移数据量、业务提交时间、业务优先级以及置信度;上述基于上述至少一个附加属性对上述待共识业务数据集合中各个业务数据进行排序包括:
确定上述待共识业务数据集合中每一业务数据的附加转移数据量、业务提交时间、业务优先级以及置信度,基于上述附加转移数据量对应的权重系数、上述业务提交时间的权重系数、上述业务优先级的权重系数以及上述置信度的权重系数分别确定上述每一业务数据的附加转移数据量的权重值、业务提交时间的权重值、业务优先级的权重值以及置信度的权重值;
基于上述附加转移数据量的权重值、上述业务提交时间的权重值、上述业务优先级的权重值以及上述置信度的权重值得到上述每一业务数据的属性权重值;
基于属性权重值由大到小的顺序对上述待共识业务数据集合中各个业务数据进行排序。
第二方面,本发明实施例提供了一种数据处理装置,该数据装置包括:
获取模块,用于获取待共识业务数据集合中各个业务数据的至少一个附加属性;
排序模块,用于基于上述至少一个附加属性对上述待共识业务数据集合中各个业务数据进行排序,基于排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至业务数据集合;
判断模块,用于判断上述业务数据集合中所有业务数据的数据总量大小,当上述业务数据集合中所有业务数据的数据总量不小于第一预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
处理模块,用于基于上述业务数据集合生成新区块并将上述新区块发送至区块链网络的共识节点,以使上述共识节点对上述新区块进行验证并在验证通过后生成签名确认消息;
所述处理模块,用于接收上述签名确认消息并当上述签名确认消息满足预设共识策略时,将上述新区块加入上述区块链网络。
结合第二方面,在一种可能的实施方式中,上述判断模块还用于:
判断上述业务数据集合中业务数据的个数,当上述业务数据集合中业务数据的个数不小于第一预设个数时停止从上述待共识业务数据集合中选取业务数据。
结合第二方面,在一种可能的实施方式中,上述至少一个附加属性包括至少一个第一附加属性和至少一个第二附加属性;上述排序模块包括第一排序单元,上述判断模块包括第一判断单元;
上述第一排序单元,用于基于上述至少一个第一附加属性对上述待共识业务数据集合中各个业务数据进行排序得到第一排序结果,基于上述第一排序结果从上述待共识业务数据集合中选取至少一个业务数添加至第一业务数据集合;
上述第一判断单元,用于判断上述第一业务数据集合中所有业务数据的数据总量大小,当上述第一业务数据集合中所有业务数据的数据总量不小于第二预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
上述排序模块包括第二排序单元,上述判断模块包括第二判断单元;
上述第二排序单元,用于基于上述至少一个第二附加属性对上述待共识业务数据集合中各个业务数据进行排序得到第二排序结果,基于上述第二排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至第二业务数据集合;
上述第二判断单元,用于判断上述第二业务数据集合中所有业务数据的数据总量大小,当上述第二业务数据集合中所有业务数据的数据总量不小于第三预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
其中,上述第二预设数据总量与上述第三预设数据总量之和不大于上述第一预设数据总量。
结合第二方面,在一种可能的实施方式中,上述至少一个第一附加属性包括上述业务数据的附加转移数据量,上述附加转移数据量为在将包含上述业务数据的区块加入上述区块链网络之后,由上述业务数据的业务提交方的账户发送至上述业务执行方的账户的转移数据量。
结合第二方面,在一种可能的实施方式中,上述第二附加属性包括上述业务数据的业务优先级;上述第二排序单元,用于:
基于业务优先级由高到低的顺序对上述待共识业务数据集合中的各个业务数据进行排序得到第二排序结果;
基于上述第二排序结果从上述待共识业务数据集合中依次选取至少一个业务数据添加至上述第二业务数据集合。
结合第二方面,在一种可能的实施方式中,上述数据处理装置还包括确定模块,上述确定模块包括:
第一确定单元,用于确定待处理业务数据集合中各个业务数据对应的业务提交方,并确定每一业务提交方的历史业务数据的个数和上述历史业务数据中无效业务数据的个数;
第二确定单元,用于基于上述历史业务数据的个数和上述无效业务数据的个数确定出上述每一业务提交方的无效业务数据占比,并基于上述无效业务数据占比确定上述每一业务提交方的置信度,上述无效业务数据占比越低,上述每一业务提交方的置信度越高;
获取单元,用于从上述待处理业务数据集合中获取置信度高于预设阈值的业务提交方的业务数据以得到待共识业务数据集合。
结合第二方面,在一种可能的实施方式中,上述至少一个附加属性包括附加转移数据量、业务提交时间、业务优先级以及置信度;上述排序模块包括:
第三确定单元,确定上述待共识业务数据集合中每一业务数据的附加转移数据量、业务提交时间、业务优先级以及置信度,基于上述附加转移数据量对应的权重系数、上述业务提交时间的权重系数、上述业务优先级的权重系数以及上述置信度的权重系数分别确定上述每一业务数据的附加转移数据量的权重值、业务提交时间的权重值、业务优先级的权重值以及置信度的权重值;
第四确定单元,用于基于上述附加转移数据量的权重值、上述业务提交时间的权重值、上述业务优先级的权重值以及上述置信度的权重值得到上述每一业务数据的属性权重值;
第三排序单元,用于基于属性权重值由大到小的顺序对上述待共识业务数据集合中各个业务数据进行排序。
第三方面,本发明实施例提供了一种设备,该设备包括处理器和存储器,该处理器和存储器相互连接。该存储器用于存储支持该终端设备执行上述第一方面和/或第一方面任一种可能的实现方式提供的方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用上述程序指令,执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
在本发明实施例中,基于一个附加属性对待共识业务数据集合中各个业务数据排序,可迎合不同用户、企业以及各个基于区块链网络的业务数据处理领域的不同业务需求,同时基于多个附加属性对待共识业务数据集合中各个业务数据进行排序,不仅可满足多种选取业务数据以打包至区块的业务需求,还可进一步提升从待共识业务数据集合中选取业务数据的多样性,灵活性高。此外,通过在选取业务数据添加至业务数据集合之前筛选出高置信度的业务提交方的业务数据,可减少业务数据集合中无效交易的数量,进而提高业务数据的处理效率,减少区块资源的浪费,适用性高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据处理的原理示意图;
图2是本发明实施例提供的数据处理方法的一流程示意图;
图3是本发明实施例提供的一种业务数据排序的场景示意图;
图4是本发明实施例提供的另一种业务数据排序的场景示意图;
图5是本发明实施例提供的又一种业务数据排序的场景示意图;
图6是本发明实施例提供的区块结构示意图;
图7是本发明实施例提供的数据处理方法的另一流程示意图;
图8是本发明实施例提供的数据处理装置的结构示意图;
图9是本发明实施例提供的设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的数据处理方法(为方便描述,可简称本发明实施例提供的方法)可适用于各个基于区块链的数据处理系统。请参见图1,图1是本发明实施例提供的数据处理的原理示意图。图1中,节点10a、节点10b、节点10c、节点10d、节点10e以及节点10f分别为区块链网络中的部分节点,在区块链网络中,这些节点之间可以进行全连接。比如,图1所示的节点10a与节点10b之间的网络连接方式则可以称之为全连接,即可以将能够在一跳之内连接到的网络连接方式称之为全连接。可选的,区块链中的节点之间还可以通过物理网络进行连接(例如,虚拟网卡),即无法在一跳之内连接到的网络连接方式可以称之为通过物理网络进行物理网络连接。其中,区块链网络中任一节点可对与其对应的待共识业务数据集合中的业务数据进行数据处理。以节点10f为例,节点10f可从其对应的待共识业务数据集合中选取部分业务数据20打包至一个新区块30,并将新区块30发送至区块链网络中的共识节点(如节点10a、节点10b、节点10c、节点10d以及节点10e),以使共识节点对新区块30完成在区块链上的共识。其中,可以理解的是,在不同的区块链网络中,可对共识节点的节点范围做进一步限定,例如在企业内部的区块链网络(例如,私有区块链网络)上,可以区块链网络中合约层的上的合约节点确定为共识节点,具体可根据实际应用场景确定,在此不做限制。
当节点10a、节点10b、节点10c、节点10d以及节点10e接收到节点10f发送的新区块30之后,节点10a、节点10b、节点10c、节点10d以及节点10e可对接收到的新区块30进行验证,并在验证通过后生成签名确认消息。节点10f可接收共识节点发送的签名确认消息并在接收到的签名确认消息满足预设共识策略时,可说明区块链网络中的共识节点达成了共识,此时节点10f将新区块30加入区块链网络,即将新区块30加入当前区块链网络的主链40上。若在节点10f接收到的签名确认消息不满足预设共识策略时,可说明共识节点并没有达成共识,此时节点10f不能将新区块30加入当前区块链网络的主链40上。应当理解,由于区块链网络中的各个共识节点之间可以通过物理网络进行通讯,所以,在节点10f将新区块30接入到当前区块链网络的主链40上之后,各个共识节点(节点10a、节点10b、节点10c、节点10d以及节点10e)可以将该新区块30进行同步,以使各个共识节点更新其对应的待共识业务数据集合中的业务数据。
应当理解,上述预设共识策略还可以包含:包括但不限于工作量证明机制(Proofof Work,PoW)、权益证明机制(Proof of Stake,PoS)、股份授权证明机制(DelegatedProof of Stake,DPoS)实用拜占庭机制(Practical Byzantine Fault Tolerance,PBFT)以及Ripple共识算法等,具体可基于实际应用场景确定,在此不做限制。此外,任何人、任何企业都可以架设服务器以加入区块链网络成为一个节点。所以,区块链网络可以理解为一个可以在多个站点、不同地理位置或者多个机构组成的区块链网络里进行数据处理、分享的数据库。
请一并参见图2,图2是本发明实施例提供的数据处理方法的一流程示意图。如图2所示,本发明实施例提供的数据处理方法可包括如下步骤S101至S105。
S101、获取待共识业务数据集合中各个业务数据的至少一个附加属性。
在一些可行的实施方式中,上述待共识业务数据集合中的业务数据可以为各个领域的各种数据,如交易数据、管理数据等,具体可根据实际应用场景确定,在此不做限制。由于待共识业务数据中的业务数据可为不同领域的数据,因此除了业务数据本身的必要数据之外,待共识业务数据集合中的各个业务数据还会携带至少一个附加属性。其中,上述附加属性可以为表示业务数据任一维度特征的数据、信息等。例如,当待共识业务数据集合中的一个业务数据为交易数据时,该业务数据的附加属性值可以为业务提交时间、业务手续费、业务优先级以及附加转移数据量等。可以理解,对于待共识业务数据集合中一个业务数据来说,其可携带有一种或者多种附加属性,对于待共识业务数据集合中的任意两个业务数据来说,两者携带的附加属性可以为相同的附加属性,也可为不同的附加属性,具体可根据实际应用场景确定,在此也不做任何限制。当需要对待共识业务数据集合中的部分业务数据进行数据处理,即将待共识业务数据集合中的部分业务数据写入区块链网络时,可基于获取待共识业务数据集合中各个业务数据的至少一个附加属性值,以基于上述至少一个附加属性值确定出需要进行数据处理的业务数据。
S102、基于至少一个附加属性值对待共识业务数据集合中各个业务数据进行排序,基于排序结果从待共识业务数据集合中选取至少一个业务数据添加至业务数据集合。
在一些可行的实施方式中,当需要选取待共识业务数据集合中的部分业务数据写入区块链时,不同的应用场景对业务数据的要求也会不同,进而会导致业务数据的选取方式也不一定相同。因此可基于上述待共识业务数据集合中各个业务数据的至少一个附加属性值对待共识业务数据集合中各个业务数据进行排序,进而基于排序结果从待共识业务数据集合中选取至少一个业务数据添加至业务数据集合。其中,上述业务数据集合中的业务数据为从待共识业务数据集合中选取的并将要写入区块链网络的业务数据,且在基于排序结果从待共识业务数据集合中选取至少一个业务数据之前,上述业务数据集合为空。需要特别说明的时,在对待共识业务数据中的各个业务数据进行排序时,可基于一个附加属性进行排序,也可基于多种附加属性进行排序,具体可基于实际应用场景确定,在此不做限制。
具体的,可参见图3,图3是本发明实施例提供的一种业务数据排序的场景示意图。在图3中,待共识业务数据集合汇中包含有业务数据A、业务数据B、业务数据C以及业务数据D,并且业务数据A的业务提交时间为2017/7/1、业务数据B的业务提交时间为2017/9/1、业务数据C的业务提交时间为2017/8/4、业务数据D的业务数据提交时间为2017/8/1。当基于一个附加属性对待共识业务数据中各个业务数据进行排序,且该附加属性为业务提交时间时,可基于业务提交时间由早到晚的顺序对业务数据A、业务数据B、业务数据C以及业务数据D进行排序,且排序结果为业务数据A、业务数据D、业务数据C、业务数据B,若待共识业务数据集合中存在不包含附加属性为业务提交时间的业务数据,在对各个业务数据进行排序时可将该业务数据的业务提交时间确定为最晚提交时间,也可不对该业务数据做排序处理。可选的,如果需要优先处理业务提交时间与当前选取时间较为接近的业务数据时,可基于业务提交时间由晚到早的顺序对业务数据A、业务数据B、业务数据C以及业务数据D进行排序,得到的排序结果为业务数据B、业务数据C、业务数据D、业务数据A,图3仅以附加属性为业务提交时间时的一种排序方式为例,具体基于的附加属性和排序方式可基于实际应用场景确定,在此不做限制。
在一些可行的实施方式中,当待共识业务数据集合中携带某一附加属性的业务数据较少,或者需要对不同的业务数据进行并行处理,可基于多个附加属性分别对待共识业务数据进行排序得到多个排序结果,并基于每个排序结果从待共识业务数据集合中选取至少一个业务数据得到一个业务数据集合,从而得到多个业务数据集合。例如,当上述至少一个附加属性包括一个第一附加属性和一个第二附加属性时,可基于第一附加属性对待共识业务数据集合中各个业务数据进行排序得到第一排序结果,并基于第一排序结果从待共识业务数据集合中选取至少一个业务数据添加至第一业务数据集合。并基于第二附加属性对待共识业务数据结合中各个业务数据再次进行排序得到第二排序结果,并基于第二排序结果从待共识业务数据集合汇总选取至少一个业务数据添加至第二业务数据集合。需要说明的是,在正常的数据处理的应用场景中,每一业务数据只能被处理一次,即不允许被重复处理,因此基于第二排序结果从待共识业务数据集合中选取至少一个业务数据添加至第一业务数据集合之后,可基于第二附加属性对待共识业务数据集合中除第一业务数据集合中的业务数据外的其他业务数据进行排序得到第二排序结果进而得到第二业务数据集合。如若待共识业务数据中的业务数据可允许被重复处理,则可分别基于第一附加属性和第二附加属性分别对待共识业务数据中各个业务数据进行排序。需要特别说明的是,上述基于第一附加属性和第二附加属性得到第一业务数据集合和第二业务数据集合仅为一种示例,实际可选取N(N为大于0的正整数)个附加属性得到N个业务数据集合,并且N个业务数据集合中的业务数据为将要被处理以写进区块链网络的业务数据,且第一业务数据集合和第二业务数据集合在基于第一排序结果以及基于第二排序结果选取至少一个业务数据之前为空,具体可基于实际应用场景确定,在此不做限制。
请一并参见图4,图4是本发明实施例提供的另一种业务数据排序的场景示意图。如图4所示,待共识业务数据集合中包含有业务数据1、业务数据2、业务数据3以及业务数据4。其中,待共识业务数据集合中的4个业务数据均包含两个附加属性,两个附加属性分别为附加转移数据量和业务优先级。上述业务优先级表示待共识业务数据集合中各个业务数据的优先处理顺序,上述附加转移数据量为在将包含任一业务数据(以业务数据1为例)的区块加入区块链网络之后,由业务数据1的业务提交方的账户发送至业务数据1对应的业务执行方的账户的转移数据量。例如,当业务数据1为转账交易数据时,在业务数据1的业务提交方转账成功后,为业务数据1的提交方需要向处理该转账交易的业务执行方支付手续费,此时该手续费即为上述附加转移数据量。在图4中,业务数据1的附加转移数据量为10,业务优先级为1;业务数据2的附加转移数据量为70,业务优先级为4;业务数据3的附加转移数据量为50,业务优先级为8;业务数据4的附加转移数据量为20,业务优先级为3。此时可基于附加转移数据量由高到低的顺序(也可为由低到高等其他顺序,具体可基于实际应用场景确定,在此不做限制)对待共识业务数据中的4个业务数据进行排序得到第一排序结果(业务数据2、业务数据3、业务数据4、业务数据1),从而基于第一排序结果选取至少一个业务数据添加至第一业务数据集合。并且,在业务优先级数值越高,优先级越高的情况下,可基于业务优先级由高到低(也可为由低到高等其他顺序,具体可基于实际应用场景确定,在此不做限制)的顺序对待共识业务数据集合中的4个业务数据进行排序得到第二排序结果(业务数据3、业务数据2、业务数据4、业务数据1),从而基于第二排序结果选取至少一个业务添加数据添加至第二业务数据集合。可以理解,图4仅以附加转移数据量和业务优先级作为两个附加属性对待共识业务数据集合中的业务数据进行排序,具体的附加数据的个数和类别,以及排序方式可基于实际应用场景确定,在此不做限制。
在一些可行的实施方式中,当基于至少一个附加属性对待共识业务数据集合中各个业务数据进行排序时,由于待共识业务数据集合中各个业务数据所携带的附加属性的个数和类型都不尽相同,此时为了便于从待共识业务数据集合中选取至少一个业务数据添加至业务数据集合,可先基于确定待共识业务数据集合中所有业务数据携带的附加属性的类型。并确定每一类型的附加属性的权重系数,从而基于待共识业务数据集合中每一业务数据的附加属性及其对应的权重系数得到每一业务数据的属性权重值,从而基于每一业务数据的属性权重值对待共识业务数据集合中各个业务数据进行排序以达到基于同一维度对各个业务进行排序的目的。
具体的,请参见图5,图5是本发明实施例提供的又一种业务数据排序的场景示意图。在图5中,假设待共识业务数据中每一业务数据最多只携带4个附加属性,且4个附加属性分别为附加转移数据量,业务提交时间、业务优先级以及置信度。对于待共识业务数据集合中的任一业务数据(以业务数据E为例),可分别确定业务数据E的附加转移数据量a、业务提交时间b、业务优先级c以及置信度d,再确定附加转移数据量a对应的权重系数α、业务提交时间对应的权重系数β、业务优先级对应的权重系数ω以及置信度对应的权重系数λ。从而将每一附加属性及其对应的权重系数相乘得到附加转移数据量的权重值η1、业务提交时间的权重值η1、业务优先级的权重值η3以及置信度的权重值η4。再基于数学方法将权重值η1、权重值η1、权重值η3以及权重值η4整合为业务数据E的属性权重值θE,其中上述数学方法包括但不限于将各个权重值求和、加权计算以及数理分析等方式,具体可基于实际应用场景确定,在此不做限制。其中,若业务数据E不携带某一附加属性,如业务数据E不携带附加转移数据量时,可将业务数据E添加一个附加转移数据量,并将其赋值为0以使业务数据E同时具备4个附加属性以得到业务数据E的属性权重值θE。基于上述实现方法,可得到待共识业务数据中各个业务数据的属性权重值,进而基于属性权重值由大到小的顺序(也可为由小到大等顺序,具体可基于实际应用场景确定,在此不做限制)对待共识业务数据集合的各个业务数据进行排序,并基于排序结果从待共识业务数据集合中选取至少一个业务数据添加至业务数据集合。
进一步地,在一些可行的实施方式中,在对待共识业务数据中各个业务数据进行排序时,若待共识业务数据集合中所有业务数据携带多个不同附加属性时,可基于一个附加属性(附加属性A)对各个业务数据排序进而得到一个业务数据集合,再基于各个附加属性(也可基于所有附加属性中除附加属性A外的其他附加属性)确定出待共识业务数据集合中各个业务数据的属性权重值,进而基于属性值对待共识业务数据集合中各个业务数据进行排序并得到一个业务数据集合。不难理解,当待共识业务数据集合中所有业务数据携带多个附加属性时,可基于任意一个附加属性对待共识业务数据集合中各个业务数据进行排序,也可基于任意多个附加属性得到待共识业务数据集合中各个业务数据的属性权重值,进而基于属性值对待共识业务数据集合中各个业务数据进行排序。进一步地,可基于上述多种排序方式对待共识业务数据集合中各个业务数据进行排序进而得到多个业务数据集合,从而对得到的多个业务数据集合中的业务数据进行数据处理以将其写入区块链网络中。可以理解的是,上述排序方式的选择可基于实际应用场景确定,在此不做限制。
S103、判断业务数据集合中所有业务数据的数据总量大小,当业务数据集合中所有业务数据的数据总量不小于第一预设数据总量时停止从待共识业务数据集合中选取业务数据。
在一些可行的实施方式中,在基于排序结果从待共识业务数据集合中选取至少一个业务数据添加至业务数据集合的过程中,可判断业务数据集合中所有业务数据的数据总量大小,并在业务数据集合中所有业务数据的数据总量不小于第一预设数据总量时停止从待共识业务数据集合中选取业务数据。其中,上述第一预设数据总量为小于区块链网络中一个区块所容纳的最大数据总量的一个预设值,具体预设值的选取可基于实际应用场景确定,在此不做限制。由于上述第一预设数据总量的存在,当业务数据集合中所有业务数据的数据总量在刚好与第一预设数据总量一致或者第一次超过第一预设数据总量时,说明已从待共识业务数据集中选取最大数据总量的业务数据,并且业务数据集合中所有业务数据的数据总量并为超过一个区块所容纳的最大数据总量,从而基于上述实现方式可尽可能多地从待共识业务数据集合中选取业务数据。
可选的,在一些可行的实施方式中,在基于排序结果从待共识业务数据集合中选取至少一个业务数据添加至业务数据集合的过程中,在判断业务数据集合中所有业务数据的数据总量大小的同时,还可判断业务数据集合中业务数据的个数,并在业务数据集合中业务数据的个数不小于第一预设个数时停止从待共识业务数据集合中选取业务数据。其中,上述第一预设数据个数为小于区块链网络中一个区块所容纳的最大数据个数的一个预设值(也可为一个区块所容纳的最大数据个数),具体预设值的选取可基于实际应用场景确定,在此不做限制。由于与上述第一预设数据个数的存在,当业务数据集合中业务数据的个数在刚好与第一预设数据个数一致时,说明已从待共识业务数据集合中选取最大数据个数的业务数据,并且业务数据集合中业务数据的个数不会超过一个区块所容纳的最大数据个数,从而基于上述实现方式可从数据总量以及数据个数两个方面确保在尽可能多地选取业务数据添加至业务数据集合时,确保业务数据集合中各个业务数据可被打包至新区块以加入区块链网络中。
在一些可行的实施方式中,若基于不同的排序方式从待共识业务数据集合中选取至少一个业务数据得到多个业务数据集合(如以图4中基于附加转移数据量和业务优先级对待共识业务数据集合中各个业务数据进行排序得到的第一业务数据集合和第二业务数数据集合为例),在基于第一排序结果从待共识业务数据集合中选取至少一个业务数据添加至第一业务数据集合的过程中,需要判断第一业务数据集合中所有业务数据的数据总量大小,并在第一业务数据集合中所有业务数据总量不小于第二预设总量时停止从待共识业务数据集合中选取业务数据,或者,需要判断第一业务数据集合中所有业务数据的数据个数,并在第一业务数据集合中所有业务数据的个数不小于第二预设数据个数时停止从待共识业务数据集合中选取业务数据。同理,在基于第二排序结果从待共识业务数据集合中选取至少一个业务数据添加至第二业务数据集合的过程中,需要判断第二业务数据集合中所有业务数据的数据总量大小,并在第二业务数据集合中所有业务数据总量不小于第三预设总量时停止从待共识业务数据集合中选取业务数据,或者,需要判断第二业务数据集合中所有业务数据的数据个数,并在第二业务数据集合中所有业务数据的个数不小于第三预设数据个数时停止从待共识业务数据集合中选取业务数据。其中,上述第二预设数据总量与上述第三预设数据总量之和不大于上述第一预设数据总量,上述第二预设数据个数与上述第三预设数据个数之和不大于上述第一预设数据个数。也就是说,无论基于多少种排序方式对待共识业务数据集合中各个业务数据排序,进而基于排序结果得到的多个业务数据集合(如M个业务数据集合,M为大于0的正整数),M个业务数据集合中所有业务数据的数据总量不超过上述第一预设数据总量,且M个业务数据集合中业务数据的总个数不超过上述第一预设数据个数,从而确保所有选取的业务数据均可被打包至新区块以写入区块链网络中。
S104、基于业务数据集合生成新区块并将新区块发送至区块链网络的共识节点,以使共识节点对新区块进行验证并在验证通过后生成签名确认消息。
在一些可行的实施方式中,在停止从待共识业务数据中选取业务数据添加至业务数据集合后(为方便描述,以基于一种排序方式的排序结果得到一个业务数据集合为例),可将业务数据集合中的所有业务数据打包至一个新区块。区块链由多个区块组成,每一区块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;每一区块以上一区块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息(业务数据集合中的各个业务数据)特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。在生成新区块时,可基于业务数据集合中的各个业务数据得到新区块的默克尔树根的哈希值;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为新区块的父区块的区块头特征值;merkleroot为输入信息特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到新区块。
其中,输入信息特征值的计算过程具体可参见图6,图6是本发明实施例提供的区块结构示意图。在图6中,业务数据1、业务数据2、业务数据3和业务数据4可以通过默克尔树的形式组织在一起。以图6中的业务数据1和业务数据2为例,通过哈希计算可以计算得到业务数据1对应的哈希值1;同样,通过哈希计算可以计算得到业务数据2对应的哈希值2。进一步的,将哈希值1和哈希值2串联起来,继续做散列变换,可以得到图6所示的哈希值12。以此类推,对于业务数据3和业务数据4而言,通过这样一层一层地递归计算,可以得到图6所示的哈希值34,从而可以进一步将哈希值12和哈希值34串联起来进行散列变换,直到最后剩下一个根(即图6所示的哈希值1234)。此时,可以将该最后得到的所有业务数据的哈希值作为新区块的输入信息特征值。可以看到,默克尔树的可扩展性很好,不管业务数据有多少,最后都可以产生一个默克尔树以及固定长度的输入信息特征值。进一步地,在生成新区块之后,可将新区块发送至区块链网络的共识节点以使共识节点对新区块进行验证,共识节点在对新区块验证通过后生成签名确认消息并发送签名确认消息。
S105、接收签名确认消息并当签名确认消息满足预设共识策略时,将新区块加入上述区块链网络。
在一些可行的实施方式中,当接收到各个共识节点发送的签名确认消息且各个共识节点发送的签名消息满足预设共识策略时,可将新区块添加至当前区块链网络的主链上。其中,上述对新区块的验证方式以及上述预设共识策略可基于实际应用场景确定,在此不做限制。
在本发明实施例中,基于一个附加属性对待共识业务数据集合中各个业务数据排序,可迎合不同用户、企业以及各个基于区块链网络的业务数据处理领域的不同业务需求,同时基于多个附加属性对待共识业务数据集合中各个业务数据进行排序,不仅可满足多种选取业务数据以打包至新区块的业务需求,还可进一步提升从待共识业务数据集合中选取业务数据的多样性,灵活性高。
再请参见图7,图7是本发明实施例提供的数据处理方法的另一流程示意图。如图7所示,本发明实施例提供的数据处理方法可包括如下步骤S201至S208。
S201、确定待处理业务数据集合中各个业务数据对应的业务提交方,并确定每一业务提交方的历史业务数据的个数和历史业务数据中无效业务数据的个数。
在一些可行的实施方式中,因此对于区块链网络中每个节点均对应一个待处理业务数据集合,在将待处理业务数据集合中的部分业务数据打包至一个新区块之前,需要对待处理业务数据集合中各个业务数据进行筛选以得到包含较少或不包含无效业务数据的待共识业务数据集合进而将待共识业务数据集合中的部分业务数据打包至新区块,从而减少由无效交易带来的区块资源的浪费。具体的,可先确定待处理业务数据结合中各个业务数据对应的业务提交方(业务数据的来源),任一待处理业务数据集合至少包含一个业务提交方,并确定每一业务提交方的历史业务数据的各数以及历史业务数据中无效业务数据的个数。其中,上述历史业务数据的个数为一个业务提交方在当前业务数据处理过程之前累计提交至区块链网络中任一节点的业务数据的个数,历史业务数据中无效业务数据为未通过验证或未成功写入区块链的业务数据的个数。
S202、基于历史业务数据的个数和无效业务数据的个数确定出每一业务提交方的无效业务数据占比,并基于无效业务数据占比确定每一业务提交方的置信度。
在一些可行的实施方式中,由于业务提交方的历史业务数据中包含有效业务数据和无效业务数据,基于每一业务提交方的无效业务数据的个数和历史业务数据的个数之比得到每一业务提交方的历史业务数据中无效业务数据占比,进而基于无效业务数据占比确定每一业务提交方的置信度。其中,每一业务提交方的置信度的确定过程可基于无效业务数据占比与置信度的关系表、预设置信度计算方法等方式确定,具体可基于实际应用场景确定,在此不做限制。可选的,也可基于每一业务提交方的有效业务数据的个数和历史业务数据的个位之比得到每一业务提交方的有效业务数据占比。其中,无效业务数据占比越高置信度越低,有效业务数据占比越高置信度越高。
S203、从待处理业务数据集合中获取置信度高于预设阈值的业务提交方的业务数据以得到待共识业务数据集合。
在一些可行的实施方式中,在得到每一业务提交方的置信度之后,可基于预设阈值从待处理业务数据集合中筛选出置信度高于预设阈值的业务提交方,其中,上述预设阈值可基于实际应用场景以及待处理业务数据集合中各个业务提交方的置信度分布确定,在此不做限制。上述确定出的置信度高于预设阈值的业务提交方在一定程度上可说明其提交的业务数据有较大概率为有效业务数据,因此可从待处理业务数据集合中确定出置信度高于预设阈值的业务提交方的业务数据,并将置信度高于预设阈值的业务提交方的业务数据作为待共识业务数据集合以从待共识业务数据集合中选取部分业务数据打包至新区块,达到减少新区块中无效业务数据个数的目的。
S204、获取待共识业务数据集合中各个业务数据的至少一个附加属性。
S205、基于至少一个附加属性值对待共识业务数据集合中各个业务数据进行排序,基于排序结果从待共识业务数据集合中选取至少一个业务数据添加至业务数据集合。
S206、判断业务数据集合中所有业务数据的数据总量大小,当业务数据集合中所有业务数据的数据总量不小于第一预设数据总量时停止从待共识业务数据集合中选取业务数据。
S207、基于业务数据集合生成新区块并将新区块发送至区块链网络的共识节点,以使共识节点对新区块进行验证并在验证通过后生成签名确认消息。
S208、接收签名确认消息并当签名确认消息满足预设共识策略时,将新区块加入上述区块链网络。
在一些可行的实施方式中,上述步骤S204至S208的具体实施方式可参见图2中步骤S201至S205中所示的实施方式,在此不再赘述。
在本发明实施例中,基于一个附加属性对待共识业务数据集合中各个业务数据排序,可迎合不同用户、企业以及各个基于区块链网络的业务数据处理领域的不同业务需求,同时基于多个附加属性对待共识业务数据集合中各个业务数据进行排序,不仅可满足多种选取业务数据以打包至新区块的业务需求,还可进一步提升从待共识业务数据集合中选取业务数据的多样性,灵活性高。此外,通过在选取业务数据添加至业务数据集合之前筛选出高置信度的业务提交方的业务数据,可减少业务数据集合中无效交易的数量,进而提高业务数据的处理效率,减少区块资源的浪费,适用性高。
参见图8,图8是本发明实施例提供的数据处理装置的结构示意图。本发明实施例提供的数据处理装置1包括:
获取模块11,用于获取待共识业务数据集合中各个业务数据的至少一个附加属性;
排序模块12,用于基于上述至少一个附加属性对上述待共识业务数据集合中各个业务数据进行排序,基于排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至业务数据集合;
判断模块13,用于判断上述业务数据集合中所有业务数据的数据总量大小,当上述业务数据集合中所有业务数据的数据总量不小于第一预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
处理模块14,用于基于上述业务数据集合生成新区块并将上述新区块发送至区块链网络的共识节点,以使上述共识节点对上述新区块进行验证并在验证通过后生成签名确认消息;
所述处理模块14,用于接收上述签名确认消息并当上述签名确认消息满足预设共识策略时,将上述新区块加入上述区块链网络。
在一些可行的实施方式中,上述判断模块13还用于:
判断上述业务数据集合中业务数据的个数,当上述业务数据集合中业务数据的个数不小于第一预设个数时停止从上述待共识业务数据集合中选取业务数据。
在一些可行的实施方式中,上述至少一个附加属性包括至少一个第一附加属性和至少一个第二附加属性;上述排序模块12包括第一排序单元121,上述判断模块13包括第一判断单元131;
上述第一排序单元121,用于基于上述至少一个第一附加属性对上述待共识业务数据集合中各个业务数据进行排序得到第一排序结果,基于上述第一排序结果从上述待共识业务数据集合中选取至少一个业务数添加至第一业务数据集合;
上述第一判断单元131,用于判断上述第一业务数据集合中所有业务数据的数据总量大小,当上述第一业务数据集合中所有业务数据的数据总量不小于第二预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
上述排序模块12包括第二排序单元122,上述判断模块13包括第二判断单元132;
上述第二排序单元122,用于基于上述至少一个第二附加属性对上述待共识业务数据集合中各个业务数据进行排序得到第二排序结果,基于上述第二排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至第二业务数据集合;
上述第二判断单元132,用于判断上述第二业务数据集合中所有业务数据的数据总量大小,当上述第二业务数据集合中所有业务数据的数据总量不小于第三预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
其中,上述第二预设数据总量与上述第三预设数据总量之和不大于上述第一预设数据总量。
在一些可行的实施方式中,上述至少一个第一附加属性包括上述业务数据的附加转移数据量,上述附加转移数据量为在将包含上述业务数据的区块加入上述区块链网络之后,由上述业务数据的业务提交方的账户发送至上述业务执行方的账户的转移数据量。
在一些可行的实施方式中,上述第二附加属性包括上述业务数据的业务优先级;上述第二排序单元122,用于:
基于业务优先级由高到低的顺序对上述待共识业务数据集合中的各个业务数据进行排序得到第二排序结果;
基于上述第二排序结果从上述待共识业务数据集合中依次选取至少一个业务数据添加至上述第二业务数据集合。
在一些可行的实施方式中,上述数据处理装置1还包括确定模块15,上述确定模块15包括:
第一确定单元151,用于确定待处理业务数据集合中各个业务数据对应的业务提交方,并确定每一业务提交方的历史业务数据的个数和上述历史业务数据中无效业务数据的个数;
第二确定单元152,用于基于上述历史业务数据的个数和上述无效业务数据的个数确定出上述每一业务提交方的无效业务数据占比,并基于上述无效业务数据占比确定上述每一业务提交方的置信度,上述无效业务数据占比越低,上述每一业务提交方的置信度越高;
获取单元153,用于从上述待处理业务数据集合中获取置信度高于预设阈值的业务提交方的业务数据以得到待共识业务数据集合。
在一些可行的实施方式中,上述至少一个附加属性包括附加转移数据量、业务提交时间、业务优先级以及置信度;上述排序模块12包括:
第三确定单元123,确定上述待共识业务数据集合中每一业务数据的附加转移数据量、业务提交时间、业务优先级以及置信度,基于上述附加转移数据量对应的权重系数、上述业务提交时间的权重系数、上述业务优先级的权重系数以及上述置信度的权重系数分别确定上述每一业务数据的附加转移数据量的权重值、业务提交时间的权重值、业务优先级的权重值以及置信度的权重值;
第四确定单元124,用于基于上述附加转移数据量的权重值、上述业务提交时间的权重值、上述业务优先级的权重值以及上述置信度的权重值得到上述每一业务数据的属性权重值;
第三排序单元125,用于基于属性权重值由大到小的顺序对上述待共识业务数据集合中各个业务数据进行排序。
具体实现中,上述数据处理装置1可通过其内置的各个功能模块执行如上述图2和/或图7中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
在本发明实施例中,基于一个附加属性对待共识业务数据集合中各个业务数据排序,可迎合不同用户、企业以及各个基于区块链网络的业务数据处理领域的不同业务需求,同时基于多个附加属性对待共识业务数据集合中各个业务数据进行排序,不仅可满足多种选取业务数据以打包至新区块的业务需求,还可进一步提升从待共识业务数据集合中选取业务数据的多样性,灵活性高。此外,通过在选取业务数据添加至业务数据集合之前筛选出高置信度的业务提交方的业务数据,可减少业务数据集合中无效交易的数量,进而提高业务数据的处理效率,减少区块资源的浪费,适用性高。
参见图9,图9是本发明实施例提供的设备的结构示意图。如图9所示,本实施例中的设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取待共识业务数据集合中各个业务数据的至少一个附加属性;
基于上述至少一个附加属性对上述待共识业务数据集合中各个业务数据进行排序,基于排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至业务数据集合;
判断上述业务数据集合中所有业务数据的数据总量大小,当上述业务数据集合中所有业务数据的数据总量不小于第一预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
基于上述业务数据集合生成新区块并将上述新区块发送至区块链网络的共识节点,以使上述共识节点对上述新区块进行验证并在验证通过后生成签名确认消息;
接收上述签名确认消息并当上述签名确认消息满足预设共识策略时,将上述新区块加入上述区块链网络。
在一些可行的实施方式中,上述处理器1001还用于:
判断上述业务数据集合中业务数据的个数,当上述业务数据集合中业务数据的个数不小于第一预设个数时停止从上述待共识业务数据集合中选取业务数据。
在一些可行的实施方式中,上述至少一个附加属性包括至少一个第一附加属性和至少一个第二附加属性;上述处理器1001用于:
基于上述至少一个第一附加属性对上述待共识业务数据集合中各个业务数据进行排序得到第一排序结果,基于上述第一排序结果从上述待共识业务数据集合中选取至少一个业务数添加至第一业务数据集合;
判断上述第一业务数据集合中所有业务数据的数据总量大小,当上述第一业务数据集合中所有业务数据的数据总量不小于第二预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
基于上述至少一个第二附加属性对上述待共识业务数据集合中各个业务数据进行排序得到第二排序结果,基于上述第二排序结果从上述待共识业务数据集合中选取至少一个业务数据添加至第二业务数据集合;
判断上述第二业务数据集合中所有业务数据的数据总量大小,当上述第二业务数据集合中所有业务数据的数据总量不小于第三预设数据总量时停止从上述待共识业务数据集合中选取业务数据;
其中,上述第二预设数据总量与上述第三预设数据总量之和不大于上述第一预设数据总量。
在一些可行的实施方式中,上述至少一个第一附加属性包括上述业务数据的附加转移数据量,上述附加转移数据量为在将包含上述业务数据的区块加入上述区块链网络之后,由上述业务数据的业务提交方的账户发送至上述业务执行方的账户的转移数据量。
在一些可行的实施方式中,上述第二附加属性包括上述业务数据的业务优先级;上述处理器1001用于:
基于业务优先级由高到低的顺序对上述待共识业务数据集合中的各个业务数据进行排序得到第二排序结果;
基于上述第二排序结果从上述待共识业务数据集合中依次选取至少一个业务数据添加至上述第二业务数据集合。
在一些可行的实施方式中,上述处理器1001还用于:
确定待处理业务数据集合中各个业务数据对应的业务提交方,并确定每一业务提交方的历史业务数据的个数和上述历史业务数据中无效业务数据的个数;
基于上述历史业务数据的个数和上述无效业务数据的个数确定出上述每一业务提交方的无效业务数据占比,并基于上述无效业务数据占比确定上述每一业务提交方的置信度,上述无效业务数据占比越低,上述每一业务提交方的置信度越高;
从上述待处理业务数据集合中获取置信度高于预设阈值的业务提交方的业务数据以得到待共识业务数据集合。
在一些可行的实施方式中,上述至少一个附加属性包括附加转移数据量、业务提交时间、业务优先级以及置信度;上述处理器1001用于:
确定上述待共识业务数据集合中每一业务数据的附加转移数据量、业务提交时间、业务优先级以及置信度,基于上述附加转移数据量对应的权重系数、上述业务提交时间的权重系数、上述业务优先级的权重系数以及上述置信度的权重系数分别确定上述每一业务数据的附加转移数据量的权重值、业务提交时间的权重值、业务优先级的权重值以及置信度的权重值;
基于上述附加转移数据量的权重值、上述业务提交时间的权重值、上述业务优先级的权重值以及上述置信度的权重值得到上述每一业务数据的属性权重值;
基于属性权重值由大到小的顺序对上述待共识业务数据集合中各个业务数据进行排序。
应当理解,在一些可行的实施方式中,上述处理器1001可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
具体实现中,上述设备1000可通过其内置的各个功能模块执行如上述图2和/或图7中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
在本发明实施例中,基于一个附加属性对待共识业务数据集合中各个业务数据排序,可迎合不同用户、企业以及各个基于区块链网络的业务数据处理领域的不同业务需求,同时基于多个附加属性对待共识业务数据集合中各个业务数据进行排序,不仅可满足多种选取业务数据以打包至新区块的业务需求,还可进一步提升从待共识业务数据集合中选取业务数据的多样性,灵活性高。此外,通过在选取业务数据添加至业务数据集合之前筛选出高置信度的业务提交方的业务数据,可减少业务数据集合中无效交易的数量,进而提高业务数据的处理效率,减少区块资源的浪费,适用性高。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图2和/或图7中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的任务处理装置的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本发明的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (9)
1.一种数据处理方法,其特征在于,所述方法包括:
获取待共识业务数据集合中各个业务数据的至少一个附加属性;所述至少一个附加属性包括至少一个第一附加属性和至少一个第二附加属性;
基于所述至少一个第一附加属性对所述待共识业务数据集合中各个业务数据进行排序得到第一排序结果,基于所述第一排序结果从所述待共识业务数据集合中选取至少一个业务数添加至第一业务数据集合;
判断所述第一业务数据集合中所有业务数据的数据总量大小,当所述第一业务数据集合中所有业务数据的数据总量不小于第二预设数据总量时停止从所述待共识业务数据集合中选取业务数据;
基于所述至少一个第二附加属性对所述待共识业务数据集合中各个业务数据进行排序得到第二排序结果,基于所述第二排序结果从所述待共识业务数据集合中选取至少一个业务数据添加至第二业务数据集合;
判断所述第二业务数据集合中所有业务数据的数据总量大小,当所述第二业务数据集合中所有业务数据的数据总量不小于第三预设数据总量时停止从所述待共识业务数据集合中选取业务数据;其中,所述第二预设数据总量与所述第三预设数据总量之和不大于第一预设数据总量;
判断所述业务数据集合中所有业务数据的数据总量大小,当所述业务数据集合中所有业务数据的数据总量不小于第一预设数据总量时停止从所述待共识业务数据集合中选取业务数据;
基于所述业务数据集合生成新区块并将所述新区块发送至区块链网络的共识节点,以使所述共识节点对所述新区块进行验证并在验证通过后生成签名确认消息;
接收所述签名确认消息并当所述签名确认消息满足预设共识策略时,将所述新区块加入所述区块链网络。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述业务数据集合中业务数据的个数,当所述业务数据集合中业务数据的个数不小于第一预设个数时停止从所述待共识业务数据集合中选取业务数据。
3.根据权利要求1所述的方法,其特征在于,所述至少一个第一附加属性包括所述业务数据的附加转移数据量,所述附加转移数据量为在将包含所述业务数据的区块加入所述区块链网络之后,由所述业务数据的业务提交方的账户发送至业务执行方的账户的转移数据量。
4.根据权利要求1或3所述的方法,其特征在于,所述第二附加属性包括所述业务数据的业务优先级;所述基于所述至少一个第二附加属性对所述待共识业务数据集合中各个业务数据进行排序得到第二排序结果,基于所述第二排序结果从所述待共识业务数据集合中选取至少一个业务数据添加至第二业务数据集合包括:
基于业务优先级由高到低的顺序对所述待共识业务数据集合中的各个业务数据进行排序得到第二排序结果;
基于所述第二排序结果从所述待共识业务数据集合中依次选取至少一个业务数据添加至所述第二业务数据集合。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述获取待共识业务数据集合中各个业务数据的至少一个附加属性之前,所述方法还包括:
确定待处理业务数据集合中各个业务数据对应的业务提交方,并确定每一业务提交方的历史业务数据的个数和所述历史业务数据中无效业务数据的个数;
基于所述历史业务数据的个数和所述无效业务数据的个数确定出所述每一业务提交方的无效业务数据占比,并基于所述无效业务数据占比确定所述每一业务提交方的置信度,所述无效业务数据占比越低,所述每一业务提交方的置信度越高;
从所述待处理业务数据集合中获取置信度高于预设阈值的业务提交方的业务数据以得到待共识业务数据集合。
6.根据权利要求1所述的方法,其特征在于,所述至少一个附加属性包括附加转移数据量、业务提交时间、业务优先级以及置信度;所述基于所述至少一个附加属性对所述待共识业务数据集合中各个业务数据进行排序包括:
确定所述待共识业务数据集合中每一业务数据的附加转移数据量、业务提交时间、业务优先级以及置信度,基于所述附加转移数据量对应的权重系数、所述业务提交时间的权重系数、所述业务优先级的权重系数以及所述置信度的权重系数分别确定所述每一业务数据的附加转移数据量的权重值、业务提交时间的权重值、业务优先级的权重值以及置信度的权重值;
基于所述附加转移数据量的权重值、所述业务提交时间的权重值、所述业务优先级的权重值以及所述置信度的权重值得到所述每一业务数据的属性权重值;
基于属性权重值由大到小的顺序对所述待共识业务数据集合中各个业务数据进行排序。
7.一种数据处理装置,其特征在于,所述数据处理装置包括:
获取模块,用于获取待共识业务数据集合中各个业务数据的至少一个附加属性;所述至少一个附加属性包括至少一个第一附加属性和至少一个第二附加属性;
排序模块,用于基于所述至少一个第一附加属性对所述待共识业务数据集合中各个业务数据进行排序得到第一排序结果,基于所述第一排序结果从所述待共识业务数据集合中选取至少一个业务数添加至第一业务数据集合,判断所述第一业务数据集合中所有业务数据的数据总量大小,当所述第一业务数据集合中所有业务数据的数据总量不小于第二预设数据总量时停止从所述待共识业务数据集合中选取业务数据,基于所述至少一个第二附加属性对所述待共识业务数据集合中各个业务数据进行排序得到第二排序结果,基于所述第二排序结果从所述待共识业务数据集合中选取至少一个业务数据添加至第二业务数据集合,判断所述第二业务数据集合中所有业务数据的数据总量大小,当所述第二业务数据集合中所有业务数据的数据总量不小于第三预设数据总量时停止从所述待共识业务数据集合中选取业务数据;其中,所述第二预设数据总量与所述第三预设数据总量之和不大于第一预设数据总量;
判断模块,用于判断所述业务数据集合中所有业务数据的数据总量大小,当所述业务数据集合中所有业务数据的数据总量不小于第一预设数据总量时停止从所述待共识业务数据集合中选取业务数据;
处理模块,用于基于所述业务数据集合生成新区块并将所述新区块发送至区块链网络的共识节点,以使所述共识节点对所述新区块进行验证并在验证通过后生成签名确认消息;
所述处理模块,用于接收所述签名确认消息并当所述签名确认消息满足预设共识策略时,将所述新区块加入所述区块链网络。
8.一种数据处理设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910834150.5A CN110555079B (zh) | 2019-09-04 | 2019-09-04 | 数据处理方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910834150.5A CN110555079B (zh) | 2019-09-04 | 2019-09-04 | 数据处理方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110555079A CN110555079A (zh) | 2019-12-10 |
CN110555079B true CN110555079B (zh) | 2023-09-26 |
Family
ID=68738948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910834150.5A Active CN110555079B (zh) | 2019-09-04 | 2019-09-04 | 数据处理方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110555079B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970380B (zh) * | 2020-09-02 | 2022-06-07 | 广东贤能数字科技有限公司 | 基于区块链的业务处理方法和系统 |
CN112367174B (zh) * | 2020-11-06 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种基于属性值的区块链共识方法及装置 |
CN113067707B (zh) * | 2021-06-02 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN113609214B (zh) * | 2021-07-06 | 2022-06-14 | 佛山市禅城区政务服务数据管理局 | 一种基于区块链的数据反哺方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450979A (zh) * | 2017-03-28 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及装置 |
CN107450981A (zh) * | 2017-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及设备 |
CN109313752A (zh) * | 2016-05-24 | 2019-02-05 | 万事达卡国际股份有限公司 | 使用审计保证形成用于被许可的区块链的高效共识机制的方法和系统 |
-
2019
- 2019-09-04 CN CN201910834150.5A patent/CN110555079B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109313752A (zh) * | 2016-05-24 | 2019-02-05 | 万事达卡国际股份有限公司 | 使用审计保证形成用于被许可的区块链的高效共识机制的方法和系统 |
CN107450979A (zh) * | 2017-03-28 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及装置 |
CN107450981A (zh) * | 2017-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110555079A (zh) | 2019-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110555079B (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN108846659B (zh) | 基于区块链的转账方法、装置及存储介质 | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
CN109472572B (zh) | 基于区块链主链加并行多子链的合约系统 | |
US11356282B2 (en) | Sending cross-chain authenticatable messages | |
CN111201754A (zh) | 用于提供区块链的环节的密码学保护的和经过滤的以及经排序的交易数据集的集合的设备 | |
CN110597839A (zh) | 交易数据处理方法、装置、设备以及存储介质 | |
CN112508573B (zh) | 一种交易数据处理方法、装置以及计算机设备 | |
CN111769948A (zh) | 基于区块链的链间交互方法、系统、装置和计算机设备 | |
CN103294558B (zh) | 一种支持动态信任评估的MapReduce调度方法 | |
CN110659905B (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN112381543A (zh) | 多重签名交易方法、设备和存储介质 | |
WO2023020242A1 (zh) | 基于区块链的数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
CN117251889B (zh) | 区块链共识方法、相关装置和介质 | |
CN112036878A (zh) | 数据处理方法及装置 | |
CN111260475A (zh) | 一种数据处理方法、区块链节点设备及存储介质 | |
CN116703601B (zh) | 基于区块链网络的数据处理方法、装置、设备及存储介质 | |
CN116055052A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN113542405A (zh) | 基于区块链的网络通信系统、方法、设备及存储介质 | |
US7839849B1 (en) | Formatting fields of communication packets | |
CN110585717B (zh) | 一种信息处理方法及装置 | |
CN112685199B (zh) | 一种消息队列修复方法、装置、计算机设备及存储介质 | |
US20220005025A1 (en) | Distributed ledger management system, distributed ledger management method, and node | |
CN111524011B (zh) | 平行链共识确认方法、设备和存储介质 | |
CN110458701A (zh) | 一种数据处理方法、装置、区块链节点设备及介质 |
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 |