CN110880147A - 一种交易处理方法、相关设备及计算机存储介质 - Google Patents
一种交易处理方法、相关设备及计算机存储介质 Download PDFInfo
- Publication number
- CN110880147A CN110880147A CN201911157155.5A CN201911157155A CN110880147A CN 110880147 A CN110880147 A CN 110880147A CN 201911157155 A CN201911157155 A CN 201911157155A CN 110880147 A CN110880147 A CN 110880147A
- Authority
- CN
- China
- Prior art keywords
- transaction
- bloom
- bloom filter
- target transaction
- bloom filters
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例提供了一种交易处理方法、相关设备及计算机存储介质,其中方法包括:当接收到终端设备提交的目标交易时,获取所述目标交易的摘要信息;利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息,所述N为大于或等于1的整数;若查询到所述目标交易的摘要信息,则确定所述目标交易为已处理交易,并拒绝将所述目标交易添加到交易池中,可以利用布隆过滤器高效、准确地检查提交的交易是否在账本中已经出现过,从而有效避免重复交易。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种交易处理方法、相关设备及计算机存储介质。
背景技术
目前,节点收到的交易可能是终端设备提交的重复交易,如果重复交易都被加入到交易池中,则这些重复交易会浪费较多的区块链网络资源。而对于交易池中的交易没有序号的场景,目前还没有有效的检查是否存在重复交易的方案,因此,如何便捷、高些地检查是否存在重复交易已成为亟待解决的问题。
发明内容
本发明实施例提供一种交易处理方法、相关设备及计算机存储介质,可以利用布隆过滤器高效、准确地检查提交的交易是否在账本中已经出现过,从而有效避免重复交易。
第一方面,本发明实施例提供了一种交易处理方法,应用于区块链网络的节点,所述方法包括:
当接收到终端设备提交的目标交易时,获取所述目标交易的摘要信息;
利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息,所述N为大于或等于1的整数;
若查询到所述目标交易的摘要信息,则确定所述目标交易为已处理交易,并拒绝将所述目标交易添加到交易池中。
第二方面,本发明实施例提供了一种交易处理装置,应用于区块链网络的节点,所述装置包括:
获取模块,用于当接收到终端设备提交的目标交易时,获取所述目标交易的摘要信息;
查询模块,用于利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息,所述N为大于或等于1的整数;
处理模块,用于若查询到所述目标交易的摘要信息,则确定所述目标交易为已处理交易,并拒绝将所述目标交易添加到交易池中。
第三方面,本发明实施例提供了一种节点设备,应用于区块链网络,所述节点设备包括处理器、网络接口和存储装置,所述处理器、所述网络接口和所述存储装置相互连接,其中,所述网络接口受所述处理器的控制用于收发数据,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用于执行第一方面所述的交易处理方法。
第四方面,本发明实施例提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现第一方面所述的交易处理方法。
本发明实施例可以当接收到终端设备提交的目标交易时,获取所述目标交易的摘要信息,并利用N个布隆过滤器从已处理交易对应的摘要信息中查询目标交易的摘要信息,N为大于或等于1的整数,若查询到目标交易的摘要信息,则确定目标交易为已处理交易,并拒绝将目标交易添加到交易池中,可以利用布隆过滤器高效、准确地检查提交的交易是否在账本中已经出现过,从而有效避免重复交易。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种交易处理系统的架构示意图;
图1b是本发明实施例提供的一种区块链的结构示意图;
图1c是本发明实施例提供的一种产生新区块的过程示意图;
图2是本发明实施例提供的一种交易处理方法的流程示意图;
图3是本发明实施例提供的另一种交易处理方法的流程示意图;
图4是本发明实施例提供的一种交易处理装置的结构示意图;
图5是本发明实施例提供的一种节点设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对目前区块链中容易出现重复交易,以及重复交易的检测效率较低等问题,本发明实施例提供了一种交易处理方法,可以利用布隆过滤器高效、准确地检查提交的交易是否在账本中已经出现过,从而有效避免重复交易。
请参见图1a,是本发明实施例提供的一种交易处理系统的架构示意图,该交易处理系统包括区块链网络10和终端设备20,其中:
区块链网络10是指用于进行节点与节点之间数据共享的网络,区块链网络中可以包括多个节点101。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据(即区块链)。为了保证区块链网络内的信息互通,每个节点之间可以存在信息连接,任意两个节点之间可以实现点对点(Peer To Peer,P2P)通信,具体可以通过有线通信链路或无线通信链路进行P2P通信。例如,当区块链网络中的任意节点接收到输入信息时,其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
终端设备20可以接入该区块链网络,并可以与区块链网络中的节点进行通信,例如,向节点提交待上链的交易,从节点获取数据,等等。其中,终端设备20具体可以是智能手机、平板电脑、笔记本电脑、台式电脑、车载智能终端等,本发明实施例不做限定。
需要说明的是,图1a中所示的节点的数目仅仅是示意性的,根据实际需要,可以部署任意数目的节点。
其中,对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有区块链网络中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链网络中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为互联网协议(Internet Protocol,IP)地址以及其他任一种能够用于标识该节点的信息,表中仅以IP地址为例进行说明。
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
其中,区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
其中,在生成区块链中的各个区块时,参见图1c,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据区块链网络中其他节点的节点标识,将新生成的区块分别发送给其所在的区块链网络中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
其中,区块链网络的节点上可以运行智能合约,智能合约是用于在满足一定条件时而执行的代码实现,开发人员可以通过编程语言定义合约逻辑,发布到区块链上(智能合约注册),根据合约条款的逻辑,调用密钥或者其他的事件触发执行,完成合约逻辑,同时还提供对智能合约升级、注销的功能。
在一些可行的实施方式中,区块链网络的某一节点101可以当接收到终端设备20提交的目标交易时,获取所述目标交易的摘要信息,并利用N个布隆过滤器(Bloom Filter)从已处理交易对应的摘要信息中查询目标交易的摘要信息,N为大于或等于1的整数,若查询到目标交易的摘要信息,则确定目标交易为已处理交易,并拒绝将目标交易添加到交易池中,可以利用布隆过滤器高效、准确地检查提交的交易是否在账本中已经出现过,从而有效避免重复交易。
以下对本发明实施例的技术方案的实现细节进行详细阐述:
请参见图2,是本发明实施例基于图1a所示的交易处理系统提供的一种交易处理方法的流程示意图,本发明实施例的交易处理方法主要是从节点一侧进行描述的,该交易处理方法应用于区块链网络的节点,该交易处理方法包括如下步骤:
201、当接收到终端设备提交的目标交易时,节点获取所述目标交易的摘要信息。
其中,目标交易可以包括商场购物、转账等应用场景中的待上链数据,摘要信息可以包括哈希hash值。
具体的,节点收到一笔待上链的交易(记为目标交易)后,可以计算该目标交易的hash值。
202、所述节点利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息,所述N为大于或等于1的整数。
其中,布隆过滤器是一种空间效率极高的概率型算法和数据结构,用于判断一个元素是否在集合中。
具体的,对于交易池中的交易没有序号的场景,节点可以利用一个或者多个布隆过滤器快速判断目标交易是否为已经提交过的重复交易。
203、所述节点若查询到所述目标交易的摘要信息,则确定所述目标交易为已处理交易,并拒绝将所述目标交易添加到交易池中。
具体的,节点利用布隆过滤器可以快速判断一个交易是否出现过在之前的账本里,针对已处理(例如上链)的交易,记录其摘要信息,收到目标交易后,利用布隆过滤器判断目标交易的摘要信息是否存在于记录的已处理交易的摘要信息中,如果存在,说明已经是处理过的交易,可以直接拒绝该目标交易进入交易池,以避免重复交易。
本发明实施例中,区块链网络的节点可以当接收到终端设备提交的目标交易时,获取所述目标交易的摘要信息,并利用N个布隆过滤器从已处理交易对应的摘要信息中查询目标交易的摘要信息,N为大于或等于1的整数,若查询到目标交易的摘要信息,则确定目标交易为已处理交易,并拒绝将目标交易添加到交易池中,可以利用布隆过滤器高效、准确地检查提交的交易是否在账本中已经出现过,从而有效避免重复交易。
请参见图3,是本发明实施例基于图1a所示的交易处理系统提供的又一种交易处理方法的流程示意图,本发明实施例的交易处理方法主要是从节点一侧进行描述的,该交易处理方法包括如下步骤:
301、节点获取区块链中区块的最大高度。
其中,区块的最大高度可以理解为区块链的长度,例如当前时间区块的最大高度为10000。
302、所述节点根据所述最大高度确定出N个布隆过滤器以及所述N个布隆过滤器中的每个布隆过滤器对应的目标区间的子区间,所述N为大于或等于1的整数。
具体的,为提高检查效率,节点可以设计多个布隆过滤器并发进行检查,节点可以获取区块链中区块的最大高度,根据最大高度确定出N个布隆过滤器以及N个布隆过滤器中的每个布隆过滤器对应的目标区间的子区间,将从1到最大高度之间的整数值组成的区间视为目标区间,N个布隆过滤器中的其中一个布隆过滤器(记为第一布隆过滤器)对应的子区间的最大值为上述最大高度,N个布隆过滤器中除第一布隆过滤器之外的布隆过滤器对应的子区间固定,并且第一布隆过滤器对应的子区间的最大值随着最大高度的变化而变化。
举例来说,假设区块链目前的最大高度为10000,N=3,即节点最开始定义3个布隆过滤器,3个布隆过滤器可以分别为a{1-4000},b{4000-8000},c{8000-最大高度},即布隆过滤器a对应着区块链中高度在1-4000的区块,布隆过滤器b对应着区块链中高度在4000-8000的区块,布隆过滤器c对应着区块链中高度在8000-最大高度的区块,其中a,b是固定长度的,c(即为上述第一布隆过滤器)是持续更新的,其最大值会随着区块链最大高度的变化而变化。
进一步的,节点还可以将N个布隆过滤器中对应的子区间固定的布隆过滤器写入存储设备(例如硬盘)中。即:节点可以将上述的布隆过滤器a、b写入硬盘,从而持久化到硬盘中。
303、当接收到终端设备提交的目标交易时,所述节点获取所述目标交易的摘要信息。
304、所述节点获取所述N个布隆过滤器中每个布隆过滤器对应的子区间。
305、所述节点根据所述子区间从区块链中确定所述每个布隆过滤器对应的区块。
306、所述节点分别利用所述每个布隆过滤器从各自对应的区块包括的已处理交易对应的摘要信息中查询所述目标交易的摘要信息。
具体的,节点利用N个布隆过滤器从已处理交易对应的摘要信息中查询目标交易的摘要信息的实现方式可以如下:
节点获取N个布隆过滤器中每个布隆过滤器对应的子区间,根据子区间从区块链中确定每个布隆过滤器对应的区块,并分别利用每个布隆过滤器从各自对应的区块包括的已处理交易对应的摘要信息中查询目标交易的摘要信息。
举例来说,对于上述的布隆过滤器a、b、c,节点利用布隆过滤器a对比提交的目标交易与区块链中高度在1-4000的区块中的交易是否重复,利用布隆过滤器b对比提交的目标交易与区块链中高度在4000-8000的区块中的交易是否重复,利用布隆过滤器c对比提交的目标交易与区块链中高度在8000-最新高度的区块中的交易是否重复。
307、所述节点若查询到所述目标交易的摘要信息,则确定所述目标交易为已处理交易,并拒绝将所述目标交易添加到交易池中。
具体的,节点如果查询到目标交易的摘要信息,则说明已经是处理过的交易,可以直接拒绝该目标交易进入交易池,以避免重复交易。
在一些可行的实施方式中,当区块链的区块的最大高度增加到预设高度阈值时,节点可以将持续更新的第一布隆过滤器对应的子区间进行固定,具体可以将第一布隆过滤器对应的子区间的最大值确定为该预设高度阈值,并对N个布隆过滤器进行扩充,以新增第二布隆过滤器,第二布隆过滤器将作为持续更新的布隆过滤器,其中,第二布隆过滤器对应的子区间的范围为从该预设高度阈值到最新的最大高度,第二布隆过滤器对应的子区间的最大值随着最大高度的增加而增加。例如,当区块的最大高度增加到12000时,布隆过滤器c(即第一布隆过滤器)变成一个固定持久化的布隆过滤器,产生一个第二布隆过滤器d{12000-最大高度}来维护最新状态。
在一些可行的实施方式中,节点可以控制布隆过滤器的数量,以控制并发度,具体可以包括:节点获取对应的子区间固定的布隆过滤器的数量,当数量达到预设数量阈值(例如3)时,对对应的子区间固定的布隆过滤器以及对应的子区间进行合并处理,其中,合并处理得到的布隆过滤器对应的子区间固定。例如,当区块的最大高度增加到12000以上时,a、b、c等固定持久化(即对应的子区间固定)的布隆过滤器过多,将其合并后再持久化,例如将a、b合并为ab{1-8000},或者将a、b、c合并为abc{1-12000},并可以对后续收到的交易利用合并处理后得到的布隆过滤器来检查交易是否为重复交易。
在一些可行的实施方式中,新的节点要加入区块链网络时,节点可以接收区块链网络中的其他节点(即新启动的节点)发送的布隆过滤器获取请求,响应布隆过滤器获取请求从存储设备中读取对应的子区间固定的布隆过滤器,向其他节点发送对应的子区间固定的布隆过滤器,以使得其他节点根据对应的子区间固定的布隆过滤器和区块链中区块的当前最大高度确定出N个布隆过滤器,并利用N个布隆过滤器确定收到的交易是否为已处理交易。例如,新启动的节点可以先从节点处获取存储设备中固定持久化的布隆过滤器a、b,然后根据b的最后高度,生成b的高度+1到最新高度的布隆过滤器e,并利用加载的a、b以及生成的e对收到的交易进行并发过滤。
本发明实施例中,区块链网络的节点可以获取区块链中区块的最大高度,并根据最大高度确定出N个布隆过滤器以及N个布隆过滤器中的每个布隆过滤器对应的目标区间的子区间,当接收到终端设备提交的目标交易时,获取目标交易的摘要信息,根据N个布隆过滤器中每个布隆过滤器对应的子区间从区块链中确定每个布隆过滤器对应的区块,然后分别利用每个布隆过滤器从各自对应的区块包括的已处理交易对应的摘要信息中查询目标交易的摘要信息,若查询到目标交易的摘要信息,则确定目标交易为已处理交易,并拒绝将目标交易添加到交易池中,可以利用布隆过滤器高效、准确地检查提交的交易是否在账本中已经出现过,从而有效避免重复交易,通过定义多个布隆过滤器可以大大提高并发率,提升检测效率。
请参见图4,是本发明实施例的一种交易处理装置的结构示意图,本发明实施例的所述交易处理装置应用于区块链网络的节点,所述装置包括:
获取模块401,用于当接收到终端设备提交的目标交易时,获取所述目标交易的摘要信息;
查询模块402,用于利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息,所述N为大于或等于1的整数;
处理模块403,用于若查询到所述目标交易的摘要信息,则确定所述目标交易为已处理交易,并拒绝将所述目标交易添加到交易池中。
可选的,所述获取模块401,还用于获取区块链中区块的最大高度;
所述处理模块403,还用于根据所述最大高度确定出N个布隆过滤器以及所述N个布隆过滤器中的每个布隆过滤器对应的目标区间的子区间,其中,所述目标区间为从1到所述最大高度之间的整数值组成的区间,所述N个布隆过滤器中的第一布隆过滤器对应的子区间的最大值为所述最大高度,所述N个布隆过滤器中除所述第一布隆过滤器之外的布隆过滤器对应的子区间固定,所述第一布隆过滤器对应的子区间的最大值随着所述最大高度的变化而变化。
可选的,所述查询模块402,具体用于:
获取所述N个布隆过滤器中每个布隆过滤器对应的子区间;
根据所述子区间从区块链中确定所述每个布隆过滤器对应的区块;
分别利用所述每个布隆过滤器从各自对应的区块包括的已处理交易对应的摘要信息中查询所述目标交易的摘要信息。
可选的,所述处理模块403,还用于当所述最大高度增加到预设高度阈值时,将所述第一布隆过滤器对应的子区间的最大值确定为所述预设高度阈值;
所述处理模块403,还用于对所述N个布隆过滤器进行扩充,以新增第二布隆过滤器,其中,所述第二布隆过滤器对应的子区间的范围为从所述预设高度阈值到所述最大高度,所述第二布隆过滤器对应的子区间的最大值随着所述最大高度的增加而增加。
可选的,所述获取模块401,还用于获取对应的子区间固定的布隆过滤器的数量;
所述处理模块403,还用于当所述数量达到预设数量阈值时,对所述对应的子区间固定的布隆过滤器以及对应的子区间进行合并处理,其中,合并处理得到的布隆过滤器对应的子区间固定。
可选的,所述处理模块403,还用于将所述N个布隆过滤器中对应的子区间固定的布隆过滤器写入存储设备中。
可选的,所述装置还包括通信模块404,其中:
所述通信模块404,用于接收所述区块链网络中的其他节点发送的布隆过滤器获取请求;
所述获取模块401,还用于响应所述布隆过滤器获取请求从所述存储设备中读取对应的子区间固定的布隆过滤器;
所述通信模块404,还用于向所述其他节点发送所述对应的子区间固定的布隆过滤器,以使得所述其他节点根据所述对应的子区间固定的布隆过滤器和所述区块链中区块的当前最大高度确定出N个布隆过滤器,并利用所述N个布隆过滤器确定收到的交易是否为已处理交易。
需要说明的是,本发明实施例的交易处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参见图5,是本发明实施例的一种节点设备的结构示意图,本发明实施例的所述节点设备包括供电模块等结构,并包括处理器501、存储装置502以及网络接口503。所述处理器501、存储装置502以及网络接口503之间可以交互数据。
所述存储装置502可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置502也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;所述存储装置502还可以包括上述种类的存储器的组合。
所述处理器501可以是中央处理器501(central processing unit,CPU)。在一个实施例中,所述处理器501还可以是图形处理器501(Graphics Processing Unit,GPU)。所述处理器501也可以是由CPU和GPU的组合。在一个实施例中,所述存储装置502用于存储程序指令。所述处理器501可以调用所述程序指令,执行如下操作:
当接收到终端设备提交的目标交易时,获取所述目标交易的摘要信息;
利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息,所述N为大于或等于1的整数;
若查询到所述目标交易的摘要信息,则确定所述目标交易为已处理交易,并拒绝将所述目标交易添加到交易池中。
可选的,所述处理器501,还用于获取区块链中区块的最大高度;
所述处理器501,还用于根据所述最大高度确定出N个布隆过滤器以及所述N个布隆过滤器中的每个布隆过滤器对应的目标区间的子区间,其中,所述目标区间为从1到所述最大高度之间的整数值组成的区间,所述N个布隆过滤器中的第一布隆过滤器对应的子区间的最大值为所述最大高度,所述N个布隆过滤器中除所述第一布隆过滤器之外的布隆过滤器对应的子区间固定,所述第一布隆过滤器对应的子区间的最大值随着所述最大高度的变化而变化。
可选的,所述处理器501,具体用于:
获取所述N个布隆过滤器中每个布隆过滤器对应的子区间;
根据所述子区间从区块链中确定所述每个布隆过滤器对应的区块;
分别利用所述每个布隆过滤器从各自对应的区块包括的已处理交易对应的摘要信息中查询所述目标交易的摘要信息。
可选的,所述处理器501,还用于当所述最大高度增加到预设高度阈值时,将所述第一布隆过滤器对应的子区间的最大值确定为所述预设高度阈值;
所述处理器501,还用于对所述N个布隆过滤器进行扩充,以新增第二布隆过滤器,其中,所述第二布隆过滤器对应的子区间的范围为从所述预设高度阈值到所述最大高度,所述第二布隆过滤器对应的子区间的最大值随着所述最大高度的增加而增加。
可选的,所述处理器501,还用于获取对应的子区间固定的布隆过滤器的数量;
所述处理器501,还用于当所述数量达到预设数量阈值时,对所述对应的子区间固定的布隆过滤器以及对应的子区间进行合并处理,其中,合并处理得到的布隆过滤器对应的子区间固定。
可选的,所述处理器501,还用于将所述N个布隆过滤器中对应的子区间固定的布隆过滤器写入存储设备中。
可选的,所述处理器501,还用于接收所述区块链网络中的其他节点发送的布隆过滤器获取请求;
所述处理器501,还用于响应所述布隆过滤器获取请求从所述存储设备中读取对应的子区间固定的布隆过滤器;
所述处理器501,还用于向所述其他节点发送所述对应的子区间固定的布隆过滤器,以使得所述其他节点根据所述对应的子区间固定的布隆过滤器和所述区块链中区块的当前最大高度确定出N个布隆过滤器,并利用所述N个布隆过滤器确定收到的交易是否为已处理交易。
具体实现中,本发明实施例中所描述的处理器501、存储装置502以及网络接口503可执行本发明实施例图2或图3提供的一种交易处理方法的相关实施例中所描述的实现方式,也可执行本发明实施例图4提供的一种交易处理装置的相关实施例中所描述的实现方式,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(英文:Read-Only Memory,缩写:ROM)或者随机存取存储器(英文:Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种交易处理方法,其特征在于,应用于区块链网络的节点,所述方法包括:
当接收到终端设备提交的目标交易时,获取所述目标交易的摘要信息;
利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息,所述N为大于或等于1的整数;
若查询到所述目标交易的摘要信息,则确定所述目标交易为已处理交易,并拒绝将所述目标交易添加到交易池中。
2.根据权利要求1所述的方法,其特征在于,所述利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息之前,所述方法还包括:
获取区块链中区块的最大高度;
根据所述最大高度确定出N个布隆过滤器以及所述N个布隆过滤器中的每个布隆过滤器对应的目标区间的子区间,其中,所述目标区间为从1到所述最大高度之间的整数值组成的区间,所述N个布隆过滤器中的第一布隆过滤器对应的子区间的最大值为所述最大高度,所述N个布隆过滤器中除所述第一布隆过滤器之外的布隆过滤器对应的子区间固定,所述第一布隆过滤器对应的子区间的最大值随着所述最大高度的变化而变化。
3.根据权利要求2所述的方法,其特征在于,所述利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息,包括:
获取所述N个布隆过滤器中每个布隆过滤器对应的子区间;
根据所述子区间从区块链中确定所述每个布隆过滤器对应的区块;
分别利用所述每个布隆过滤器从各自对应的区块包括的已处理交易对应的摘要信息中查询所述目标交易的摘要信息。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述最大高度增加到预设高度阈值时,将所述第一布隆过滤器对应的子区间的最大值确定为所述预设高度阈值;
对所述N个布隆过滤器进行扩充,以新增第二布隆过滤器,其中,所述第二布隆过滤器对应的子区间的范围为从所述预设高度阈值到所述最大高度,所述第二布隆过滤器对应的子区间的最大值随着所述最大高度的增加而增加。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取对应的子区间固定的布隆过滤器的数量;
当所述数量达到预设数量阈值时,对所述对应的子区间固定的布隆过滤器以及对应的子区间进行合并处理,其中,合并处理得到的布隆过滤器对应的子区间固定。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述N个布隆过滤器中对应的子区间固定的布隆过滤器写入存储设备中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述区块链网络中的其他节点发送的布隆过滤器获取请求;
响应所述布隆过滤器获取请求从所述存储设备中读取对应的子区间固定的布隆过滤器;
向所述其他节点发送所述对应的子区间固定的布隆过滤器,以使得所述其他节点根据所述对应的子区间固定的布隆过滤器和所述区块链中区块的当前最大高度确定出N个布隆过滤器,并利用所述N个布隆过滤器确定收到的交易是否为已处理交易。
8.一种交易处理装置,其特征在于,应用于区块链网络的节点,所述装置包括:
获取模块,用于当接收到终端设备提交的目标交易时,获取所述目标交易的摘要信息;
查询模块,用于利用N个布隆过滤器从已处理交易对应的摘要信息中查询所述目标交易的摘要信息,所述N为大于或等于1的整数;
处理模块,用于若查询到所述目标交易的摘要信息,则确定所述目标交易为已处理交易,并拒绝将所述目标交易添加到交易池中。
9.一种节点设备,其特征在于,应用于区块链网络,所述节点设备包括处理器、网络接口和存储装置,所述处理器、所述网络接口和所述存储装置相互连接,其中,所述网络接口受所述处理器的控制用于收发数据,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用于执行权利要求1~7中任一项所述的交易处理方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有程序指令,所述程序指令被执行时,用于实现权利要求1~7中任一项所述的交易处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911157155.5A CN110880147B (zh) | 2019-11-22 | 2019-11-22 | 一种交易处理方法、相关设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911157155.5A CN110880147B (zh) | 2019-11-22 | 2019-11-22 | 一种交易处理方法、相关设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110880147A true CN110880147A (zh) | 2020-03-13 |
CN110880147B CN110880147B (zh) | 2022-08-26 |
Family
ID=69729291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911157155.5A Active CN110880147B (zh) | 2019-11-22 | 2019-11-22 | 一种交易处理方法、相关设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110880147B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181700A (zh) * | 2020-09-22 | 2021-01-05 | 中国建设银行股份有限公司 | 一种故障交易隔离的方法及装置 |
CN112950211A (zh) * | 2021-05-14 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 一种交易验重方法、装置、设备以及介质 |
CN112989147A (zh) * | 2021-02-20 | 2021-06-18 | 每日互动股份有限公司 | 数据信息的推送方法、装置、计算机设备及存储介质 |
CN113377812A (zh) * | 2021-01-08 | 2021-09-10 | 北京数衍科技有限公司 | 大数据的订单去重方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106503981A (zh) * | 2016-10-19 | 2017-03-15 | 江苏通付盾科技有限公司 | 简单支付验证节点交易查询方法及系统 |
CN106682907A (zh) * | 2016-12-10 | 2017-05-17 | 江苏恒为信息科技有限公司 | 区块链数据对比及共识方法 |
CN108027867A (zh) * | 2015-07-14 | 2018-05-11 | Fmr有限责任公司 | 计算高效的转账处理、审计以及搜索装置、方法和系统 |
CN109313654A (zh) * | 2016-05-24 | 2019-02-05 | 万事达卡国际股份有限公司 | 使用布隆过滤器对被许可的区块链进行去同步恢复的方法和系统 |
-
2019
- 2019-11-22 CN CN201911157155.5A patent/CN110880147B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108027867A (zh) * | 2015-07-14 | 2018-05-11 | Fmr有限责任公司 | 计算高效的转账处理、审计以及搜索装置、方法和系统 |
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN109313654A (zh) * | 2016-05-24 | 2019-02-05 | 万事达卡国际股份有限公司 | 使用布隆过滤器对被许可的区块链进行去同步恢复的方法和系统 |
CN106503981A (zh) * | 2016-10-19 | 2017-03-15 | 江苏通付盾科技有限公司 | 简单支付验证节点交易查询方法及系统 |
CN106682907A (zh) * | 2016-12-10 | 2017-05-17 | 江苏恒为信息科技有限公司 | 区块链数据对比及共识方法 |
Non-Patent Citations (2)
Title |
---|
JORGE BLASCO: "A Tunable Proof of Ownership Scheme for Deduplication Using Bloom Filters", 《2014 IEEE CONFERENCE ON COMMUNICATIONS AND NETWORK SECURITY》, 29 December 2014 (2014-12-29), pages 481 - 489 * |
刘敖迪 等: "基于区块链的大数据访问控制机制", 《软件学报》, vol. 30, no. 9, 30 September 2019 (2019-09-30), pages 2636 - 2654 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181700A (zh) * | 2020-09-22 | 2021-01-05 | 中国建设银行股份有限公司 | 一种故障交易隔离的方法及装置 |
CN113377812A (zh) * | 2021-01-08 | 2021-09-10 | 北京数衍科技有限公司 | 大数据的订单去重方法和装置 |
CN112989147A (zh) * | 2021-02-20 | 2021-06-18 | 每日互动股份有限公司 | 数据信息的推送方法、装置、计算机设备及存储介质 |
CN112950211A (zh) * | 2021-05-14 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 一种交易验重方法、装置、设备以及介质 |
WO2022237569A1 (zh) * | 2021-05-14 | 2022-11-17 | 腾讯科技(深圳)有限公司 | 一种交易验重方法、装置、设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110880147B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110880147B (zh) | 一种交易处理方法、相关设备及计算机存储介质 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN110049087B (zh) | 一种联盟链的可信度验证方法、系统、装置及设备 | |
CN110597887B (zh) | 一种基于区块链网络的数据管理方法、装置及存储介质 | |
CN109492019B (zh) | 业务请求响应方法、装置、计算机设备和存储介质 | |
CN111262726B (zh) | 一种配置信息更新方法、装置及计算机可读存储介质 | |
CN111460458B (zh) | 一种数据处理方法、相关装置及计算机可存储介质 | |
CN111553670B (zh) | 一种交易处理方法、装置及计算机可读存储介质 | |
US20210158353A1 (en) | Methods, systems, apparatuses, and devices for processing request in consortium blockchain | |
CN110046901B (zh) | 联盟链的可信度验证方法、系统、装置及设备 | |
CN111447069B (zh) | 一种基于区块链的低频访问数据处理方法 | |
CN107391033B (zh) | 数据迁移方法及装置、计算设备、计算机存储介质 | |
CN112069169B (zh) | 区块数据存储方法、装置、电子设备及可读存储介质 | |
CN112650812A (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
CN113596010B (zh) | 一种数据处理方法、装置、节点设备及计算机存储介质 | |
US11455117B2 (en) | Data reading method, apparatus, and system, avoiding version rollback issues in distributed system | |
US20230102617A1 (en) | Repeat transaction verification method, apparatus, and device, and medium | |
CN111553669B (zh) | 一种交易路由方法、装置及计算机可读存储介质 | |
CN112860953A (zh) | 图数据库的数据导入方法、装置、设备及存储介质 | |
CN111008220A (zh) | 数据源的动态识别方法及装置、存储介质和电子装置 | |
CN111159131A (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
CN111352938B (zh) | 数据处理方法、计算机设备及存储介质 | |
CN109741180B (zh) | 区块链连续交易序号生成方法及装置、区块链网络节点 | |
CN112817980B (zh) | 一种数据索引处理方法、装置、设备及存储介质 | |
CN113010894A (zh) | 一种数据处理方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40021509 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |